
    bMhC                         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dS )    N)assert_assert_allcloseassert_equalassert_raisesc                 0    | t          j        |           z  S )N)npabs)xs    \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pywt/tests/test_thresholding.py_signr   
   s    rvayy=    c                 v    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.     88bjV!3Q7777r   c                  
   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 ]6}t          t          j        ||d          t          ||          d           7d}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           d S )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      sq   ;q!QD 100KDN4F33H[))7 7 7 7DND5!V44Xk***8 8 8 8DNQF8a<F;;VHqLu. . . .DNQF8a<F;;VHqLu. . . . DNRH:>1f=="XJN0 0 0 0DNT4L>A#5q&AAVHqLu. . . .4L>!#L A A|VVDDlF33%	A 	A 	A 	A 	A 	
ADNRG9q=#v!LLLXJN0 0 0 0 DN28B<<F;;HRLLu. . . . 100KDN4F33H[))7 7 7 7DND5!V44Xk***8 8 8 8DNQF8a<F;;VHqLu. . . .DNQF8a<F;;VHqLu. . . .DNQF8a<FqIIIVHqLu. . . .DNT4L>A#5q&AAYK!O%1 1 1 1 433NDN4I66H^,,5: : : :DNQF8a<I>>VHqLu. . . .DNQF8a<I>>VHqLu. . . .DNQF8a<I!LLLVHqLu. . . . *dnr2h9EEE DN4F33H:::;;%I I I IDNQF8a<F;;VHqLu. . . .DNQF8a<FqIIIVHqLu. . . .DNQF8a<F;;VHqLu. . . . *dnr2h6BBB *dndAu=====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
        |          | k              }t          j
        ||                   }	t          t          j        |	t          j
        ||                   k                          t          t          j        |	t          j
        ||                   k                         d S )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:iu555DD:i$.e<<<Dff55ff55N4;;	 	V\4:...V\4:...Y_dj111 XbfTllV+,,y})**+++ XbfTllV+,,	"..~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        |          | k    t          j        |          |k                         }t          j        |	|                   }t          t          j        |t          j        ||                   k                          t          t          j        |t          j        ||                   k                         d S )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      sZ   F&jGB3''I  :  :K:iu555DD:i$.e<<<D9?bj((D44D4ff55ff55$T67;; 	V\4:...V\4:...V\4:... XbfTllV+,,vbzQ''((( XbfTllg-..vbz**BF6":,>,>!	. 	. 	. 	. XbnRVD\\F%:%'VD\\G%;= = > >fVBZ(({RVF2J%7%7788999{RVF2J%7%7788999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 O O O O O O O O O O 
BJbmDz2:&  
8 8 8K> K> K>\= = =8$: $: $: $: $:r   