
     e                     F    d Z ddlmZmZmZ ddlZddlmZ ddl	Z	d Z
d ZdS )z$
Verify DWT perfect reconstruction.
    )divisionprint_functionabsolute_importN)assert_c            	          d} t          d | D             g           }g d}t          j        t          j        f}|D ]!}|D ]\  }}|D ]}t	          ||||           "d S )N)dbsymcoifbiorrbioc                 6    g | ]}t          j        |          S  )pywtwavelist).0names     Flib/python3.11/site-packages/pywt/tests/test_perfect_reconstruction.py
<listcomp>z/test_perfect_reconstruction.<locals>.<listcomp>   s"    ===DDM$''===    ))zerozpd)constantsp0)	symmetricr	   )periodicppd)smoothsp1)periodizationper)sumnpfloat32float64check_reconstruction)familieswaveletsmodesdtypeswaveletpmodemmodedts           r   test_perfect_reconstructionr.      s    4H==H===rBBH' ' 'E j"*%F @ @! 	@ 	@LE5 @ @$UE7B????@	@@ @r   c                    t          t          dd                    g dz   }t          j                            d           |t          j        k    rd}nd}|D ]}t          j        t          j                            |          |          }t          j        |||           \  }}	t          j	        ||	||           }
t          |          dz  r|
d t          |                   }
t          j        t          j        ||
z
  dz                      }d| |t          |          |fz  }t          ||k     |           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_recr4   s                r   r%   r%   "   sD   U1b\\"" &5 &5 &5 5IINN5 
 , ,z")**1--u55 $//B iB//t99q= 	"js4yyj/C'"'48a-0011&).TG(LM'!s+++++, ,r   )__doc__
__future__r   r   r   numpyr"   numpy.testingr   r   r.   r%   r   r   r   <module>rL      s     A @ @ @ @ @ @ @ @ @     ! ! ! ! ! ! @ @ @&, , , , ,r   