
    !Цi6              	       V   S SK r S SKrS SKJr  S SKrS SKrS SKJrJ	r	J
r
JrJr  S SKrS rS rS rS rS rS	 rS
 rS rS r\R.                  R1                  S\R2                  \R4                  /5      S 5       rS rS rS rS rS r S r!S r"S r#\R.                  R1                  S\R2                  SS4\R2                  SS4\R4                  SS4\R4                  SS4/5      S 5       r$\R.                  R1                  S\" S S/SS/5      5      S 5       r%S  r&S! r'S" r(S# r)S$ r*g)%    N)product)assert_allcloseassert_almost_equalassert_equalassert_raisesassert_warnsc                    [         R                  " XU5      nS[         R                  -  S-  [         R                  " US-  * 5      -  nUS:X  a  SU-  U-  nXd4$ US:X  a  SSSUS-  -  -   -  U-  nXd4$ US:X  a  S	U-  SSUS-  -  -
  -  U-  nXd4$ US
:X  a  SSSUS-  -  -
  S
US
-  -  -   -  U-  nXd4$ US:X  a   SU-  SSUS-  -  -   S
US
-  -  -
  -  U-  nXd4$ US:X  a&  SSSUS-  -  -   SUS
-  -  -
  SUS-  -  -   -  U-  nXd4$ US:X  a)  SU-  SSUS-  -  -
  SUS
-  -  -   SUS-  -  -
  -  U-  nXd4$ US:X  a,  SSSUS-  -  -
  SUS
