
    !Цi#              
          S SK rS SKrS SKJr  S SKrS SKJr  S SKJr  Sr	Sr
Sr\R                  R                  S/ S	Q5      \R                  R                  S
SS/5      \R                  R                  S\R                  R                  5      \R                  R                  S/ SQ5      S 5       5       5       5       r\R                  R                  SSS/5      \R                  R                  S
SS/5      S 5       5       r\R                  R                  S/ SQ5      \R                  R                  S/ SQ5      \R                  R                  S
SS/5      \R                  R                  S\R$                  \R&                  /5      S 5       5       5       5       r\R                  R                  S/ S	Q5      \R                  R                  S
SS/5      \R                  R                  S\R                  R                  5      \R                  R                  S/ SQ5      S 5       5       5       5       r\R                  R                  SSS/5      \R                  R                  S
SS/5      S 5       5       r\R                  R                  S
SS/5      \R                  R                  SSS/5      \R                  R                  S/ S Q5      \R                  R                  S\R$                  \R&                  /5      S! 5       5       5       5       r\R                  R0                  \R                  R                  SS"/5      \R                  R                  S
S#S$/5      \R                  R                  S\R                  R                  5      \R                  R                  S/ SQ5      \R                  R                  S/ SQ5      S% 5       5       5       5       5       5       r\R                  R                  SSS/5      \R                  R                  S
S#S$/5      S& 5       5       r\R                  R                  S/ S'Q5      \R                  R                  S
S#S$/5      S( 5       5       rg))    N)assert_allclose)data)	AxisErrorgư>gvIh%<=gHz>wavelet)db2sym4coif5	transformdwtswtmodedtype)float32float64	complex64
complex128c                    [         R                  " 5       S S R                  U5      nUR                  R                  S:X  a  US S S2   R
                  Ul        US:X  a?  US:w  a9  [        R                  " [        5         [        R                  " X@XS9  S S S 5        g [        R                  " X@XS9n[        U[        5      (       d   e[        US   [        R                  5      (       d   e[        R                   " U5      nUR
                  R                  R                  S:X  a  ["        O[$        n['        XFXwS	9  g ! , (       d  f       g = f)
N@   cr   periodizationr
   r   r   frtolatol)r   ecgastyper   kindrealimagpytestraises
ValueErrorpywtmra
isinstancelistnpndarrayimra
tol_single
tol_doubler   r   r
   r   r   xcoeffsyr   s           R/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/pywt/tests/test_mra.pytest_mra_roundtripr3      s     	
3Bu%Aww||s4R4E?"z*yD +XXaIAFfd####fQi,,,, 			&A**c1:zDAt/ +*s   ?D??
Ezrbio1.3zbior2.4c                 ,   [         R                  n[        R                  " 5       S S R	                  U5      n[
        R                  " U 5      R                  (       a   eUS:X  a:  Sn[        R                  " [        US9   [
        R                  " X0US9nS S S 5        O[
        R                  " X0US9n[
        R                  " W5      nUR                  R                  R                  S:X  a  [         O["        n[%        X6XwS9  g ! , (       d  f       N_= f)Nr   r   z,norm=True, but the wavelet is not orthogonalmatchr
   r   r   )r)   r   r   r   r   r%   Wavelet
orthogonalr"   warnsUserWarningr&   r+   r    r   r   r,   r-   r   r   r
   r   r/   msgr0   r1   r   s           r2    test_mra_warns_on_non_orthogonalr>   2   s     JJE
3Bu%A||G$////E<\\+S1XXaI>F 21 !	:		&A**c1:zDAt/ 21s    D
Daxis)r   r         ndim)r@   rA      c                    US:X  a  [         R                  " 5       S S nObUS:X  a  [         R                  " 5       S S2S S24   nO=US:X  a7  [         R                  " 5       S S2S S24   n[        R                  " U4S-  SS	9nWR                  US
S9nX$R                  * :  d  X$R                  :  a:  [        R                  " [        5         [        R                  " USXS9  S S S 5        g [        R                  " USXS9n[        R                  " U5      nUR                  R                  R                  S:X  a  [         O["        n[%        XFXwS9  g ! , (       d  f       g = f)Nr@   r   rA       rD   0      r   r?   Fcopydb1)r
   r?   r   r   )r   r   camerar)   stackr   rC   r"   r#   r   r%   r&   r+   r    r   r   r,   r-   r   )r
   rC   r?   r   r/   r0   r1   r   s           r2   test_mra_axisrO   G   s    qyHHJsO	KKM#2#ss(#	KKM#2#rr'"HHaTAXB'	U#A vvg~]]9%HHQ> &XXa)?F		&A**c1:zDAt/ &%s   E
E dwt2swt2c                    [         R                  " 5       S S2S S24   R                  USS9nUR                  R                  S:X  a  US S S2S S 24   R
                  Ul        US:X  a?  US:w  a9  [        R                  " [        5         [        R                  " X@XS	9  S S S 5        g [        R                  " X@XS	9n[        U[        5      (       d   e[        US
   [        R                  5      (       d   e[        R                   " U5      nUR
                  R                  R                  S:X  a  ["        O[$        n['        XFXwS9  g ! , (       d  f       g = f)NrF      FrJ   r   r   rQ   r   r   r   r   r   )r   rM   r   r   r   r    r!   r"   r#   r$   r%   mra2r'   r(   r)   r*   imra2r,   r-   r   r.   s           r2   test_mra2_roundtriprV   f   s	    	crc3B3h&&u5&9Aww||s4R47F?"z*		!	E +YYqYBFfd####fQi,,,, 	

6A**c1:zDAt/ +*s   E
Ec                 6   [         R                  n[        R                  " 5       S S2S S24   R	                  USS9n[
        R                  " U 5      R                  (       a   eUS:X  a:  Sn[        R                  " [        US9   [
        R                  " X0US9nS S S 5        O[
        R                  " X0US9n[
        R                  " W5      nUR                  R                  R                  S	:X  a  [         O["        n[%        X6XwS
9  g ! , (       d  f       N_= f)NrF   rH   FrJ   rQ   3norm=True, but the wavelets used are not orthogonalr5   r7   r   r   )r)   r   r   rM   r   r%   r8   r9   r"   r:   r;   rT   rU   r    r   r   r,   r-   r   r<   s           r2   !test_mra2_warns_on_non_orthogonalrY           JJEcrc2A2g%%e%%8A||G$////FC\\+S1YYqY?F 21 1;

6A**c1:zDAt/ 21   D


DrA   rD   axes)r   r@   r   r   rA   rB   r@   r      c                 4  ^ [         R                  " 5       S S2S S24   R                  USS9mUS:X  a  [        R                  " T4S-  SS9m[        U4S	 jU 5       5      (       a:  [        R                  " [        5         [        R                  " TS
XS9  S S S 5        g [        R                  " TS
XS9n[        R                  " U5      nTR                  R                  R                  S:X  a  [        O[         n[#        TXVUS9  g ! , (       d  f       g = f)NrF   rS   FrJ   rD   rH   r   rI   c              3   n   >#    U  H*  oTR                   * :  =(       d    UTR                   :  v   M,     g 7fNrC   .0r?   r/   s     r2   	<genexpr>!test_mra2_axes.<locals>.<genexpr>   )     
=166'>+TQVV^+   25rL   r
   r\   r   r   )r   rM   r   r)   rN   anyr"   r#   r   r%   rT   rU   r    r   r   r,   r-   r   )r
   r\   rC   r   r0   r1   r   r/   s          @r2   test_mra2_axesrp      s     	crc3B3h&&u5&9AqyHHaTAXB' 
=
===]]9%IIa)? &YYq%9@F

6A**c1:zDAq$/ &%s   D		
Dsym2dwtnswtnc                    US:X  a'  [         R                  " 5       S S R                  USS9nO~US:X  a-  [         R                  " 5       S S2S S24   R                  USS9nOKUS:X  aE  [         R                  " 5       S S2S S24   R                  USS9n[        R
                  " U4S-  S	S
9nWR                  R                  S:X  a  US S S	2S4   R                  Ul	        US:X  a?  US:w  a9  [        R                  " [        5         [        R                  " XPXS9  S S S 5        g [        R                  " XPXS9n[        U[         5      (       d   e[        US   [        R"                  5      (       d   e[        R$                  " U5      nUR                  R                  R                  S:X  a  [&        O[(        n[+        XWXS9  g ! , (       d  f       g = f)Nr@   rG   FrJ   rA   rS   rH   rD   r   rI   r   .rs   r   r   r   r   r   )r   r   r   rM   r)   rN   r   r   r    r!   r"   r#   r$   r%   mranr'   r(   r*   imranr,   r-   r   )	r   r
   r   r   rC   r/   r0   r1   r   s	            r2   test_mran_roundtriprw      s    qyHHJsO""5u"5	KKM#2#rr'"))%e)<	KKM#2#rr'"))%e)<HHaTAXB'ww||s4R49""F?"z*		!	E +YYqYBFfd####fQi,,,, 	

6A**c1:zDAt/ +*s   G
Gc                 6   [         R                  n[        R                  " 5       S S2S S24   R	                  USS9n[
        R                  " U 5      R                  (       a   eUS:X  a:  Sn[        R                  " [        US9   [
        R                  " X0US9nS S S 5        O[
        R                  " X0US9n[
        R                  " W5      nUR                  R                  R                  S	:X  a  [         O["        n[%        X6XwS
9  g ! , (       d  f       N_= f)NrF   rH   FrJ   rs   rX   r5   r7   r   r   )r)   r   r   rM   r   r%   r8   r9   r"   r:   r;   ru   rv   r    r   r   r,   r-   r   r<   s           r2   !test_mran_warns_on_non_orthogonalry      rZ   r[   )r]   r^   r`   ra   rb   )rB   r_   r   )r   rA   r@   )r      r@   )r   )r@   )rA   )r_   )rB   )c                 J  ^ [         R                  n[        R                  " 5       S S2S S24   R	                  USS9m[         R
                  " T4S-  SS9n[        U4S jU  5       5      (       a;  [        R                  " [        5         [        R                  " TS	S
U S9  S S S 5        g [        R                  " US	S
U S9n[        R                  " U5      nUR                  R                  R                  S:X  a  [         O["        n[%        X5XfS9  g ! , (       d  f       g = f)NrF   rS   FrJ   rH   r   rI   c              3   n   >#    U  H*  oTR                   * :  =(       d    UTR                   :  v   M,     g 7frf   rg   rh   s     r2   rj   !test_mran_axes.<locals>.<genexpr>   rl   rm   rL   rr   rn   r   r   )r)   r   r   rM   r   rN   ro   r"   r#   r   r%   ru   rv   r    r   r   r,   r-   r   )r\   r
   r   x3dr0   r1   r   r/   s          @r2   test_mran_axesr      s     JJEcrc3B3h&&u5&9A
((A4!8"
%C 
=
===]]9%IIa&t< &YYsEV$?F

6A,,3:DC1 &%s   D
D")numpyr)   r"   numpy.testingr   r%   r   pywt._utilsr   r,   r-   r   markparametrizeModesmodesr3   r>   r   r   rO   rV   rY   rp   slowrw   ry   r        r2   <module>r      s     )   ! 

 $<=uen5!1!12>0 3 6 >0. Y	$:;uen50 6 <0& !23+uen52::r}}"=>0 ? 6 , 406 $<=vv&67!1!12>0 3 8 >0. Y	$:;vv&670 8 <0& vv&67!Q(!LM2::r}}"=>0 ? N ) 80, VJ/vv&67!1!12> +0 , 3 8 0 0< Y	$:;vv&670 8 <0& 
 KL vv&672 8L2r   