
    !Цiz,                     ~    S SK r S SKrS SKrS SKJrJr  S SKrS rS r	S r
S rS r " S S	5      rS
 rS rS rS rg)    N)assert_assert_allclosec                     [         R                  " S5      n [        U R                  S:H  5        [        U R                  S:H  5        [        U R
                  S5        SnU H  n[        U[        U 5      ;   5        M     / SQn/ SQn/ SQn/ SQn[        U R                  U5        [        U R                  U5        [        U R                  U5        [        U R                  U5        [        [        U R                  5      S	:H  5        [        U R                  5        [        U R                  5        [        U R                   5        [        U R"                  S
:H  5        [        U R$                  S:H  5        g )Ndb3db
Daubechies)zFamily namez
Short namezFilters length
OrthogonalBiorthogonalSymmetry)缙/7.	?Izߵ8Ņ
HD2n?w}$?!QnyJ?)!QnyJտr   D2nݿr   Izߵ?r   )r   r   r   r   r   r   )r   r   r   r   r   r      r      )pywtWaveletr   nameshort_family_namefamily_namestrr   dec_lodec_hirec_lorec_hilenfilter_bank
orthogonalbiorthogonalsymmetryvanishing_moments_phivanishing_moments_psi)wfieldsfieldr   r   r   r    s          V/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/pywt/tests/test_wavelet.pytest_wavelet_propertiesr,      s"   UA AFFeOA4'(AMM<(*FQ  DFEFFFFFAHHf%AHHf%AHHf%AHHf%C!#$ ALLANN AJJ A##q()A##q()    c                  d   Sn [        U  Vs/ s H  n[        R                  " U5      PM     sn/ 5      nU Hr  n[        R                  " U5      R                  (       a  [        U5        M5  [        R                  " U5      R                  (       a  [        U5        Mg  [        U5        Mt     g s  snf )N)r   symcoifbiorrbio)	sumr   wavelistr   r#   check_coefficients_orthogonalr$   check_coefficients_biorthogonalcheck_coefficients)familiesr   waveletswavelets       r+   test_wavelet_coefficientsr;   5   sv    4HH=HDDMM$'H=rBHLL!,,)'2\\'"//+G4w'  >s    B-c                 B   SnSn[         R                  " U 5      nUR                  US9u  pEn[        R                  " UR
                  5      [        R                  " S5      -
  nSU  SUS 3n[        Xq:  US9  [        R                  " UR
                  S S S2   5      S	[        R                  " S5      -  -
  nSU  SUS 3n[        Xq:  US9  [        R                  " UR
                  S
S S2   5      S	[        R                  " S5      -  -
  nSU  SUS 3n[        Xq:  US9  [        R                  " UR                  5      nSU  SUS 3n[        Xq:  US9  [        R                  " U5      SU-  -
  nSU  SUS 3n[        Xq:  US9  [        R                  " XE-  5      nSU  SUS 3n[        Xq:  US9  [        R                  " [        R                  " UR
                  5      [        R                  " UR                  5      -  5      nSU  SUS 3n[        Xq:  US9  g N绽|=   level   ![RMS_REC > EPSILON] for Wavelet: , rms=.3gmsg      ?   )
r   r   wavefunnpr3   r   sqrtr   r   array)	r:   epsilonrA   r(   phipsixresrG   s	            r+   r5   r5   A   s   GEWA))%)(KCa &&
2771:
%C-gYfSI
FCCMs#
&&#A#
2771:
-C-gYfSI
FCCMs#
&&!$Q$
 BGGAJ
.C-gYfSI
FCCMs#
&&
C-gYfSI
FCCMs# &&+5
 C-gYfSI
FCCMs#
&&/C-gYfSI
FCCMs#
&&!((#BHHQXX$66
7C-gYfSI
FCCMs#r-   c                 x   SnSn[         R                  " U 5      nUR                  US9u  pEpgn[        R                  " UR
                  5      [        R                  " S5      -
  n	SU  SU	S 3n
[        X:  U
S9  [        R                  " UR
                  S S S2   5      S	[        R                  " S5      -  -
  n	SU  SU	S 3n
[        X:  U
S9  [        R                  " UR
                  S
S S2   5      S	[        R                  " S5      -  -
  n	SU  SU	S 3n
[        X:  U
S9  [        R                  " UR                  5      n	SU  SU	S 3n
[        X:  U
S9  [        R                  " U5      SU-  -
  n	SU  SU	S 3n
[        X:  U
S9  [        R                  " U5      SU-  -
  n	SU  SU	S 3n
[        X:  U
S9  g r=   )	r   r   rJ   rK   r3   r   rL   r   r   )r:   rN   rA   r(   phi_dpsi_dphi_rpsi_rrQ   rR   rG   s              r+   r6   r6   g   s   GEWA$%IIEI$:!E% &&
2771:
%C-gYfSI
FCCMs#
&&#A#
2771:
-C-gYfSI
FCCMs#
&&!$Q$
 BGGAJ
.C-gYfSI
FCCMs#
&&
C-gYfSI
FCCMs#
&&-!U(
"C-gYfSI
FCCMs#
&&-!U(
"C-gYfSI
FCCMs#r-   c                    SnSn[         R                  " U 5      n[        R                  " UR                  5      [        R
                  " S5      -
  nSU  SUS 3n[        XA:  US9  [        R                  " UR                  S S S2   5      S[        R
                  " S5      -  -
  nSU  SUS 3n[        XA:  US9  [        R                  " UR                  S	S S2   5      S[        R
                  " S5      -  -
  nSU  SUS 3n[        XA:  US9  [        R                  " UR                  5      nSU  SUS 3n[        XA:  US9  g )
Nr>   
   rB   rC   rD   rE   rF   rH   rI   )r   r   rK   r3   r   rL   r   r   )r:   rN   rA   r(   rR   rG   s         r+   r7   r7      s#   GEWA
&&
2771:
%C-gYfSI
FCCMs#
&&#A#
2771:
-C-gYfSI
FCCMs#
&&!$Q$
 BGGAJ
.C-gYfSI
FCCMs#
&&
C-gYfSI
FCCMs#r-   c                   $    \ rS rSr\S 5       rSrg)_CustomHaarFilterBank   c                 Z    [         R                  " S5      S-  nU/S-  U* U/U/S-  X* /4$ )NrB   )rK   rL   )selfvals     r+   r"   !_CustomHaarFilterBank.filter_bank   s8    ggaj1na3$seAgT{;;r-    N)__name__
__module____qualname____firstlineno__propertyr"   __static_attributes__ra   r-   r+   r[   r[      s    < <r-   r[   c                  P   [         R                  " S[        5       S9n SU l        SU l        [
        R                  " S5      S-  nU/S-  U* U/U/S-  X* /4n[         R                  " SUS9n[        UR                  (       + 5        [        UR                  (       + 5        [        UR                  S:H  5        [        UR                  S:H  5        [        UR                  S:H  5        [        UR                  S:H  5        [        UR                  S:H  5        SUl        SUl        g )NzCustom Haar Wavelet)r"   TrB   unknown r   )r   r   r[   r#   r$   rK   rL   r   r%   r   r   r&   r'   )haar_custom1r_   r"   haar_custom2s       r+   test_custom_waveletrm      s   << 5,A,CEL"L $L
''!*q.C57cT3K#q3+>K<< 5,79L '''()))*L!!Y./L$$*+L**b01L..!34L..!34 #L $Lr-   c            	         [         R                  " S5      n U R                  SS9u  pn[        UR                  S:H  5        [        UR                  S:H  5        [        UR                  S:H  5        [        U[        R                  " SSUR                  S95        [        R                  " / SQ5      n[        R                  " / S	Q5      n[        X5        [        X%5        g )
Nsym3r   r@   )   r   r?   )num))        gwVt?g,*?g[.`?glB[\@?gQ?g"q?gΡ?g' 2?g}r?gzԃu("?gϠ"0?gBh?g8F?g't?gePȲgd@xտgX2տgj0Ϳgz[ſgȸ9gl[.PMghKgF?gSA?g mt	`?gA£?g76?gڶ:g^g _Ygt_I?Lg4Fj?gRQ.c?gZIg($3gGI24 ?rr   rr   rr   rr   ))rr   g`?g8c?gfn?g	!?g}?g!v?gzkǏ?g@κ?gIpg?gq[gVtg/")пgd8/׿gV9ݿgPg$,6gJ5տgS`>"?g#c?g"T?gS;?g=?gmFjÿg~F|%gAag#mԿg|Pn⿿gyE@?gG P?g}72u6?g_ր?g@^g?Ӄg,F}?gN
%3g?gJ/nB!Srr   rr   rr   rr   )	r   r   rJ   r   sizer   rK   linspacerM   )r(   rO   rP   rQ   
phi_expect
psi_expects         r+   test_wavefun_sym3rw      s    VA))!)$KCaCHHNCHHNAFFbLAr{{1aQVV45 ; <J  ; <J C$C$r-   c            
         [         R                  " S5      n U R                  SS9u  pp4nXX44 H  n[        UR                  S:H  5        M     [
        R                  " / SQ5      n[
        R                  " UR                  [
        R                  S9nSUSS	& [
        R                  " / S
Q5      n	[
        R                  " UR                  [
        R                  S9n
SU
SS& SU
SS& SU
SS	& SU
S	S& [        U[
        R                  " SSUR                  SS95        [        XSSS9  [        X8SSS9  [        X)SSS9  [        XJSSS9  g )Nzbior1.3r   r@   (   )(rr   F1 `F1 `?;U  ?w̫  ?      p?                ÿ                        ?     ?     @?      ?     ?     P?     0?r   r   r   r   r   r   r   r   r   r   r   r   r   r~   r}   r|   r{   rz   rr   rr   rr   )dtyperI         )(r   r   r   r   r   r   r   r   r         ?      g      ¿g      g      g      ?g     ?g     ?g      ?g      ?g      g      g     g     g      ҿr   g      ?g      ?r   r   r   r   r   r   r   r   r   r   r   r   r   r         g      ?   r   r?   F)endpointgh㈵>g&.>)rtolatolg|=g-q=)r   r   rJ   r   rs   rK   rM   zerosfloat64r   rt   )r(   rT   rU   rV   rW   rQ   arrphi_d_expectphi_r_expectpsi_d_expectpsi_r_expects              r+   test_wavefun_bior13r      s-   YA$%IIAI$6!E%e+B , 88 N OL 88AFF"**5LLB88 > ?L 88AFF"**5LL2LBLBLBAr{{1a%@AEd>Ee%@Ee%@Ee%@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)Nsym4z
wav.picklewbrb)r   r   ospathjoinopenpickledumpload
isinstancer   )tmpdirr:   filenamefwavelet2s        r+   test_wavelet_pickler     s    ll6"Gww||FL1H	h	G 
	h	;;q> 
h----==GLL((( 
			s   C.C
C
C*)r   r   numpyrK   numpy.testingr   r   r   r,   r;   r5   r6   r7   r[   rm   rw   r   r   ra   r-   r+   <module>r      sP    	   2 '*T	(#$L$>$,< <%2(%V$AN)r-   