-  -  -   SUS-  -  -
  SUS-  -  -   -  U-  nWU4$ )Ng       @      ?      g       g3Ey   gԢT   go?      gdJ*ŧ?i      grMZ   <         gbjHi      T   gS?iH        nplinspacepiexp)LBUBNnumXF0psis          [/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/pywt/tests/test_cwt_wavelets.pyref_gausr*      s   
BAA
RUU(e	RVVadG_	,Bq!eBh  8O (R!AqD&[)", 8O (QAadF
+B. 8O (a"QT'kAadF23B6 8O ( "C"QT'MAadF$:;B> 8O ("C"QT'MBq!tG$;a1f$DEbH 8O ($Q&c!Q$hAqD(@1QT6(IJ2M 8O (#S3q!t8^c!Q$h%>%(AX&.021a4&8 99;<8O    c                 n   [         R                  " XU5      n[         R                  " US-  * 5      n[         R                  " SU-  5      nXe-  [         R                  " S5      S-  [         R                  S-  -  S-  -  nUS:X  a  USSU-  -
  -  S-  nGOUS:X  a  SU-  SS	U-  -   S
US-  -  -   -  S-  nGOUS:X  a%  SU-  SSU-  -   SUS-  -  -
  SUS-  -  -
  -  S-  nGOYUS
:X  a.  SU-  SSU-  -
  SUS-  -  -
  SUS-  -  -   SUS
-  -  -   -  S-  nGO%US:X  a6  SU-  SSU-  -
  SUS-  -  -   SUS-  -  -   S US
-  -  -
  S!US-  -  -
  -  S-  nOUS":X  a?  S#U-  S$S%U-  -   S&US-  -  -   S'US-  -  -
  S(US
-  -  -
  S)US-  -  -   S*US"-  -  -   -  S+-  nOUS,:X  aH  S-U-  S.S/U-  -   S0US-  -  -
  S1US-  -  -
  S2US
-  -  -   S3US-  -  -   S4US"-  -  -
  S5US,-  -  -
  -  S6-  nOVUS:X  aP  S-U-  S7S8U-  -
  S9US-  -  -
  S:US-  -  -   S;US
-  -  -   S<US-  -  -
  S=US"-  -  -
  S>US,-  -  -   S?US-  -  -   -  S@-  nW[         R                  " [         R
                  " [         R                  " [         R                  " U[         R                  " U5      -  5      5      US   USA   -
  -  5      5      -  nX4$ )BNr   y                   g;f?g      ?r   gUUUUUU?y              @r   g.!	@r   g?y              @   y              (@r   g6ҭ@g88?   y              L@H   y              @@r   g̝,@r   gj?y            @T   y             q@   y              T@    r   gpt2?iy             `@i  y             @i  y              h@@   guBH@r   g EG>y             \@i  y             @iX  y             @i  y              |@   gJUe@i1  y             \@iА  y             @i`m  y             @i   y              @   gQ
2_F@r   )r   r   r!   r    realsqrtsumconj)	r"   r#   r$   r%   r&   r'   F1F2r(   s	            r)   ref_cgaur>   *   sd   
BAA	AB	AB
%"&&,x'4<	<Bq#!)nX%
("fb2a4i!AqD&()(2
(2grBqDy3q!t8+a1f45i?
(BhSU
R1W,s1a4x7"QT'AB:M
(Bhs1utAqDy03q!t8;AqD!#%ad7+ ,,67
(RiQad2U1a4Z?#ad(Jad#%'1W- ..9:
(bjDFNU1a4Z'$q!t)3eAqDj@419LAIAqD!""./ (bj6!8OeAqDj(6!Q$;6q!tC1a4Kq!t)$&+AqDj136q!t8<==HI bggbggbggbffS-=&>?1!MNO
OC8Or+   c                     [         R                  " U 5      n[         R                  " U 5      S   n[         R                  " [         R                  X   -  5      [         R                  X   -  -  X'   U$ )Nr   )r   	ones_likewheresinr    )xyks      r)   sinc2rF   J   sN    
QA
AA66"%%*ruuQTz*ADHr+   c                     [         R                  " XU5      n[         R                  " U5      [        X5-  5      [         R                  " S[         R
                  -  U-  U-  5      -  -  nXe4$ N               @r   r   r9   rF   r!   r    r"   r#   r$   FbFcrC   r(   s          r)   ref_shanrN   Q   sO    
BAA
''"+uRT{266"RUU(2+a-#88
9C8Or+   c                     [         R                  " XU5      n[         R                  " U5      [        XF-  U-  5      U-  [         R                  " S[         R
                  -  U-  U-  5      -  -  nXv4$ rH   rJ   )r"   r#   r$   mrL   rM   rC   r(   s           r)   ref_fbsprQ   W   sX    
BAA
''"+bd1fq("&&BEE"Q*??
@C8Or+   c                     [         R                  " XU5      n[         R                  U-  S-  [         R                  " S[         R                  -  U-  U-  5      -  [         R                  " US-  * U-  5      -  nXe4$ )Nr-   rI   r   r   rK   s          r)   ref_cmorrS   ]   sa    
BAAEE"Hrvvbhrk!m4
4RVVadGBJ5G
GC8Or+   c                     [         R                  " XU5      n[         R                  " US-  * S-  5      [         R                  " SU-  5      -  nXC4$ )Nr   r   )r   r   r!   cosr"   r#   r$   rC   r(   s        r)   ref_morlrW   c   sB    
BAA
&&1a4
BFF1Q3K
'C8Or+   c                     [         R                  " XU5      nS[         R                  " S5      [         R                  S-  -  -  [         R                  " US-  * S-  5      -  SUS-  -
  -  nXC4$ )Nr   r   r
   r   )r   r   r9   r    r!   rV   s        r)   ref_mexhrY   i   s]    
BAAbggaj$%rvv1gai'8
8!q!t*
EC8Or+   c                     Sn SnSn[         R                  " SS5       H  n[        XX#5      u  pE[        R                  " S[        U5      -   5      nUR                  US9u  px[        [         R                  " U5      [         R                  " U5      5        [        [         R                  " U5      [         R                  " U5      5        [        X5        M     g )Nr     r   	   gauslength)
r   aranger*   pywtContinuousWaveletstrwavefunr   r8   imag	r"   r#   r$   r%   r(   rC   wPSIr&   s	            r)   	test_gausrj   o       	B	
BAyyABA+""6CH#45!$bggcl3bggcl3 r+   dtypec                     [         R                  " SU 5      n[         R                  " U5      u  p#UR                  R                  U :X  d   eUR                  U :X  d   eg )Ncmor1.5-1.0)rb   rc   integrate_waveletr8   rl   )rl   waveletint_psirC   s       r)   test_continuous_wavelet_dtyperr   }   sP    $$]E:G''0JG<<&&&77er+   c                  h   [         R                  " [        5         [        R                  " S[
        R                  5        S S S 5        [         R                  " [        5         [        R                  " S[
        R                  5        S S S 5        g ! , (       d  f       NW= f! , (       d  f       g = f)Ngaus5)pytestraises
ValueErrorrb   rc   r   	complex64int_ r+   r)   %test_continuous_wavelet_invalid_dtyper{      s_    	z	"w5 
#	z	"w0 
#	" 
#	"	"	"s   &B#&B#
B #
B1c                     Sn SnSn[         R                  " SS5       H  n[        XX#5      u  pE[        R                  " S[        U5      -   5      nUR                  US9u  px[        [         R                  " U5      [         R                  " U5      5        [        [         R                  " U5      [         R                  " U5      5        [        X5        M     g )Nr[   r   r\   r   r]   cgaur_   )
r   ra   r>   rb   rc   rd   re   r   r8   rf   rg   s	            r)   	test_cgaur~      rk   r+   c                     Sn SnSnSnSn[        XX#U5      u  pV[        R                  " SU SU 35      n[        UR                  U5        [        UR
                  U5        Xl        Xl        UR                  US9u  p[        [        R                  " U5      [        R                  " U5      S	S
9  [        [        R                  " U5      [        R                  " U5      S	S
9  [        XS	S
9  Sn SnSnSnSn[        XX#U5      u  pV[        R                  " SU SU 35      n[        UR                  U5        [        UR
                  U5        Xl        Xl        UR                  US9u  p[        [        R                  " U5      [        R                  " U5      S	S
9  [        [        R                  " U5      [        R                  " U5      S	S
9  [        XS	S
9  g )Nr   r\   r         ?shan-r_   V瞯<atol)rN   rb   rc   r   center_frequencybandwidth_frequencyupper_boundlower_boundre   r   r   r8   rf   
r"   r#   r$   rL   rM   r(   rC   rh   ri   r&   s
             r)   	test_shanr         	B	BA	
B	Br*HSbT2$/0A**B/--r2MMYYaY FCBGGCL"''#,U;BGGCL"''#,U;Au%	B	BA	B	
Br*HSbT2$/0A**B/--r2MMYYaY FCBGGCL"''#,U;BGGCL"''#,U;Au%r+   c                     Sn SnSnSnSn[        XX#U5      u  pV[        R                  " SU SU 35      n[        UR                  U5        [        UR
                  U5        Xl        Xl        UR                  US9u  p[        [        R                  " U5      [        R                  " U5      S	S
9  [        [        R                  " U5      [        R                  " U5      S	S
9  [        XS	S
9  Sn SnSnSnSn[        XX#U5      u  pV[        R                  " SU SU 35      n[        UR                  U5        [        UR
                  U5        Xl        Xl        UR                  US9u  p[        [        R                  " U5      [        R                  " U5      S	S
9  [        [        R                  " U5      [        R                  " U5      S	S
9  [        XS	S
9  g )Nr   r   r\   r   r   cmorr   r_   r   r   )rS   rb   rc   r   r   r   r   r   re   r   r   r8   rf   r   s
             r)   	test_cmorr      r   r+   c                     Sn SnSnSnSnSn[        XX#XE5      u  pg[        R                  " SU SU SU 35      n[        UR                  U5        [        UR
                  U5        X8l        Xl        Xl        UR                  US	9u  p[        [        R                  " U	5      [        R                  " U5      S
S9  [        [        R                  " U	5      [        R                  " U5      S
S9  [        XS
S9  Sn SnSnSnSnSn[        XX#XE5      u  pg[        R                  " SU SU SU 35      n[        UR                  U5        [        UR
                  U5        X8l        Xl        Xl        UR                  US	9u  p[        [        R                  " U	5      [        R                  " U5      S
S9  [        [        R                  " U	5      [        R                  " U5      S
S9  [        XS
S9  Sn SnSnSnSnSn[        XX#XE5      u  pg[        R                  " SU SU SU 35      n[        UR                  U5        [        UR
                  U5        X8l        Xl        Xl        UR                  US	9u  p[        [        R                  " U	5      [        R                  " U5      SS9  [        [        R                  " U	5      [        R                  " U5      SS9  [        XS
S9  g )Nr   r   r\   r   r   r   fbspr   r_   r   r   r   g333333?h㈵>)rQ   rb   rc   r   r   r   
fbsp_orderr   r   re   r   r   r8   rf   )r"   r#   r$   MrL   rM   r(   rC   rh   ri   r&   s              r)   	test_fbspr      s~   	B	BA	A	
B	Bb-HSaS"Qrd34A**B/--r2LMMYYaY FCBGGCL"''#,U;BGGCL"''#,U;Au%	B	BA	A	B	
Bb-HSaS"Qrd34A**B/--r2LMMYYaY FCBGGCL"''#,U;BGGCL"''#,U;Au%	B	BA	A	B	Bb-HSaS"Qrd34A**B/--r2LMMYYaY FCBGGCL"''#,T:BGGCL"''#,T:Au%r+   c                  x   Sn SnSn[        XU5      u  p4[        R                  " S5      nXl        Xl        UR                  US9u  pg[        [        R                  " U5      [        R                  " U5      5        [        [        R                  " U5      [        R                  " U5      5        [        Xt5        g )Nr[   r   r\   morlr_   )
rW   rb   rc   r   r   re   r   r   r8   rf   r"   r#   r$   r(   rC   rh   ri   r&   s           r)   	test_morlr   %  s    	B	
BA"HSv&AMMYYaY FCBGGCL"''#,/BGGCL"''#,/Ar+   c                     Sn SnSn[        XU5      u  p4[        R                  " S5      nXl        Xl        UR                  US9u  pg[        [        R                  " U5      [        R                  " U5      5        [        [        R                  " U5      [        R                  " U5      5        [        Xt5        Sn SnSn[        XU5      u  p4[        R                  " S5      nXl        Xl        UR                  US9u  pg[        [        R                  " U5      [        R                  " U5      5        [        [        R                  " U5      [        R                  " U5      5        [        Xt5        g )Nr[   r   r\   mexhr_   i  )
rY   rb   rc   r   r   re   r   r   r8   rf   r   s           r)   	test_mexhr   5  s   	B	
BA"HSv&AMMYYaY FCBGGCL"''#,/BGGCL"''#,/A	B	
BA"HSv&AMMYYaY FCBGGCL"''#,/BGGCL"''#,/Ar+   c                     [         R                  [         R                  4 H  n S H  n[        [        X5        M     S HR  nU " US-   5        U " US-   5        [        [        XS-   5        [        [        XS-   5        [        [        XS-   5        MT     U " S5        U " S	5        U " S
5        [        [        U S5        [        [        U S5        [        [        U S5        [        [        U S5        [        [        U S5        M     g )N)r   r   r   )r   r   z1.5-1.0z1-4z1.0zB-Cz1.0-1.0-1.0zfbsp1-1.5-1.0zfbsp1.0-1.5-1z	fbsp2-5-1zfbsp1.5-1-1z	fbspM-B-Czfbsp1.0zfbsp1.0-0.4zfbsp1-1-1-1)rb   rc   DiscreteContinuousWaveletr   FutureWarningr   rw   )funcnames     r)   test_cwt_parameters_in_namesr   S  s    '')G)GH,D3 - %D	!" *d5L9*d5L9*d=,@A % 	__[ 	j$6j$4 	j$	2j$6j$67 Ir+   zdtype, tol, methodr   convfftvIh%<=c                    [         R                  R                  5       u  p4[        R                  " X@S9nUS   US   -
  nSn[        R
                  " SS5      n[         R                  " XGXeUS9u  p[        UR                  R                  UR                  5        USU-  -   n
[         R                  " XXeUS9u  p[        USU-  -   XUS9  [        UR                  U
R                  5        g )	Nrl   r   r   rn   r4   methody              ?)r   rtol)rb   dataninor   asarrayra   cwtr   r8   rl   r   )rl   tolr   timesstdtrp   scalescfsfsst_complexcfs_complexs               r)   test_cwt_complexr   s  s     		 ID
**S
&C	a47	BGYYq"F xxW@HS + 3,KxxW'-/[C"S&L+cB""K$5$56r+   zaxis, methodr   c           	      "   [         R                  n[        R                  R	                  5       u  p4SnSU -
  n[         R
                  " XBS9n[         R                  " U4U-  US9nUS   US   -
  nSn	[         R                  " SS5      n
[        R                  " XzXXS9u  pUR                  n[        R                  " XJXXS9u  p[        XR                  5        [        UR                  R                  UR                  5        [        UR                  S   [        U
5      5        [        UR                  SU-      U5        [        UR                  SU -      UR                  U    5        [        U[         R                  " U4U-  US-   S9S	S
9  g )Nr   r   r   )axisr   rn   r4   )r   r   r   )decimal)r   float64rb   r   r   r   stackra   r   shaper   r8   rl   lenr   )r   r   rl   r   r   n_batch
batch_axissst1r   rp   r   cfs1r   shape_inr   s                  r)   test_cwt_batchr     sE   JJE		 IDGTJ::c'D
((D8g%J
7C	a47	BGYYq"F w6MITyyHxxWKHS 99% + 1s6{+1z>*G41t8$ciio6 RXXtg&7j1nM "$r+   c                      [         R                  " S5      n [        R                  " U SSS9u  p[	        U[         R
                  " U5      5        [        [        [        R                  U SSS9  g )Nr4   g?r   r   rp   g{Gz?)r   zerosrb   r   r   
zeros_liker   rw   )r   r   r   s      r)   test_cwt_small_scalesr     sN    88B<D XXd37FCCs+, *dhhT6Jr+   c                      [         R                  " S5      n [         R                  " SS5      n[        [        [
        R                  XSS9  g )Nr4   r   r   r   r   )r   r   ra   r   rw   rb   r   r   r   s     r)   test_cwt_zero_scaler     s2    88B<DYYq!_F *dhhVLr+   c                      [         R                  " S5      n [         R                  " / SQ5      n[        [        [
        R                  XSS9  g )Nr4   )r   r.   r   r   )r   r   r   r   rw   rb   r   r   s     r)   test_cwt_negative_scaler     s1    88B<DZZ%F *dhhVLr+   c                     [         R                  R                  S5      n U R                  S5      nSUS'   [         R                  " SS5      nSn[
        R                  " XUSS9u  pE[
        R                  " XUS	S9u  pe[        XFS
SS9  g )Nr   2   g      ?   r5   rn   r   r   r   r   r   )r   r   )r   randomRandomStaterandnra   rb   r   r   )rstater   r   rp   cfs_conv_cfs_ffts          r)   test_cwt_method_fftr     sz    YY""1%F<<DDHYYq"FG ((4@KH $>JGHAE:r+   c                    [         R                  " S5      n[        R                  R	                  U S5      n[        US5       n[        R                  " X5        S S S 5        [        US5       n[        R                  " U5      nS S S 5        [        W[         R                  5      (       d   eUR                  UR                  :X  d   eg ! , (       d  f       Nw= f! , (       d  f       N]= f)Nrn   zcwav.picklewbrb)rb   rc   ospathjoinopenpickledumpload
isinstancer   )tmpdirrp   filenamer   wavelet2s        r)   test_continuous_wavelet_pickler     s    $$]3Gww||FM2H	h	G 
	h	;;q> 
h 6 67777==GLL((( 
			s   C.C
C
C*)+r   r   	itertoolsr   numpyr   ru   numpy.testingr   r   r   r   r   rb   r*   r>   rF   rN   rQ   rS   rW   rY   rj   markparametrizefloat32r   rr   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   rz   r+   r)   <module>r      sd   	      .@ 2::rzz":; <1#&L#&L<&~ <7@ -::tV4::tU3::uf5::ue467
77
7. !Q&%)IJ$ K$B	KMM;)r+   