+
    [°³j0  ã                   óZ  € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIH	t	H
t
HtHt Rt]! ] U u. uF  p ]P                  V 4      NK  	  up . 4      tR tR t]]P&                  P(                  R 4       4       t]]P&                  P(                  R 4       4       tR tR	 tR
 tR tR tR# u up i )zu
Test used to verify PyWavelets Continuous Wavelet Transform computation
accuracy against MathWorks Wavelet Toolbox.
N)Úassert_)Úmatlab_result_dict_cwtÚsize_setÚuses_precomputedÚuses_pymatbridgec                ó`   € \         R8X  d!   \        \        ^d^e4      4      . RO,           pV# RpV# )z(Return the sizes to test for wavelet w. Úfull)éd   éÈ   iô  éè  iPÃ  )r   ié  )r   ÚlistÚrange)ÚwÚ
data_sizess   & Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/pywt/tests/test_matlab_compatibility_cwt.pyÚ_get_data_sizesr      s7   € ä�6ÔÜœ%  S›/Ó*Ú(õ)ˆ
ð Ðð &ˆ
ØÐó    c                óÜ   € \         R8X  dH   ^\        P                  ! ^^4      \        P                  ! ^^4      \        P                  ! ^^4      3pV# ^\        P                  ! ^^4      3pV# )z)Return the scales to test for wavelet w. r   )r   ÚnpÚarange)r   Úscaless   & r   Ú_get_scalesr   #   sX   € ä�6ÔØ”R—Y’Y˜q !“_¤b§i¢i°°1£o´r·y²yÀÀA³ÐGˆð €Mð ”R—Y’Y˜q !“_Ð%ˆØ€Mr   c                  óJ  € \         P                  ! R 4      p V ! 4       p\        P                  P	                  R4      pRpRpVP                  4         \         EF  p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        P                  ! V4      pRRR4       \        P                  ! V\        P                  ! RR.4      8H  ^ R7      '       dO   VP                  RV\!        XP"                  4      ,           R	,           \!        VP$                  4      ,           4       MˆVR
8X  dp   VP                  RV\!        XP&                  4      ,           R	,           \!        VP"                  4      ,           R	,           \!        VP$                  4      ,           4       MVP                  RV4       RpVP)                  V4      p\        P*                  ! VP-                  R4      4      p	\/        XW•V4       \1        V4       FQ  p
VP3                  V
4      pVP                  RV4       \5        V4       F  p\7        WµWÁ4      p\9        W¶WÍWS4       K  	  KS  	  EK  	  VP;                  4        R#   + '       g   i     ELÚ; i  TP;                  4        i ; i)zpymatbridge.MatlabéÒ  çVçž¯Ò<ÚignoreNÚshanÚcmor)ÚaxisÚwaveletÚ-Úfbspzpsi = wavefun(wavelet,10)ÚpsiÚdata)ÚpytestÚimportorskipr   ÚrandomÚRandomStateÚstartÚwaveletsÚwarningsÚcatch_warningsÚsimplefilterÚFutureWarningÚpywtÚContinuousWaveletÚanyÚarrayÚset_variableÚstrÚbandwidth_frequencyÚcenter_frequencyÚ
fbsp_orderÚrun_codeÚasarrayÚget_variableÚ_check_accuracy_psir   Úrandnr   Ú_compute_matlab_resultÚ_check_accuracyÚstop)ÚMatlabÚmlabÚrstateÚepsilonÚepsilon_psir   r   Ú	mlab_codeÚresr"   ÚNr#   r   Úcoefss                 r   Útest_accuracy_pymatbridge_cwtrH   ,   s  € ô × Ò Ð!5Ó6€FÙ‹8€DÜ�Y‰Y×"Ñ" 4Ó(€Fà€GØ€KØ‡J�J„Lðß�xˆGÜ×(Ò(×*Õ*Ü×%Ò% h´Ô>Ü×*Ò*¨7Ó3�÷ +ô �vŠv�w¤"§(¢(¨F°FÐ+;Ó"<Ñ<À1×EÓEØ×!Ñ! )¨W´S¸×9NÑ9NÓ5OÕ-OÐPSÕ-SÔTWÐXY×XjÑXjÓTkÕ-kÕlØ˜FÔ"Ø×!Ñ! )¨W´S¸¿¹Ó5FÕ-FÀsÕ-JÌ3Èq×OdÑOdÓKeÕ-eÐfiÕ-iÔjmÐno÷  oAñ  oAó  kBõ  .Bõ  Cà×!Ñ! )¨WÔ5Ø4ˆIØ—-‘- 	Ó*ˆCÜ—*’*˜T×.Ñ.¨uÓ5Ó6ˆCÜ  3°Ô=Ü$ QÖ'�Ø—|‘| A“�Ø×!Ñ! &¨$Ô/Ü)¨!žn�FÜ2°4À&ÓO�EÜ# D¨V¸GÖMó -ô (ñ  ð, 	�	‰	Ž÷+ +×*Ð*ûð* 	�	‰	�ús+   Á'J Á92I<Â+>J Ã*F J É<JÊ	J ÊJ"c                  óÊ  € \         P                  P                  R 4      p RpRpRp\         EF  p\        P
                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        P                  ! V4      p\        P                  ! V\         P                  R7      pRRR4       \        V4      p\        XWtV4       \        V4       Fw  pV P                  V4      p	V	P                  \         P                  4      p
^ p\!        V4       F3  pV^,          p\#        W”V4      p\%        W•WÍWA4       \%        V
XWÍWB4       K5  	  Ky  	  EK"  	  R#   + '       g   i     Lµ; i)r   gVçž¯â<gñhãˆµøä>r   r   )ÚdtypeN)r   r&   r'   r)   r*   r+   r,   r-   r.   r/   Úfloat32Ú_load_matlab_result_psir:   r   r;   Úastyper   Ú_load_matlab_resultr=   )rA   rB   Ú	epsilon32rC   r   r   Úw32r"   rF   r#   Údata32Úscales_countr   rG   s                 r   Útest_accuracy_precomputed_cwtrS   P   s  € ô �Y‰Y×"Ñ" 4Ó(€Fà€GØ€IØ€Kß�8ˆÜ×$Ò$×&Õ&Ü×!Ò! (¬MÔ:Ü×&Ò& wÓ/ˆAÜ×(Ò(¨´r·z±zÔBˆC÷ 'ô & gÓ.ˆÜ˜A˜s¨[Ô9ä  Ö#ˆAØ—<‘< “?ˆDØ—[‘[¤§¡Ó,ˆFØˆLÜ% až.�Ø Õ!�Ü+¨D¸<ÓH�Ü ¨¸ÔIÜ ¨¨V¸GÖOó	 )ô	 $ó ß&×&ús   ÁAEÅE"c                óÎ   € VP                  RV4       RpVP                  V4      pVR,          '       g   \        R4      h\        P                  ! VP                  R4      4      pV# )z‰Compute the result using MATLAB.

This function assumes that the Matlab variables `wavelet` and `data` have
already been set externally.
r   z"coefs = cwt(data, scales, wavelet)ÚsuccesszXMatlab failed to execute the provided code. Check that the wavelet toolbox is installed.rG   )r2   r7   ÚRuntimeErrorr   r8   r9   )r#   r   r   r@   rD   rE   rG   s   &&&&   r   r<   r<   l   se   € ð 	×Ñ�h Ô'Ø5€IØ
�-‰-˜	Ó
"€CØˆy�>Œ>Üð Jó Kð 	Kô �JŠJ�t×(Ñ(¨Ó1Ó2€EØ€Lr   c                óÂ   € \        V 4      pRP                  \        V4      V\        V4      R.4      pV\        9  d   \	        RV RV RV 24      h\        V,          pV# )ú!Load the precomputed result.
    Ú_rG   z0Precompted Matlab result not found for wavelet: z, mode: z, size: )ÚlenÚjoinr3   r   ÚKeyError)r#   r   r   rF   Ú	coefs_keyrG   s   &&&   r   rN   rN   }   sl   € ô 	ˆD‹	€AØ—‘œ#˜f›+ w´°A³¸Ð@ÓA€IØÔ/Ô/ÜØ>Øˆi�x ˜x x°¨sð4ó5ð 	5ô # 9Õ-€EØ€Lr   c                ó�   € RP                  V R.4      pV\        9  d   \        RP                  V 4      4      h\        V,          pV# )rX   rY   r"   z8Precompted Matlab psi result not found for wavelet: {0}})r[   r   r\   Úformat)r   Úpsi_keyr"   s   &  r   rL   rL   Š   sL   € ð �h‰h˜ Ð'Ó(€GØÔ-Ô-Üðß‘6˜'“?ó$ð 	$ô ! Õ
)€CØ€Jr   c           	      ór  € \         P                  ! WV^
R7      w  rg\        P                  ! V4      pWc,
          p\        P                  ! \        P
                  ! \        P                  ! \        P                  ! V4      V,          4      4      4      p	RW$\        V 4      V	3,          p
\        W•8  V
R7       R# )é
   )Ú	precisionz@[RMS > EPSILON] for Scale: %s, Wavelet: %s, Length: %d, rms=%.3g©ÚmsgN)	r.   Úcwtr   ÚconjÚrealÚsqrtÚmeanrZ   r   )r#   r   r   rG   r   rB   Ú
coefs_pywtÚfreqÚerrÚrmsre   s   &&&&&&     r   r=   r=   –   s„   € ä—x’x ¨a¸2Ô>Ñ€Jô
 �GŠG�E‹N€Eð Õ
€CÜ
�'Š'”"—'’'œ"Ÿ'š'¤"§'¢'¨#£,°Õ"4Ó5Ó6Ó
7€Cð"Ø%+´c¸$³iÀÐ$EõF€CäˆC‰M˜s×#r   c           	      óZ  € V P                  R R7      w  rEVP                  4       VP                  4       ,
          p\        P                  ! \        P                  ! \        P
                  ! \        P                  ! V4      V,          4      4      4      pRV RVR 2p\        Ws8  VR7       R# )i   )Úlengthz[RMS > EPSILON] for  Wavelet: z, rms=z.3grd   N)ÚwavefunÚflattenr   rh   ri   rj   rg   r   )	r   r"   r   rB   Úpsi_pywtÚxrm   rn   re   s	   &&&&     r   r:   r:   ¨   s|   € à—)‘) 4�)Ó(�K€Hð ×
Ñ
Ó
˜sŸ{™{›}Õ
,€CÜ
�'Š'”"—'’'œ"Ÿ'š'¤"§'¢'¨#£,°Õ"4Ó5Ó6Ó
7€Cà*¨7¨)°6¸#¸c¸Ð
C€CÜˆC‰M˜s×#r   )ÚgausÚmexhÚmorlÚcgaur   r!   r   )Ú__doc__r*   Únumpyr   r$   Únumpy.testingr   r.   Úpywt._pytestr   r   r   r   ÚfamiliesÚsumÚwavelistr)   r   r   ÚmarkÚslowrH   rS   r<   rN   rL   r=   r:   )Únames   0r   Ú<module>rƒ      sÉ   ðñó ã Û Ý !ã ÷ó ð D€Ù±Ó9±¨�—‘˜dÖ#±Ñ9¸2Ó>€òòð Ø‡�×Ññó ó ððD Ø‡�×ÑñPó ó ðPò4ò"
ò	ò$ô$	$ùòe :s   ­B(