o
    h                     @   sD   d Z ddlZddlZddlmZ ddlZejjdd Z	dd Z
dS )z$
Verify DWT perfect reconstruction.
    N)assert_c                  C   s`   d} t dd | D g }g d}tjtjf}|D ]}|D ]\}}|D ]	}t|||| q"qqd S )N)dbsymcoifbiorrbioc                 S   s   g | ]}t |qS  )pywtwavelist).0namer   r   a/var/www/html/scripts/venv/lib/python3.10/site-packages/pywt/tests/test_perfect_reconstruction.py
<listcomp>   s    z/test_perfect_reconstruction.<locals>.<listcomp>))zerozpd)constantsp0)	symmetricr   )periodicppd)smoothsp1)periodizationper)sumnpfloat32float64check_reconstruction)familieswaveletsmodesdtypeswaveletpmodemmodedtr   r   r   test_perfect_reconstruction   s   r'   c                 C   s   t tddg d }tjd |tjkrd}nd}|D ]I}ttj||}t||| \}}	t	||	|| }
t
|d rH|
d t
| }
tt||
 d }d| |t
||f }t||k |d qd S )	N   (   )d      i  i  i  i'  iP  i i90  gv!>g|=zC[RMS_REC > EPSILON] for Mode: %s, Wavelet: %s, Length: %d, rms=%.3g)msg)listranger   randomseedr   asarrayr	   dwtidwtlensqrtmeanr   )r$   r%   r#   dtype	data_sizeepsilonNdatapapdrecrms_recr,   r   r   r   r   #   s"   
r   )__doc__numpyr   pytestnumpy.testingr   r	   markslowr'   r   r   r   r   r   <module>   s   
