
    !ЦiC                         S SK rS SKJrJrJrJr  S SKr\R                  \R                  \R                  \R                  /r\R                  \R                  /rS rS rS rS rS rg)    N)assert_assert_allcloseassert_equalassert_raisesc                 4    U [         R                  " U 5      -  $ )N)npabs)xs    [/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/pywt/tests/test_thresholding.py_signr   
   s    rvvay=    c                 v    [        U 5      [        R                  " [        R                  " U 5      U-
  S5      -  $ )zdsoft thresholding supporting complex values.

Notes
-----
This version is not robust to zeros in x.
r   )r   r   maximumr	   )r
   threshs     r   _softr      s+     8bjjV!3Q777r   c            	      	   [         R                  " SSS5      n / SQn[        [        R                  " U SS5      [         R
                  " U5      SS9  [        [        R                  " U * SS5      [         R
                  " U5      * SS9  [        [        R                  " SS//S-  SS5      S	S//S-  SS9  [        [        R                  " SS//S-  SS5      S	S	//S-  SS9  [        [        R                  " S
S//S-  SS5      SS
//S-  SS9  [        [        R                  " SS//S-  SS5      S	S	//S-  SS9  SS//S-  nS H,  n[        [        R                  " X#S5      [        X#5      SS9  M.     Sn[        [        R                  " S
S//S-  SSUS9US//S-  SS9  [        [        R                  " [         R                  " S5      SS5      [         R                  " S5      SS9  / SQn[        [        R                  " U SS5      [         R
                  " U5      SS9  [        [        R                  " U * SS5      [         R
                  " U5      * SS9  [        [        R                  " SS//S-  SS5      SS//S-  SS9  [        [        R                  " SS//S-  SS5      S	S//S-  SS9  [        [        R                  " SS//S-  SSUS9US//S-  SS9  [        [        R                  " SS//S-  SS5      S	S//S-  SS9  / SQn[        [        R                  " U SS5      [         R
                  " U5      SS9  [        [        R                  " SS//S-  SS5      SS//S-  SS9  [        [        R                  " SS//S-  SS5      S	S//S-  SS9  [        [        R                  " SS//S-  SSUS9US//S-  SS9  [        [        [        R                  S
S/SS5        [        [        R                  " U SS5      [         R
                  " / SQ5      SS9  [        [        R                  " SS//S-  SS5      SS	//S-  SS9  [        [        R                  " SS//S-  SSUS9SU//S-  SS9  [        [        R                  " SS//S-  SS5      SS//S-  SS9  [        [        [        R                  S
S/SS5        [        [        [        R                  U SS5        g )N         )        r   r         ?      ?      ?       @   softg-q=)rtolr   y              ?y               @y                y      ?      ?y       @       @   y      ?       @)r   r      r   )
substituter      )r   r   r   g      @g      @g      @g      @hardgreaterless)r   r   r   r   r   r   r   foo)
r   linspacer   pywt	thresholdarrayr   zerosr   
ValueError)datasoft_resultcomplex_datar   shard_resultgreater_results          r   test_thresholdr2      s   ;;q!QD 1KDNN4F3HH[)7DNND5!V4XXk**8DNNQF8a<F;VHqLu.DNNQF8a<F;VHqLu. DNNRH:>1f="XJN0DNNT4L>A#5q&AVHqLu.4L>!#L|VDl3%	A 
 	
ADNNRG9q=#v!LXJN0 DNN288B<F;HHRLu. 1KDNN4F3HH[)7DNND5!V4XXk**8DNNQF8a<F;VHqLu.DNNQF8a<F;VHqLu.DNNQF8a<FqIVHqLu.DNNT4L>A#5q&AYK!O%1 4NDNN4I6HH^,5:DNNQF8a<I>VHqLu.DNNQF8a<I>VHqLu.DNNQF8a<I!LVHqLu. *dnnr2h9E DNN4F3HH:;%IDNNQF8a<F;VHqLu.DNNQF8a<FqIVHqLu.DNNQF8a<F;VHqLu. *dnnr2h6B *dnndAu=r   c            
         Sn [         R                  " SSS5      n[         GH  nU[        ;   a  [         R                  " XS9nO[         R                  " US-   US9n[
        R                  " X0S5      n[
        R                  " X0S5      n[
        R                  " X0S	5      n[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        [         R                  " [         R                  " U5      U :  5      n[        [         R                  " Xg   S
:H  5      5        [         R                  " [         R                  " U5      U :  5      n[         R                  " Xh   5      n	[        [         R                  " U	[         R                  " XH   5      :  5      5        [        [         R                  " U	[         R                  " XX   5      :  5      5        GM     g )Ng333333?r   d   dtype        ?r"   r   garotter   )r   r&   float_dtypesreal_dtypesasarrayr'   r(   r   r7   wherer	   r   all)
r   	data_realr7   r,   d_hardd_soft	d_garotteltgtgt_abs_garottes
             r   test_nonnegative_garotterF   g   s\   FB3'IK::i5D::i$.e<Df5f5NN4;	 	V\\4::.V\\4::.Y__djj1 XXbffTlV+,y})*+ XXbffTlV+,	.~vz(::;<~vz(::;<- r   c            
         Sn SU -  n[         R                  " SSS5      n[         GH  nU[        ;   a  [         R                  " X#S9nO[         R                  " US-   US9nUR
                  R                  [         R                  :X  a  S=pVOS	=pV[        R                  " X@S
5      n[        R                  " X@S5      n[        R                  " X@U5      n	[        UR                  UR                  5        [        UR                  UR                  5        [        U	R                  UR                  5        [         R                  " [         R                  " U5      U :  5      n
[        [         R                  " X   S:H  5      5        [         R                  " [         R                  " U5      U:  5      n[!        [         R                  " X{   5      [         R                  " X   5      XVS9  [         R                  " [         R"                  " [         R                  " U5      U :  [         R                  " U5      U:  5      5      n[         R                  " X   5      n[        [         R                  " U[         R                  " X|   5      :  5      5        [        [         R                  " U[         R                  " X   5      :  5      5        GM     g )Ng?   r4   r   r5   r6   r8   gư>g+=r"   r   r   )r   atol)r   r&   r:   r;   r<   realr7   float32r'   r(   threshold_firmr   r=   r	   r   r>   r   logical_and)r   thresh2r?   r7   r,   r   rI   r@   rA   d_firmrC   rD   mtmt_abs_firms                 r   test_threshold_firmrR      s   F&jGB3'IK::i5D::i$.e<D99??bjj(D4Df5f5$$T7; 	V\\4::.V\\4::.V\\4::. XXbffTlV+,vzQ'( XXbffTlg-.vz*BFF6:,>!	. XXbnnRVVD\F%:%'VVD\G%;= >ffVZ({RVVFJ%7789{RVVFJ%7789A r   )numpyr   numpy.testingr   r   r   r   r'   rK   float64	complex64
complex128r:   r;   r   r   r2   rF   rR    r   r   <module>rY      s\     O O 

BJJbmmDzz2::&
8K>\=8$:r   