
    iC                         d dl Zd dlmZmZmZmZ d dlZej                  ej                  ej                  ej                  gZej                  ej                  gZd Zd Zd Zd Zd Zy)    N)assert_assert_allcloseassert_equalassert_raisesc                 2    | t        j                  |       z  S )N)npabs)xs    X/var/www/html/BatchJob/venv/lib/python3.12/site-packages/pywt/tests/test_thresholding.py_signr   
   s    rvvay=    c                 r    t        |       t        j                  t        j                  |       |z
  d      z  S )ztsoft 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                  L
   t        j                  ddd      } g d}t        t        j                  | dd      t        j
                  |      d       t        t        j                  |  dd      t        j
                  |       d       t        t        j                  ddggdz  dd      d	dggdz  d       t        t        j                  ddggdz  dd      d	d	ggdz  d       t        t        j                  d
dggdz  dd      dd
ggdz  d       t        t        j                  ddggdz  dd      d	d	ggdz  d       ddggdz  }dD ]/  }t        t        j                  ||d      t        ||      d       1 d}t        t        j                  d
dggdz  dd|      |dggdz  d       t        t        j                  t        j                  d      dd      t        j                  d      d       g d}t        t        j                  | dd      t        j
                  |      d       t        t        j                  |  dd      t        j
                  |       d       t        t        j                  ddggdz  dd      ddggdz  d       t        t        j                  ddggdz  dd      d	dggdz  d       t        t        j                  ddggdz  dd|      |dggdz  d       t        t        j                  ddggdz  dd      d	dggdz  d       g d}t        t        j                  | dd      t        j
                  |      d       t        t        j                  ddggdz  dd      ddggdz  d       t        t        j                  ddggdz  dd      d	dggdz  d       t        t        j                  ddggdz  dd|      |dggdz  d       t        t        t        j                  d
dgdd       t        t        j                  | dd      t        j
                  g d      d       t        t        j                  ddggdz  dd      dd	ggdz  d       t        t        j                  ddggdz  dd|      d|ggdz  d       t        t        j                  ddggdz  dd      ddggdz  d       t        t        t        j                  d
dgdd       t        t        t        j                  | dd       y )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 A|VVDlF3%	A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            
         d} t        j                  ddd      }t        D ]  }|t        v rt        j                  ||      }nt        j                  |dz   |      }t        j                  || d      }t        j                  || d      }t        j                  || d	      }t        |j                  |j                         t        |j                  |j                         t        |j                  |j                         t        j                  t        j                  |      | k        }t        t        j                  ||   d
k(               t        j                  t        j                  |      | kD        }t        j                  ||         }	t        t        j                  |	t        j                  ||         k               t        t        j                  |	t        j                  ||         kD                y )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   so   FB3'I =K::iu5D::i$.e<Dff5ff5NN4;	 	V\\4::.V\\4::.Y__djj1 XXbffTlV+,y})*+ XXbffTlV+,	".~vbz(::;<~vbz(::;<-=r   c            
         d} d| z  }t        j                  ddd      }t        D ]  }|t        v rt        j                  ||      }nt        j                  |dz   |      }|j
                  j                  t         j                  k(  rdx}}nd	x}}t        j                  || d
      }t        j                  || d      }t        j                  || |      }	t        |j                  |j                         t        |j                  |j                         t        |	j                  |j                         t        j                  t        j                  |      | k        }
t        t        j                  |	|
   dk(               t        j                  t        j                  |      |k\        }t!        t        j                  ||         t        j                  |	|         ||       t        j                  t        j"                  t        j                  |      | kD  t        j                  |      |k              }t        j                  |	|         }t        t        j                  |t        j                  ||         k               t        t        j                  |t        j                  ||         kD                y )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::iu5D::i$.e<D99??bjj(D4D4ff5ff5$$T67; 	V\\4::.V\\4::.V\\4::. XXbffTlV+,vbzQ'( XXbffTlg-.vbz*BFF6":,>!	. XXbnnRVVD\F%:%'VVD\G%;= >ffVBZ({RVVF2J%7789{RVVF2J%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   