+
    [°³j˜  ã                   óV  € R t ^ RIt^ RIt^ RIHt ^ RIt^ RIHt	 ^ RIH
t
HtHt . ROtRt]! ] U u. uF  p ]P!                  V 4      NK  	  up . 4      tR t]]P&                  P(                  R 4       4       t]]P&                  P(                  R 4       4       tR tR	 tR
 tR tR# u up i )zs
Test used to verify PyWavelets Discrete Wavelet Transform computation
accuracy against MathWorks Wavelet Toolbox.
N)Úassert_)Úmatlab_result_dict_dwt)Úsize_setÚuses_precomputedÚuses_pymatbridgec                ó®   € \         R8X  d+   \        \        V P                  ^(4      4      . RO,           pV# V P                  V P                  ^,           3pV# )z(Return the sizes to test for wavelet w. Úfull)éd   éÈ   iô  iè  iPÃ  )r   ÚlistÚrangeÚdec_len)ÚwÚ
data_sizess   & Úe/home/luca/screen-checking/.venv/lib/python3.14/site-packages/pywt/tests/test_matlab_compatibility.pyÚ_get_data_sizesr   !   sM   € ä�6ÔÜœ% §	¡	¨2Ó.Ó/Ú(õ)ˆ
ð Ðð —i‘i §¡¨Q¥Ð/ˆ
ØÐó    c                  óT  € \         P                  ! R 4      p V ! 4       p\        P                  P	                  R4      pRpRpVP                  4         \         F§  p\        P                  ! V4      pVP                  RV4       \        V4       Fm  pVP                  V4      pVP                  RV4       \         F=  w  rš\        W…W¡4      w  r¼\        W†W›WÅV4       \        W…V
4      w  r¼\        W†W›WÅV4       K?  	  Ko  	  K©  	  VP!                  4        R#   TP!                  4        i ; i)zpymatbridge.MatlabéÒ  ç-Cëâ6
?ç»½×Ùß|Û=ÚwaveletÚdataN)ÚpytestÚimportorskipÚnpÚrandomÚRandomStateÚstartÚwaveletsÚpywtÚWaveletÚset_variabler   ÚrandnÚmodesÚ_compute_matlab_resultÚ_check_accuracyÚ_load_matlab_result_pywt_coeffsÚstop)ÚMatlabÚmlabÚrstateÚepsilonÚepsilon_pywt_coeffsr   r   ÚNr   ÚpmodeÚmmodeÚmaÚmds                r   Útest_accuracy_pymatbridger3   +   s÷   € ô × Ò Ð!5Ó6€FÙ‹8€Dä�Y‰Y×"Ñ" 4Ó(€Fà€GØ!ÐØ‡J�J„LðßˆGÜ—’˜WÓ%ˆAØ×Ñ˜i¨Ô1Ü$ QÖ'�Ø—|‘| A“�Ø×!Ñ! &¨$Ô/ß$)‘L�EÜ3°DÀ5ÓO‘F�BÜ# D¨U¸ÀWÔMÜ<¸TÈEÓR‘F�BÜ# D¨U¸ÐEXÖYó	 %*ó (ñ  ð 	�	‰	Žøˆ�	‰	�ús   ÁB1D ÄD'c                  óf  € \         P                  P                  R 4      p RpRp\         Fƒ  p\        P
                  ! V4      p\        V4       F[  pV P                  V4      p\         F=  w  rx\        WcV4      w  rš\        WdWyW£V4       \        WcV4      w  rš\        WdWyW£V4       K?  	  K]  	  K…  	  R# )r   r   r   N)r   r   r   r   r    r!   r   r#   r$   Ú_load_matlab_resultr&   r'   )r+   r,   r-   r   r   r.   r   r/   r0   r1   r2   s              r   Útest_accuracy_precomputedr6   G   sœ   € ô �Y‰Y×"Ñ" 4Ó(€Fà€GØ!ÐßˆÜ�LŠL˜Ó!ˆÜ  Ö#ˆAØ—<‘< “?ˆDß %‘�Ü,¨T¸EÓB‘�Ü ¨°BÀÔIÜ8¸ÈÓN‘�Ü ¨°BÐATÖUó	 !&ó $ó r   c                ó  € \         P                  ! V\         P                  ! . RO4      8H  ^ R7      '       dV   \        P                  ! V4      pVP                  RVP                  4       VP                  RVP                  4       RV R2pMRV R2pVP                  V4      pVR,          '       g   \        R4      h\         P                  ! VP                  R	4      4      p\         P                  ! VP                  R
4      4      pWx3# )z‰Compute the result using MATLAB.

This function assumes that the Matlab variables `wavelet` and `data` have
already been set externally.
)ÚaxisÚLo_DÚHi_Dz*[ma, md] = dwt(data, Lo_D, Hi_D, 'mode', 'z');z'[ma, md] = dwt(data, wavelet, 'mode', 'ÚsuccesszXMatlab failed to execute the provided code. Check that the wavelet toolbox is installed.r1   r2   )Úcoif6Úcoif7Úcoif8Úcoif9Úcoif10Úcoif11Úcoif12Úcoif13Úcoif14Úcoif15Úcoif16Úcoif17)r   ÚanyÚarrayr    r!   r"   Údec_loÚdec_hiÚrun_codeÚRuntimeErrorÚasarrayÚget_variable)	r   r   r0   r*   r   Ú	mlab_codeÚresr1   r2   s	   &&&&     r   r%   r%   Z   sñ   € ô 
‡v‚vˆwœ"Ÿ(š(ò  $Xó  Yñ  Yð  `a÷  bó  bÜ�LŠL˜Ó!ˆØ×Ñ˜& !§(¡(Ô+Ø×Ñ˜& !§(¡(Ô+Ø@ÀÀÀsÐK‰	à=¸e¸WÀCÐHˆ	Ø
�-‰-˜	Ó
"€CØˆy�>Œ>Üð Jó Kð 	Kô 
�Š�D×%Ñ% dÓ+Ó	,€BÜ	�Š�D×%Ñ% dÓ+Ó	,€BØˆ6€Mr   c                ó  € \        V 4      pRP                  W!\        V4      R.4      pRP                  W!\        V4      R.4      pV\        9  g   V\        9  d   \	        RV RV RV 24      h\        V,          p\        V,          pWg3# )ú!Load the precomputed result.
    Ú_r1   r2   ú0Precompted Matlab result not found for wavelet: ú, mode: ú, size: ©ÚlenÚjoinÚstrÚmatlab_result_dictÚKeyError©r   r   r0   r.   Úma_keyÚmd_keyr1   r2   s   &&&     r   r5   r5   q   s”   € ô 	ˆD‹	€AØ�X‰X�u¤s¨1£v¨tÐ4Ó5€FØ�X‰X�u¤s¨1£v¨tÐ4Ó5€FØÔ(Ô(ØÔ-Ô-ÜØ>Øˆi�x ˜w h¨q¨cð3ó4ð 	4ô 
˜FÕ	#€BÜ	˜FÕ	#€BØˆ6€Mr   c                ó  € \        V 4      pRP                  W!\        V4      R.4      pRP                  W!\        V4      R.4      pV\        9  g   V\        9  d   \	        RV RV RV 24      h\        V,          p\        V,          pWg3# )rS   rT   Úma_pywtCoeffsÚmd_pywtCoeffsrU   rV   rW   rX   r^   s   &&&     r   r'   r'   �   s”   € ô 	ˆD‹	€AØ�X‰X�u¤s¨1£v¨Ð?Ó@€FØ�X‰X�u¤s¨1£v¨Ð?Ó@€FØÔ(Ô(ØÔ-Ô-ÜØ>Øˆi�x ˜w h¨q¨cð3ó4ð 	4ô 
˜FÕ	#€BÜ	˜FÕ	#€BØˆ6€Mr   c                 ó¤  € \         P                  ! WV4      w  rx\        P                  ! \        P                  ! Ws,
          ^,          4      4      p	\        P                  ! \        P                  ! W„,
          ^,          4      4      p
RW%\        V 4      V	3,          p\        W–8  VR7       RW%\        V 4      V
3,          p\        W¦8  VR7       R# )é   zA[RMS_A > EPSILON] for Mode: %s, Wavelet: %s, Length: %d, rms=%.3g)ÚmsgzA[RMS_D > EPSILON] for Mode: %s, Wavelet: %s, Length: %d, rms=%.3gN)r    Údwtr   ÚsqrtÚmeanrY   r   )r   r   r/   r1   r2   r   r,   ÚpaÚpdÚrms_aÚrms_drf   s   &&&&&&&     r   r&   r&   ‘   sž   € ä�XŠX�d˜uÓ%�F€Bô �GŠG”B—G’G˜R�W¨�NÓ+Ó,€EÜ�GŠG”B—G’G˜R�W¨�NÓ+Ó,€Eð"Ø%*´S¸³YÀÐ$FõG€CäˆE‰O Õ%ð"Ø%*´S¸³YÀÐ$FõG€CäˆE‰O ×%r   )	)ÚzeroÚzpd)ÚconstantÚsp0)Ú	symmetricÚsym)ÚreflectÚsymw)ÚperiodicÚppd)ÚsmoothÚsp1)ÚperiodizationÚper)ÚantisymmetricÚasym)ÚantireflectÚasymw)Údbrs   ÚcoifÚbiorÚrbio)Ú__doc__Únumpyr   r   Únumpy.testingr   r    Úpywt._pytestr   r\   r   r   r   r$   ÚfamiliesÚsumÚwavelistr   r   ÚmarkÚslowr3   r6   r%   r5   r'   r&   )Únames   0r   Ú<module>rŽ      sÀ   ðñó Û Ý !ã Ý Eß EÑ Eò	€ð 1€Ù±Ó9±¨�—‘˜dÖ#±Ñ9¸2Ó>€òð Ø‡�×Ññó ó ðð4 Ø‡�×ÑñVó ó ðVò"ò.ò ô &ùòg :s   ±B&