Ë
    âQ(h|W ã                   óú
  — d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
Z
d dl
mZ d dlmZmZmZmZmZmZmZmZ d dlmZmZ d dlZd d	lmZ d d
lmZ d dlm Z m!Z! d dlm"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZFmGZGmHZH d dlImJZJ d dlKmLZL d dlMmNZN d dlOmPZPmQZQmRZR  G d„ d«      ZS G d„ deS«      ZT G d„ d«      ZU G d„ deU«      ZV G d„ d«      ZWd„ ZXd„ ZYd „ ZZd!„ Z[ G d"„ d#«      Z\ G d$„ d%«      Z] G d&„ d'«      Z^ G d(„ d)«      Z_g d*¢Z`e`eJz  Z` G d+„ d,«      Za G d-„ d.«      Zb G d/„ d0«      Zc G d1„ d2«      Zd G d3„ d4ed«      Ze G d5„ d6ed«      Zfe
jÎ                  jÑ                  d7«       G d8„ d9ed«      «       Zi G d:„ d;ed«      Zj G d<„ d=ed«      Zke
jÎ                  jÑ                  d7«       G d>„ d?ed«      «       Zle
jÎ                  jÑ                  d7«       G d@„ dAed«      «       Zme
jÎ                  jÑ                  d7«       G dB„ dCed«      «       Zne
jÎ                  jÑ                  d7«      dD„ «       Zoe
jÎ                  jÑ                  d7«      ZpdE„ Zqe
jÎ                  jå                  dFejæ                  ejè                  ejê                  ejì                  eReQejî                  ejî                  ejð                  ejò                   e
jô                  ejö                  ep¬G«       e
jô                  eep¬G«      g«       G dH„ dI«      «       Z| G dJ„ dK«      Z}e
jÎ                  jå                  dLg dM¢«      e
jÎ                  jå                  dNdOdPg«      e
jÎ                  jå                  dQg dR¢«      dS„ «       «       «       Z~dT„ Ze
jÎ                  jå                  dFe�j                   e�j                   e
jô                  e�j                  ep¬G«      g«       G dU„ dV«      «       Zƒ G dW„ dX«      Z„ G dY„ dZ«      Z… G d[„ d\«      Z† G d]„ d^e†«      Z‡d_„ Zˆdd`„Z‰e
jÎ                  �j                  da«      db„ «       Z‹e
jÎ                  �j                  dc„ «       Z�e
jÎ                  jÑ                  d7«      dd„ «       ZŽe
jÎ                  �j                  da«      de„ «       Z� G df„ dg«      Z� G dh„ di«      Z‘ G dj„ dk«      Z’ G dl„ dm«      Z“ G dn„ do«      Z” G dp„ dq«      Z•d€dr„Z–e
jÎ                  jÑ                  d7«      e
jÎ                  jå                  dse:e/f«      dt„ «       «       Z—e
jÎ                  jå                  dFdu«       G dv„ dw«      «       Z˜ G dx„ dy«      Z™ G dz„ d{«      Zš G d|„ d}«      Z›d~„ Zœy)�é    N)ÚThreadPoolExecutorÚas_completed)ÚDecimal©Úproduct)Úgcd)Úraises)Úassert_equalÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equalÚassert_allcloseÚassert_Úassert_array_lessÚsuppress_warnings)ÚarrayÚarange)Úfft)Úcorrelate1d)ÚfminÚlinear_sum_assignment)Úsignal)Ú	correlateÚcorrelate2dÚcorrelation_lagsÚconvolveÚ
convolve2dÚfftconvolveÚ
oaconvolveÚchoose_conv_methodÚenvelopeÚhilbertÚhilbert2ÚlfilterÚ
lfilter_ziÚfiltfiltÚbutterÚzpk2tfÚzpk2sosÚinvresÚinvreszÚvectorstrengthÚlfilticÚtf2sosÚsosfiltÚsosfiltfiltÚ
sosfilt_ziÚtf2zpkÚBadCoefficientsÚdetrendÚunique_rootsÚresidueÚresiduez)Úhann)Ú_filtfilt_gustÚ_compute_factorsÚ_group_poles)Ú_upfirdn_modes)Ú
_testutils©Úxp_assert_close)ÚComplexWarningÚnp_longÚnp_ulongc                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)Ú_TestConvolvec                 óZ   — g d¢}g d¢}t        ||«      }t        |t        g d¢«      «       y )N)é   é   é   é   rH   rG   ©é   é   rF   )rF   é
   é   é   é    rP   é   é   ©r   r   r   ©ÚselfÚaÚbÚcs       úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/signal/tests/test_signaltools.pyÚ
test_basicz_TestConvolve.test_basic(   s'   € ÚˆÚˆÜ�Q˜‹NˆÜ˜1œeÒ$CÓDÕEó    c                 ó^   — g d¢}g d¢}t        ||d¬«      }t        |t        g d¢«      «       y )N©rF   rG   rH   ©rK   rL   rF   rG   Úsame©Úmode)rM   rN   é"   rS   rT   s       rY   Ú	test_samez_TestConvolve.test_same.   s)   € ÚˆÚˆÜ�Q˜ Ô'ˆÜ˜1œe¢LÓ1Õ2r[   c                 ó^   — g d¢}g d¢}t        ||d¬«      }t        |t        g d¢«      «       y )Nr]   rJ   r_   r`   )rM   rN   rN   rS   rT   s       rY   Útest_same_eqz_TestConvolve.test_same_eq4   s)   € ÚˆÚˆÜ�Q˜ Ô'ˆÜ˜1œe¢LÓ1Õ2r[   c                 ó~   — t        g d¢«      }t        ddg«      }t        ||«      }t        |t        g d¢«      «       y )N)ù      ð?      ð?ù       @      ð?ù      @      ð?rg   rh   )ù               @y       @      @y      @       @y      @      @)r   r   r   )rU   ÚxÚyÚzs       rY   Útest_complexz_TestConvolve.test_complex:   s7   € ÜÒ*Ó+ˆÜ�6˜6Ð"Ó#ˆÜ�Q˜‹NˆÜ˜1œeÒ$@ÓAÕBr[   c                 óB   — d}d}t        ||«      }t        |||z  «       y )Ni	  i×  )r   r
   rT   s       rY   Útest_zero_rankz_TestConvolve.test_zero_rank@   s%   € ØˆØˆÜ�Q˜‹NˆÜ�Q˜˜A™Õr[   c                 ó<  — t        j                  d«      j                  ddd«      }t        j                  d«      }t        d«      D ]S  }dgdz  }d||<   t	        ||j                  |«      d¬«      }t	        ||j                  |«      d¬«      }t        ||«       ŒU y )Né   rF   rK   Údirect©Úmethodr   )Únpr   ÚreshapeÚranger   r   )rU   rV   rW   ÚiÚb_shaperk   rl   s          rY   Útest_broadcastablez _TestConvolve.test_broadcastableF   sŠ   € Ü�I‰I�b‹M×!Ñ! ! Q¨Ó*ˆÜ�I‰I�a‹LˆÜ�q“ò 	"ˆAØ�c˜!‘eˆGØˆG�A‰JÜ˜˜AŸI™I gÓ.°xÔ@ˆAÜ˜˜AŸI™I gÓ.°uÔ=ˆAÜ˜A˜qÕ!ñ	"r[   c                 ój   — t        dg«      }t        dg«      }t        ||«      }t        |||z  «       y ©Nig  iP  )r   r   r
   rT   s       rY   Útest_single_elementz!_TestConvolve.test_single_elementP   s1   € Ü�4�&‹MˆÜ�4�&‹MˆÜ�Q˜‹NˆÜ�Q˜˜A™Õr[   c                 ó|   — g d¢g d¢g}g d¢g d¢g}t        ||«      }t        g d¢g d¢g d¢g«      }t        ||«       y ©NrJ   r]   ©rL   rF   rG   ©rG   rH   rI   )rL   é   é   é   rR   )rM   é   é>   é:   é&   )rR   é   rˆ   é1   r†   ©r   r   r   ©rU   rV   rW   rX   Úds        rY   Útest_2d_arraysz_TestConvolve.test_2d_arraysV   sE   € Úš	Ð"ˆÚš	Ð"ˆÜ�Q˜‹NˆÜÒ%Ú'Ú'ð)ó *ˆô 	˜1˜aÕ r[   c           
      ó¶  — t        d«      j                  ddd«      }dt        d«      j                  ddd«      z  }|t        d«      d d d…   j                  ddd«      z  }t        g d¢g d¢g d	¢g d
¢gg d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢gg«      }t        t	        ||d«      |«       t        t	        ||d«      |«       t        t	        ||d«      |dd…dd…dd…f   «       t        t	        ||d«      |dd…dd…dd…f   «       t        t	        ||d«      |dd…dd…dd…f   «       t        t	        ||d«      |dd…dd…dd…f   «       y )Né   rL   ù              ð?rr   rF   éÿÿÿÿ)ù                y      :@        y      9@      ð?y      8@       @)y      J@        y     àb@      @y      b@      &@y     @W@      &@)y      G@      @y      `@      7@y     À_@      =@y     @T@      7@)y      D@      (@y     €X@      @@y     @W@     €B@y      K@      8@)y      Z@        y     àn@      *@y      m@      7@y     à`@      5@)y      q@      >@y     Àƒ@      X@y     à‚@      _@y      t@     €U@)y     Àn@     €P@y      �@     €f@y     @€@      j@y      q@     À`@)y     Àa@     €P@y     0s@      d@y     r@     `f@y      c@     ÀZ@)y      Q@      B@y      c@     ÀY@y     `b@     @\@y     @T@     ÀR@)y     Àe@     @a@y     Àw@     Àu@y      v@     €w@y     @g@     Àl@)y     @a@     Àe@y     €r@      {@y     Àp@     À|@y     @a@     `q@)y     €Q@     @a@y      b@     0t@y     À_@     Pu@y     €O@      h@)y      @@      R@y      Q@     Àd@y     €M@     àe@y      >@      Y@)y      Q@      h@y     `a@     {@y     @]@     p|@y     €L@     ào@)y      C@     Àk@y     @R@     0@y     €I@     H€@y      5@     0r@)y      (@      b@y      4@     às@y      @     °t@y             Àf@Úfullr_   rK   r   Úvalid)r   rw   r   r   r   )rU   ÚsmallÚbigÚ	out_arrays       rY   Útest_input_swappingz!_TestConvolve.test_input_swapping_   s’  € Ü�q“	×!Ñ! ! Q¨Ó*ˆØ”6˜"“:×%Ñ% a¨¨AÓ.Ñ.ˆØŒv�b‹z™$˜B˜$Ñ×'Ñ'¨¨1¨aÓ0Ñ0ˆäÚ1Ú6Ú7Ú6ð8ò
 :Ú;Ú=Ú=ð?ò
 ;Ú>Ú>Ú<ð>ò
 :Ú<Ú:Ú8ð:ð;ó<ˆ	ô* 	œ8 E¨3°Ó7¸ÔCÜœ8 C¨°Ó7¸ÔCÜœ8 E¨3°Ó7Ø$ Q q S¨!¨A¨#¨q°¨s ]Ñ3ô	5äœ8 C¨°Ó7Ø$ Q q S¨!¨A¨#¨q°¨s ]Ñ3ô	5äœ8 E¨3°Ó8Ø$ Q q S¨!¨A¨#¨q°¨s ]Ñ3ô	5äœ8 C¨°Ó8Ø$ Q q S¨!¨A¨#¨q°¨s ]Ñ3õ	5r[   c                 ó  — g d¢}g d¢}t        t        t        ||d¬«       t        t        t        ||dd¬«       t        t        t        ||dd	¬«       t        t        t        ||d
d¬«       t        t        t        ||dd¬«       y ©Nr]   rJ   Úspamr`   Úeggsr   ©ra   ru   Úhamrs   r•   Úbaconr_   ©Úassert_raisesÚ
ValueErrorr   ©rU   rV   rW   s      rY   Útest_invalid_paramsz!_TestConvolve.test_invalid_params„   sd   € ÚˆÚˆÜ”j¤(¨A¨q°vÕ>Ü”j¤(¨A¨q°vÀeÕLÜ”j¤(¨A¨q°uÀXÕNÜ”j¤(¨A¨q°vÀgÕNÜ”j¤(¨A¨q°vÀgÖNr[   N)Ú__name__Ú
__module__Ú__qualname__rZ   rc   re   rn   rp   r{   r~   r�   rš   r¦   © r[   rY   rD   rD   &   s8   „ òFò3ò3òCòò"òò!ò#5óJOr[   rD   c                   ój   — e Zd Zd„ Zd„ Zd„ Zd	d„Zd„ Zd„ Ze	j                  j                  d„ «       Zy)
ÚTestConvolvec                 óü   — g d¢}g d¢}g d¢}t        ||d«      }t        ||«       t        ||d«      }t        ||«       g d¢}ddg}ddg}t        ||d«      }t        ||«       t        ||d«      }t        ||«       y )	N©rK   rL   rF   rI   rH   rF   ©	rL   rF   rG   rH   rF   rG   rL   rL   rK   )éF   éN   éI   éA   r–   )y      ð?      @ù       @      ð¿y      @        ù       @      Àù      ð?        y       @      $À)r   r   ©rU   rV   rW   ÚexpectedÚouts        rY   Útest_valid_mode2zTestConvolve.test_valid_mode2�   sŠ   € âˆÚ'ˆÚ#ˆä�q˜!˜WÓ%ˆÜ˜3 Ô)ä�q˜!˜WÓ%ˆÜ˜3 Ô)â$ˆØ�VÐˆØ˜GÐ$ˆä�q˜!˜WÓ%ˆÜ˜3 Ô)ä�q˜!˜WÓ%ˆÜ˜3 Õ)r[   c                 ó`   — g d¢}g d¢}t        ||d«      }t        g d¢«      }t        ||«       y )N)rK   rL   rF   rF   rK   rL   )rK   rG   rF   rG   rH   rI   rƒ   rG   rF   rL   rK   rK   rF   r_   )é9   é=   é?   r¼   é-   é$   rŒ   r�   s        rY   Útest_same_modezTestConvolve.test_same_mode¦   s/   € ÚˆÚ3ˆÜ�Q˜˜6Ó"ˆÜÒ*Ó+ˆÜ˜1˜aÕ r[   c                 ó  — t        j                  dd«      j                  d«      }t        j                  dd«      j                  d«      }t        t        t
        g||f¢­i ddi¤Ž t        t        t
        g||f¢­i ddi¤Ž y ©	NrK   rƒ   ©rL   rF   éúÿÿÿr   ©rF   rL   ra   r–   )rv   r   rw   r£   r¤   r   r¥   s      rY   Útest_invalid_shapesz TestConvolve.test_invalid_shapes­   ss   € ô �I‰I�a˜‹O×#Ñ# FÓ+ˆÜ�I‰I�b˜!Ó×$Ñ$ VÓ,ˆä”j¤(ÐI¨a°¨VÒI¸ÀÐ7HÒIÜ”j¤(ÐI¨a°¨VÒI¸ÀÐ7HÓIr[   c                 ón  — h d£}|D ���cg c]  }|D ]  }dD ]  }|||f‘Œ	 Œ Œ }}}}t         j                  j                  d«      }|j                  ddg|¬«      |j	                  |«      dœ}|d   x|d	<   |d
<   |d   d|d   z  z   |d<   |D �]  \  }}}|t        j
                  |«      j                     j                  |«      }	|t        j
                  |«      j                     j                  |«      }
dD �ci c]  }|t        |	|
||¬«      “Œ }}t        |d   j
                  |d   j
                  «       d|v rd|v rt        t        |	|
«      d«       ŒÌt        ||fD �cg c]  }|dv ‘Œ c}«      rdddœ}nd||fv rdddœ}ndddœ}t        |d   |d   fi |¤Ž �Œ y c c}}}w c c}w c c}w )N>   ÚboolÚint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64Ú	complex64Ú
complex128)r–   r•   r_   é*   r   rK   ©Úsize)ry   Úfry   rW   ÚurÚ   ù              à?rX   )r   rs   )ru   ra   r   rs   rÉ   >   rÓ   rÕ   ç-Cëâ6?g�íµ ÷Æ°>©ÚrtolÚatolrÒ   çü©ñÒMbP?çñhãˆµøä>ç:Œ0âŽyE>)rv   ÚrandomÚRandomStateÚchoiceÚrandnÚdtypeÚkindÚastyper   r
   r    Úanyr   )rU   ÚnÚtypesÚt1Út2ra   ÚargsÚrngÚarray_typesÚx1Úx2ÚkeyÚresultsÚtÚkwargss                  rY   Útest_convolve_methodz!TestConvolve.test_convolve_method¹   s  € ò4ˆð */÷ Fð F 2¸ò F°2Ø+DòFØ#'ð �R˜’ð F�ð F�ð Fˆò Fô
 �i‰i×#Ñ# BÓ'ˆØŸJ™J¨¨1 v°A˜JÓ6ØŸI™I a›Lñ*ˆà.9¸#Ñ.>Ð>ˆ�CÑ˜; sÑ+Ø& sÑ+¨d°;¸sÑ3CÑ.CÑCˆ�CÑà ó 	I‰LˆB��DØœRŸX™X b›\×.Ñ.Ñ/×6Ñ6°rÓ:ˆBØœRŸX™X b›\×.Ñ.Ñ/×6Ñ6°rÓ:ˆBð #4ö5Øð œH R¨°C¸dÔCÑCð 5ˆGð 5ô ˜ ™×-Ñ-¨w°xÑ/@×/FÑ/FÔGà˜‰| ¨"¡ÜÔ/°°BÓ7¸ÔBØô ¸BÀ¸8ÖD°a�AÐ1Ò1ÒDÔEØ"(°$Ñ7‘Ø˜r 2˜hÑ&à"&°Ñ5‘ð #'°Ñ5�ä˜G E™N¨G°HÑ,=ÑHÀÔHñ1	IùôFùò5ùò Es   ‹F&Ã=F-Å&F2
c                 ó  — dD ]}  }t        j                  d|z  gt         j                  ¬«      }t        ||d¬«      }t        ||d¬«      }|dk  sŒNt	        ||«       t	        |dd|z  z  «       t	        |dd|z  z  «       Œ y )N)	rM   é   é2   é3   é4   é5   é6   é<   r‡   rL   ©rè   r   rt   rs   rü   )rv   r   rÍ   r   r
   )rU   rì   rm   r   rs   s        rY   Ú test_convolve_method_large_inputz-TestConvolve.test_convolve_method_large_inputå   s€   € ð 6ò 
	/ˆAÜ—‘˜!˜Q™$˜¤r§x¡xÔ0ˆAÜ˜1˜a¨Ô.ˆCÜ˜a ¨8Ô4ˆFð �2‹vÜ˜S &Ô)Ü˜S ! a¨¡c¡(Ô+Ü˜V Q¨¨1©¡XÕ.ñ
	/r[   c                 ó,  — t        t        t        dgdd¬«       t        t        t        ddgd¬«       t        t        t        dgdd¬«       t        t        t        ddgd¬«       t        t        t        dgdgg«       t        t        t        dgd«       y ©NrK   rL   rs   rt   r   rF   r¢   ©rU   s    rY   Útest_mismatched_dimsz!TestConvolve.test_mismatched_dimsô   sn   € ä”j¤(¨Q¨C°¸8ÕDÜ”j¤(¨A°¨s¸8ÕDÜ”j¤(¨Q¨C°¸5ÕAÜ”j¤(¨A°¨s¸5ÕAÜ”j¤(¨Q¨C°1°#°Ô7Ü”j¤(¨Q¨C°Õ3r[   c                 óæ   — t        j                  g d¢t        ¬«      }t        j                  g d¢t        ¬«      }t        j                  d¬«      5  t        ||«       d d d «       y # 1 sw Y   y xY w©Nr®   r  r¯   údtype=object is not supported©Úmatch)rv   ÚasarrayÚobjectÚpytestÚdeprecated_callr   r¥   s      rY   Útest_dtype_deprecationz#TestConvolve.test_dtype_deprecationý   sS   € ô �J‰JÒ)´Ô8ˆÜ�J‰JÒ2¼&ÔAˆÜ×#Ñ#Ð*IÔJñ 	Ü�Q˜ŒN÷	÷ 	ñ 	úó   ÁA'Á'A0N)éd   )r§   r¨   r©   rº   rÁ   rÇ   rù   r  r  r  ÚmarkÚthread_unsafer  rª   r[   rY   r¬   r¬   Ž   sA   „ ò*ò,!ò
Jó*IòX/ò4ð ‡[�[×Ññó ñr[   r¬   c                   óì   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej                  j                  d	eeg«      ej                  j                  d
dg d¢gfdg d¢gfg«      d„ «       «       Zd„ Zd„ Zd„ Zy)Ú_TestConvolve2dc                 ó|   — g d¢g d¢g}g d¢g d¢g}t        g d¢g d¢g d¢g«      }t        ||«      }t        ||«       y r€   ©r   r   r   )rU   rV   rW   rŽ   Úes        rY   r�   z_TestConvolve2d.test_2d_arrays  sF   € Úš	Ð"ˆÚš	Ð"ˆÜÒ%Ú'Ú'ð)ó *ˆô �q˜!ÓˆÜ˜1˜aÕ r[   c                 ó¤   — g d¢g d¢g}g d¢g d¢g}t        g d¢g«      }t        ||d«      }t        ||«       t        ||d«      }t        ||«       y )N©rL   rF   rG   rH   rI   rƒ   r‘   ©rG   rH   rI   rƒ   r‘   é	   rM   rJ   r]   ©r‡   éP   éb   ét   é†   r–   r  ©rU   r  rÚ   ÚhÚgs        rY   Útest_valid_modez_TestConvolve2d.test_valid_mode  sW   € Ú"Ò$:Ð;ˆÚš	Ð"ˆÜÒ)Ð*Ó+ˆä�q˜!˜WÓ%ˆÜ˜1˜aÔ ô �q˜!˜WÓ%ˆÜ˜1˜aÕ r[   c                 óÜ   — g d¢g d¢g}t        j                  g d¢g d¢gt        ¬«      dz   }t        g d¢g«      }t        ||d«      }t	        ||«       t        ||d«      }t        ||«       y )	Nr  r  rJ   r]   r  r’   )y      O@      8@y      T@      >@y     €X@      B@y      ]@      E@y     À`@      H@r–   )rv   r   Úcomplexr   r   r   r$  s        rY   Útest_valid_mode_complxz&_TestConvolve2d.test_valid_mode_complx  sg   € Ú"Ò$:Ð;ˆÜ�H‰H’i¢Ð+´7Ô;¸bÑ@ˆÜÒGÐHÓIˆä�q˜!˜WÓ%ˆÜ! ! QÔ'ô �q˜!˜WÓ%ˆÜ˜1˜aÕ r[   c                 ó†   — g d¢g d¢g}g d¢g d¢g}d}t        ||dd|«      }t        g d¢g d	¢g d
¢g«      }t        ||«       y )NrJ   r]   r�   r‚   rK   r•   Úfill)é   é   rŠ   rb   rP   )rO   é(   r‡   é@   rþ   )rP   é.   éC   r‡   é0   ©r   r   r   )rU   rV   rW   ÚfillvalrX   rŽ   s         rY   Útest_fillvaluez_TestConvolve2d.test_fillvalue)  sQ   € Úš	Ð"ˆÚš	Ð"ˆØˆÜ�q˜!˜V V¨WÓ5ˆÜÒ'Ú'Ú'ð)ó *ˆô 	˜1˜aÕ r[   c                 ó†  — d}t         j                  j                  «       5 }|j                  t        d«       t        t        |¬«      5  t        dggddggd¬«       d d d «       d d d «       d}t        t        |¬«      5  t        dggddggddg¬«       d d d «       y # 1 sw Y   ŒCxY w# 1 sw Y   ŒGxY w# 1 sw Y   y xY w)	Nz2could not cast `fillvalue` directly to the output zCasting complex valuesr  rK   rL   r’   ©Ú	fillvaluez,`fillvalue` must be scalar or an array with )rv   Útestingr   Úfilterr@   r£   r¤   r   )rU   ÚmsgÚsups      rY   Útest_fillvalue_errorsz%_TestConvolve2d.test_fillvalue_errors3  s·   € ØBˆÜ�Z‰Z×)Ñ)Ó+ð 	:¨sØ�J‰J”~Ð'?Ô@Üœz°Ô5ñ :Ü˜Q˜C˜5 A q 6 (°bÕ9÷:÷	:ð
 =ˆÜœ:¨SÔ1ñ 	:Ü˜˜�u  1˜v˜h°1°a°&Õ9÷	:ð 	:÷	:ð :ú÷	:ð 	:ú÷	:ð 	:ús/   ¡(B+Á	BÁB+Â B7ÂB(	Â$B+Â+B4Â7C c                 ó>   — t        t        t        dggddggg ¬«       y )NrK   rL   r8  ©r£   r¤   r   r  s    rY   Útest_fillvalue_emptyz$_TestConvolve2d.test_fillvalue_empty>  s   € ä”j¤*°¨s¨e°q¸!°f°XØ "ö	$r[   c                 ó€   — g d¢g d¢g}g d¢g d¢g}t        ||dd«      }t        g d¢g d¢g d¢g«      }t        ||«       y )	NrJ   r]   r�   r‚   r•   Úwrap)r   r   éJ   r   r   )éD   rE  r‡   rE  rE  r4  r�   s        rY   Útest_wrap_boundaryz"_TestConvolve2d.test_wrap_boundaryC  sJ   € Úš	Ð"ˆÚš	Ð"ˆÜ�q˜!˜V VÓ,ˆÜÒ'Ú'Ú'ð)ó *ˆô 	˜1˜aÕ r[   c                 ó€   — g d¢g d¢g}g d¢g d¢g}t        ||dd«      }t        g d¢g d¢g d	¢g«      }t        ||«       y )
NrJ   r]   r�   r‚   r•   Úsymm)rb   r†   é,   r‡   éB   )rþ   r3  r‡   r   éT   )éR   r±   é\   én   ér   r4  r�   s        rY   Útest_sym_boundaryz!_TestConvolve2d.test_sym_boundaryL  sJ   € Úš	Ð"ˆÚš	Ð"ˆÜ�q˜!˜V VÓ,ˆÜÒ'Ú'Ú)ð+ó ,ˆô 	˜1˜aÕ r[   Úfunczboundary, expectedrH  )g     €B@ç      E@ç      F@g     €F@rC  )ç     €E@rS  rR  ç     €C@c                 óŽ   — t        j                  g d¢g«      }t        j                  d«      } |||d|¬«      }t        ||«       y )N)ç       @ç      ð¿ç      @ç      @)rK   é   r_   ©ra   Úboundary)rv   r   Úonesr   )rU   rQ  r]  r¸   ÚimageÚkernelÚresults          rY   Útest_same_with_boundaryz'_TestConvolve2d.test_same_with_boundaryU  s@   € ô —‘Ò/Ð0Ó1ˆÜ—‘˜Ó!ˆÙ�e˜V¨&¸8ÔDˆô 	˜6 8Õ,r[   c           	      ó  — dd l m} t        j                  ddt        ¬«      j                  dd«      }t        j                  ddt        ¬«      j                  dd«      }t        ||dd	¬
«      }t        ||j                  ||d	d¬«      «       y )Nr   rK   rŠ   r  rM   rF   ée   r_   rC  r\  )r“   r“   )ra   Úorigin)	Úscipy.ndimageÚndimagerv   r   Úfloatrw   r   r   r   )rU   ÚndirV   rW   rX   s        rY   Útest_boundary_extension_samez,_TestConvolve2d.test_boundary_extension_samef  sp   € õ 	$Ü�I‰I�a˜¤uÔ-×5Ñ5°b¸!Ó<ˆÜ�I‰I�a˜¬Ô.×6Ñ6°r¸2Ó>ˆÜ�q˜! &°6Ô:ˆÜ˜1˜cŸl™l¨1¨a°fÀX˜lÓNÕOr[   c                 óZ  — dd l m} t        j                  ddt        ¬«      j                  dd«      }t        j                  ddt        ¬«      j                  dd«      }t        ||dd	¬
«      }t        j                  |dd	«      }t        ||j                  ||d	¬«      d d…d d…f   «       y )Nr   rK   rM   r  rF   é%   rI   r•   rC  r\  )©rF   rF   rm  r`   r“   )
rf  rg  rv   r   rh  rw   r   Úpadr   r   )rU   ri  rV   rW   rX   Úapads         rY   Útest_boundary_extension_fullz,_TestConvolve2d.test_boundary_extension_fullp  s’   € õ 	$Ü�I‰I�a˜¤eÔ,×4Ñ4°Q¸Ó:ˆÜ�I‰I�a˜¤eÔ,×4Ñ4°Q¸Ó:ˆÜ�q˜! &°6Ô:ˆÜ�v‰v�aÐ)¨6Ó2ˆÜ˜1˜cŸl™l¨4°¸˜lÓ@ÀÀ"ÀÀcÀrÀcÀÑJÕKr[   c                 ó  — t        j                  dd«      j                  d«      }t        j                  dd«      j                  d«      }t        t        t
        g||f¢­i ddi¤Ž t        t        t
        g||f¢­i ddi¤Ž y rÃ   )rv   r   rw   r£   r¤   r   r¥   s      rY   rÇ   z#_TestConvolve2d.test_invalid_shapes{  ss   € ô �I‰I�a˜‹O×#Ñ# FÓ+ˆÜ�I‰I�b˜!Ó×$Ñ$ VÓ,ˆä”j¤*ÐK°°1¨vÒK¸&À'Ð9JÒKÜ”j¤*ÐK°°1¨vÒK¸&À'Ð9JÓKr[   N)r§   r¨   r©   r�   r'  r*  r6  r>  rA  rF  rP  r  r  Úparametrizer   r   rb  rj  rp  rÇ   rª   r[   rY   r  r    s¡   „ ò!ò
!ò
!ò!ò	:ò$ò
!ò!ð ‡[�[×Ñ˜V j°+Ð%>Ó?Ø‡[�[×ÑÐ1Ø%Ò(@Ð'AÐBØ%Ò(@Ð'AÐBðDóEñ-óEó @ð-òPò	Ló
Lr[   r  c                   ó˜   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  ej                  j                  d«      d„ «       «       Zy)ÚTestConvolve2dc                 óx   — g d¢g d¢g}g d¢g d¢g}t        ||d«      }t        g d¢g d¢g«      }t        ||«       y )NrJ   r]   r  r  r_   )rN   rO   rb   )r   r!  r"  r4  )rU   r  rÚ   r&  r%  s        rY   rÁ   zTestConvolve2d.test_same_modeŠ  sC   € Úš	Ð"ˆÚ"Ò$:Ð;ˆÜ�q˜!˜VÓ$ˆÜ’<Ú ð"ó #ˆä˜1˜aÕ r[   c                 ó   — g d¢g d¢g}g d¢g d¢g}g d¢g}t        ||d«      }t        ||«       t        ||d«      }t        ||«       ddgd	d
gg}g d¢g d¢g}ddgg}t        ||d«      }t        ||«       t        ||d«      }t        ||«       y )NrJ   r]   r  r  r  r–   rg   rµ   ri   ù      @        )r´   ù      @       @rw  )rw  y      @      ð?y      @      Ày      ;@      ð¿y      G@       @)r   r   )rU   r  rÚ   r¸   r¹   s        rY   rº   zTestConvolve2d.test_valid_mode2’  s­   € âš	Ð"ˆÚ"Ò$:Ð;ˆÚ*Ð+ˆä˜˜A˜wÓ'ˆÜ˜3 Ô)ä˜˜A˜wÓ'ˆÜ˜3 Ô)à�fÐ ¨Ð/Ð0ˆÚ%Ò'?Ð@ˆØ˜hÐ'Ð(ˆä˜˜A˜wÓ'ˆÜ˜3 Ô)ô ˜˜A˜wÓ'ˆÜ˜3 Õ)r[   c           
      ót  — t        j                  d«      }t        j                  g d¢«      }dD ]‡  }t        t        j                  |||¬«      t        j                  |||¬«      «       t        t        j                  t        j                  |g|g|¬«      «      t        j                  |||¬«      «       Œ‰ y )NrH   ©gš™™™™™	@gffffffö?rF   ©r•   r–   r_   r`   )rv   r   r   r   r   r   Úsqueezer   ©rU   rV   rW   ra   s       rY   Útest_consistency_convolve_funcsz.TestConvolve2d.test_consistency_convolve_funcs©  s�   € ä�I‰I�a‹LˆÜ�H‰H’]Ó#ˆØ-ò 	2ˆDÜ¤§¡¨A¨q°tÔ <Ü &§¡°°1¸4Ô @ôBä¤§
¡
Ü×!Ñ! 1 #¨ s°Ô6ó!8ä—‘  1¨4Ô0õ2ñ	2r[   c                 ó˜   — t        t        t        dd«       t        t        t        dgdg«       t        t        t        dgggdggg«       y )NrF   rG   r@  r  s    rY   Útest_invalid_dimsz TestConvolve2d.test_invalid_dims´  s<   € Ü”j¤*¨a°Ô3Ü”j¤*¨q¨c°A°3Ô7Ü”j¤*°°¨u¨g¸!¸¸°wÕ?r[   z!Can't create large array for testc                 ó  — ddt        j                  «       j                  z  z  }t        j                  d|z  dz  t        j                  «       j                  z  dz  «       t        j
                  d|z  t         j                  ¬«      }d|d d d…<   t         j                  j                  j                  ||dfd¬	«      }t        j                  |ddgg«      }t        j                  |dkD  «      }|d
   j                  d
k(  sJ ‚y )Nl        éè  rL   éé  g    €„.Ar  rK   )iH  r‘   )ÚshapeÚstridesr   )rv   rÍ   Úitemsizer=   Úcheck_free_memoryÚzerosÚlibÚstride_tricksÚ
as_stridedr   r   ÚwhererÙ   )rU   rì   rV   ÚcountÚfailss        rY   Útest_large_arrayzTestConvolve2d.test_large_array¹  s×   € ð �dœRŸX™X›Z×0Ñ0Ñ0Ñ1ˆÜ×$Ñ$ Q¨¡U¨T¡\´B·H±H³J×4GÑ4GÑ%GÈ#Ñ%MÔNô �H‰H�T˜A‘X¤R§X¡XÔ.ˆØˆ‰#ˆAˆ#‰Ü�F‰F× Ñ ×+Ñ+¨A°a¸°YÈ	Ð+ÓRˆä×!Ñ! ! q¨! f XÓ.ˆÜ—‘˜ ™Ó#ˆØ�Q‰x�}‰} Ò!Ð!Ñ!r[   N)r§   r¨   r©   rÁ   rº   r~  r€  r  r  ÚslowÚxfail_on_32bitr�  rª   r[   rY   rt  rt  ˆ  sN   „ ò!ò*ò.	2ò@ð
 ‡[�[×ÑØ‡[�[×ÑÐ CÓDñ"ó Eó ñ"r[   rt  c                   ó   — e Zd Zej                  j                  dddddgddgg«      d„ «       Zej                  j                  dddgddgg«      d„ «       Zej                  j                  dddddgddgg«      d	„ «       Zej                  j                  dddgddgg«      d
„ «       Z	ej                  j                  dddddgddgddgddgddgddgddgddgg
«      d„ «       Z
ej                  j                  dddgddgddgddgddgddgddgddgg«      d„ «       Zej                  j                  dddddgddgddgddgddgddgddgddgg
«      d„ «       Zej                  j                  dddgddgddgddgddgddgddgddgg«      d„ «       Zej                  j                  dddddgddgg«      d„ «       Zej                  j                  ddddgdgg«      d„ «       Zej                  j                  dddddgddgg«      d„ «       Zej                  j                  dddgg«      d„ «       Zej                  j                  dddddgddgg«      d„ «       Zej                  j                  dddgddgg«      d„ «       Zd„ Zd„ Zd„ Zd„ Zej                  j                  dddddgddgg«      d„ «       Zej                  j                  dddgddgg«      d„ «       Zej                  j                  dddgddgddgddgddgddgddgddgg«      d„ «       Zej                  j6                  ej                  j                  d  e edd!«      «       e ed"d#«      «      z   ej>                  jA                  d$«      jC                  d%d&d'«      jE                  «       z   «      d(„ «       «       Z#ej                  jH                  d)„ «       Z%y)*ÚTestFFTConvolveÚaxesÚ Nr   r“   c                 ó�   — t        g d¢«      }t        g d¢«      }|dk(  rt        ||«      }nt        |||¬«      }t        ||«       y )NrJ   ©rK   rG   rM   rR   ç      "@r•  ©r”  ©r   r   r   ©rU   r”  rV   r¸   r¹   s        rY   Ú	test_realzTestFFTConvolve.test_realÌ  sB   € ä’)ÓˆÜÒ+Ó,ˆà�2Š:Ü˜a Ó#‰Cä˜a ¨Ô.ˆCä! # xÕ0r[   rK   c                 óÌ   — t        g d¢«      }t        g d¢«      }t        j                  |ddg«      }t        j                  |ddg«      }t        |||¬«      }t	        ||«       y )NrJ   r—  rL   rK   r™  ©r   rv   Útiler   r   r›  s        rY   Útest_real_axeszTestFFTConvolve.test_real_axesØ  sW   € ä’)ÓˆÜÒ+Ó,ˆä�G‰G�A˜˜1�vÓˆÜ—7‘7˜8 a¨ VÓ,ˆä˜!˜Q TÔ*ˆÜ! # xÕ0r[   c                 ó�   — t        g d¢«      }t        g d¢«      }|dk(  rt        ||«      }nt        |||¬«      }t        ||«       y )N©rg   ù       @       @y      @      @©rj   y               @y              4@y              8@y              2@r•  r™  rš  r›  s        rY   rn   zTestFFTConvolve.test_complexã  sC   € äÒ*Ó+ˆÜÒDÓEˆà�2Š:Ü˜a Ó#‰Cä˜a ¨Ô.ˆCÜ! # xÕ0r[   c                 óÌ   — t        g d¢«      }t        g d¢«      }t        j                  |ddg«      }t        j                  |ddg«      }t        |||¬«      }t	        ||«       y )Nr¢  r¤  rL   rK   r™  rž  r›  s        rY   Útest_complex_axesz!TestFFTConvolve.test_complex_axesî  sX   € äÒ*Ó+ˆÜÒDÓEˆä�G‰G�A˜˜1�vÓˆÜ—7‘7˜8 a¨ VÓ,ˆä˜!˜Q TÔ*ˆÜ! # xÕ0r[   éþÿÿÿc                 ó¦   — t        g d¢g d¢g«      }t        g d¢g d¢g d¢g«      }|dk(  rt        ||«      }nt        |||¬«      }t        ||«       y )NrJ   r‚   ©rK   rG   rM   rR   r  ©r‘   r.  é8   r   rÀ   ©r„   r/  r²   r  rÀ   r•  r™  rš  r›  s        rY   Útest_2d_real_samez!TestFFTConvolve.test_2d_real_sameù  s]   € ô ’9Úðó ˆäÒ+Ú-Ú.ð0ó 1ˆð �2Š:Ü˜a Ó#‰Cä˜a ¨Ô.ˆCÜ! # xÕ0r[   rL   c                 óâ   — t        g d¢g d¢g«      }t        g d¢g d¢g d¢g«      }t        j                  |g d¢«      }t        j                  |g d¢«      }t        |||¬«      }t	        ||«       y )NrJ   r‚   r©  rª  r¬  ©rL   rK   rK   r™  rž  r›  s        rY   Útest_2d_real_same_axesz&TestFFTConvolve.test_2d_real_same_axes  sj   € ô ’9Úðó ˆäÒ+Ú-Ú.ð0ó 1ˆô �G‰G�A’yÓ!ˆÜ—7‘7˜8¢YÓ/ˆä˜!˜Q TÔ*ˆÜ! # xÕ0r[   c                 ó¦   — t        g d¢g d¢g«      }t        g d¢g d¢g d¢g«      }|dk(  rt        ||«      }nt        |||¬«      }t        ||«       y )N©ù      ð?       @ù      @      @y      @      @©rh   y      @      @y      @      @©y      À      @y      $À      4@y      5À      L@y      2À      S@y      &À      N@©y              $@y              F@y             €]@y             €c@y             €^@©r´  y      $@      4@y      5@      L@y      2@      S@y      &@      N@r•  r™  rš  r›  s        rY   Útest_2d_complex_samez$TestFFTConvolve.test_2d_complex_same%  s^   € ô Ò+Ú+ð-ó .ˆäÚAÚ(Ú<ðó ˆð �2Š:Ü˜a Ó#‰Cä˜a ¨Ô.ˆCä! # xÕ0r[   c                 óâ   — t        g d¢g d¢g«      }t        g d¢g d¢g d¢g«      }t        j                  |g d¢«      }t        j                  |g d¢«      }t        |||¬«      }t	        ||«       y )Nr²  rµ  r¶  r·  r¸  r¯  r™  rž  r›  s        rY   Útest_2d_complex_same_axesz)TestFFTConvolve.test_2d_complex_same_axes?  sk   € ô Ò+Ú+ð-ó .ˆäÚAÚ(Ú<ðó ˆô �G‰G�A’yÓ!ˆÜ—7‘7˜8¢YÓ/ˆä˜!˜Q TÔ*ˆÜ! # xÕ0r[   c                 ó$  — t        g d¢«      }t        g d¢«      }t        g d¢«      }t        g d¢«      }|dk(  rt        ||d«      }nt        ||d|¬«      }t        ||«       |dk(  rt        ||d«      }nt        ||d|¬«      }t        ||«       y )NrJ   ©	rF   rF   rH   rI   r‘   rƒ   r  r   rK   ©ç     €A@ç     €D@ç     €G@©	r˜  g      4@ç      9@r¿  rÀ  rÁ  rU  g      <@rW  r•  r_   r™  rš  ©rU   r”  rV   rW   Ú
expected_1Ú
expected_2r¹   s          rY   Útest_real_same_modez#TestFFTConvolve.test_real_same_modeV  sŠ   € ä’)ÓˆÜÒ-Ó.ˆÜš?Ó+ˆ
ÜÒFÓGˆ
à�2Š:Ü˜a  FÓ+‰Cä˜a  F°Ô6ˆCÜ! # zÔ2à�2Š:Ü˜a  FÓ+‰Cä˜a  F°Ô6ˆCÜ! # zÕ2r[   c                 ó˜  — t        g d¢«      }t        g d¢«      }t        g d¢«      }t        g d¢«      }t        j                  |ddg«      }t        j                  |ddg«      }t        j                  |ddg«      }t        j                  |ddg«      }t        ||d|¬«      }t	        ||«       t        ||d|¬«      }t	        ||«       y )	NrJ   r½  r¾  rÂ  rL   rK   r_   r™  rž  rÄ  s          rY   Útest_real_same_mode_axesz(TestFFTConvolve.test_real_same_mode_axesi  s°   € ä’)ÓˆÜÒ-Ó.ˆÜš?Ó+ˆ
ÜÒFÓGˆ
ä�G‰G�A˜˜1�vÓˆÜ�G‰G�A˜˜1�vÓˆÜ—W‘W˜Z¨!¨Q¨Ó0ˆ
Ü—W‘W˜Z¨!¨Q¨Ó0ˆ
ä˜!˜Q ¨TÔ2ˆÜ! # zÔ2ä˜!˜Q ¨TÔ2ˆÜ! # zÕ2r[   c                 ó
  — t        g d¢«      }t        g d¢«      }t        g d¢«      }|dk(  rt        ||d«      }nt        ||d|¬«      }t        ||«       |dk(  rt        ||d«      }nt        ||d|¬«      }t        ||«       y )N©rF   rL   rK   r½  ©g      8@g      ?@rÀ  rT  g     €H@rÃ  ç      (@r•  r–   r™  rš  ©rU   r”  rV   rW   r¸   r¹   s         rY   Útest_valid_mode_realz$TestFFTConvolve.test_valid_mode_real{  s‚   € ô ’)ÓˆÜÒ-Ó.ˆÜÒ<Ó=ˆà�2Š:Ü˜a  GÓ,‰Cä˜a  G°$Ô7ˆCÜ! # xÔ0à�2Š:Ü˜a  GÓ,‰Cä˜a  G°$Ô7ˆCÜ! # xÕ0r[   c                 ó  — t        g d¢«      }t        g d¢«      }t        g d¢«      }t        j                  |ddg«      }t        j                  |ddg«      }t        j                  |ddg«      }t        ||d|¬«      }t	        ||«       y ©NrË  r½  rÌ  rL   rK   r–   r™  rž  rÎ  s         rY   Útest_valid_mode_real_axesz)TestFFTConvolve.test_valid_mode_real_axesŽ  sz   € ô ’)ÓˆÜÒ-Ó.ˆÜÒ<Ó=ˆä�G‰G�A˜˜1�vÓˆÜ�G‰G�A˜˜1�vÓˆÜ—7‘7˜8 a¨ VÓ,ˆä˜!˜Q ¨dÔ3ˆÜ! # xÕ0r[   c                 ó
  — t        g d¢«      }t        g d¢«      }t        g d¢«      }|dk(  rt        ||d«      }nt        ||d|¬«      }t        ||«       |dk(  rt        ||d«      }nt        ||d|¬«      }t        ||«       y )N©ù      @      ð¿y       @      @r¶   ©rx  y      @      Ày      @        y      @      ð¿y       @        ©y     €F@      (@y      >@      7@y      H@      @@r•  r–   r™  rš  rÎ  s         rY   Útest_valid_mode_complexz'TestFFTConvolve.test_valid_mode_complexœ  s�   € äÒ*Ó+ˆÜÒ:Ó;ˆÜÒ<Ó=ˆà�2Š:Ü˜a  GÓ,‰Cä˜a  G°$Ô7ˆCÜ! # xÔ0à�2Š:Ü˜a  GÓ,‰Cä˜a  G°$Ô7ˆCÜ! # xÕ0r[   c                 óN  — t        g d¢«      }t        g d¢«      }t        g d¢«      }t        j                  |ddg«      }t        j                  |ddg«      }t        j                  |ddg«      }t        ||d|¬«      }t	        ||«       t        ||d|¬«      }t	        ||«       y )NrÔ  rÖ  r×  rL   rK   r–   r™  rž  rÎ  s         rY   Útest_valid_mode_complex_axesz,TestFFTConvolve.test_valid_mode_complex_axes®  s“   € äÒ*Ó+ˆÜÒ:Ó;ˆÜÒ<Ó=ˆä�G‰G�A˜˜1�vÓˆÜ�G‰G�A˜˜1�vÓˆÜ—7‘7˜8 a¨ VÓ,ˆä˜!˜Q ¨dÔ3ˆÜ! # xÔ0ä˜!˜Q ¨dÔ3ˆÜ! # xÕ0r[   c                 ó  — t        g d¢«      }t        g d¢«      }t        g d¢«      }t        j                  |ddg«      }t        j                  |ddg«      }t        j                  |ddg«      }t        ||dd¬«      }t	        ||«       y rÑ  rž  r·   s        rY   Útest_valid_mode_ignore_nonaxesz.TestFFTConvolve.test_valid_mode_ignore_nonaxes¾  sx   € ä’)ÓˆÜÒ-Ó.ˆÜÒ<Ó=ˆä�G‰G�A˜˜1�vÓˆÜ�G‰G�A˜˜1�vÓˆÜ—7‘7˜8 a¨ VÓ,ˆä˜!˜Q ¨aÔ0ˆÜ! # xÕ0r[   c                 óÖ   — t        t        g g «      j                  dk(  «       t        t        ddgg «      j                  dk(  «       t        t        g dg«      j                  dk(  «       y ©Nr   rH   rI   rƒ   )r   r   rÙ   r  s    rY   Ú
test_emptyzTestFFTConvolve.test_emptyË  sV   € ä”˜B Ó#×(Ñ(¨AÑ-Ô.Ü”˜Q ˜F BÓ'×,Ñ,°Ñ1Ô2Ü”˜B  Ó$×)Ñ)¨QÑ.Õ/r[   c                 óf   — t        d«      }t        d«      }t        ||«      }t        |||z  «       y r}   ©r   r   r
   ©rU   rV   rW   r¹   s       rY   rp   zTestFFTConvolve.test_zero_rankÑ  s.   € Ü�$‹KˆÜ�$‹KˆÜ˜!˜QÓˆÜ�S˜!˜a™%Õ r[   c                 ój   — t        dg«      }t        dg«      }t        ||«      }t        |||z  «       y r}   rá  râ  s       rY   r~   z#TestFFTConvolve.test_single_element×  s2   € Ü�4�&‹MˆÜ�4�&‹MˆÜ˜!˜QÓˆÜ�S˜!˜a™%Õ r[   c                 óþ  — t         j                  j                  d«       t         j                  j                  d«      dt         j                  j                  d«      z  z   }t         j                  j                  d«      dt         j                  j                  d«      z  z   }t        j                  ||d«      }|dk(  rt        ||d«      }nt        ||d|¬«      }t        t        j                  ||d¬	«      «       y )
NéÒ  éÑ  r’   é)  r•   r•  r™  ç»½×Ùß|Û=©rß   )rv   rä   ÚseedÚrandr   r   r   ÚallcloserÎ  s         rY   Útest_random_dataz TestFFTConvolve.test_random_dataÝ  s°   € ä
�	‰	�‰�tÔÜ�I‰I�N‰N˜4Ó  2¬¯	©	¯©°tÓ(<Ñ#<Ñ<ˆÜ�I‰I�N‰N˜4Ó  2¬¯	©	¯©°tÓ(<Ñ#<Ñ<ˆÜ—;‘;˜q ! VÓ,ˆà�2Š:Ü˜a  FÓ+‰Cä˜a  F°Ô6ˆCÜ”—‘˜C °Ô6Õ7r[   c                 óh  — t         j                  j                  d«       t         j                  j                  d«      dt         j                  j                  d«      z  z   }t         j                  j                  d«      dt         j                  j                  d«      z  z   }t        j                  ||d«      }t        j
                  |ddg«      }t        j
                  |ddg«      }t        j
                  |ddg«      }t        ||d|¬«      }t        t        j                  ||d	¬
«      «       y )Nrå  ræ  r’   rç  r•   rL   rK   r™  rè  ré  )	rv   rä   rê  rë  r   rŸ  r   r   rì  rÎ  s         rY   Útest_random_data_axesz%TestFFTConvolve.test_random_data_axesê  s×   € ä
�	‰	�‰�tÔÜ�I‰I�N‰N˜4Ó  2¬¯	©	¯©°tÓ(<Ñ#<Ñ<ˆÜ�I‰I�N‰N˜4Ó  2¬¯	©	¯©°tÓ(<Ñ#<Ñ<ˆÜ—;‘;˜q ! VÓ,ˆä�G‰G�A˜˜1�vÓˆÜ�G‰G�A˜˜1�vÓˆÜ—7‘7˜8 a¨ VÓ,ˆä˜!˜Q ¨TÔ2ˆÜ”—‘˜C °Ô6Õ7r[   rG   éüÿÿÿc                 ó`  — d\  }}t         j                  j                  d«       t        j                  j                  |Ž dt        j                  j                  |Ž z  z   }t        j                  j                  |Ž dt        j                  j                  |Ž z  z   }t	        ||d«      }|d d …d d …d d d f   }|d d …d d …d d d f   }|d d …d d …d d d f   }t        j
                  |j                  dd«      dd«      }t        j
                  |j                  dd«      dd«      }t        j
                  |j                  dd«      dd«      }t        j                  |g d	¢«      }t        j                  |g d
¢«      }t        j                  |g d¢«      }t        ||d|¬«      }t        ||dd¬«       y )N))é{   rN   )é„   é   rå  r’   r•   r   rL   rK   rG   )rL   rK   rF   rK   rK   )rL   rK   rK   rG   rK   )rL   rK   rF   rG   rK   r™  rè  rÞ   )
rv   rä   rê  rë  r   ÚmoveaxisÚswapaxesrŸ  r   r   )rU   r”  Úa_shaperz   rV   rW   r¸   r¹   s           rY   Útest_random_data_multidim_axesz.TestFFTConvolve.test_random_data_multidim_axesø  sf  € ð 0Ñˆ�Ü
�	‰	�‰�tÔÜ�I‰I�N‰N˜GÐ$ r¬B¯I©I¯N©N¸GÐ,DÑ'DÑDˆÜ�I‰I�N‰N˜GÐ$ r¬B¯I©I¯N©N¸GÐ,DÑ'DÑDˆÜ˜a  FÓ+ˆàŠa’�D˜$ Ð$Ñ%ˆØŠa’�D˜$ Ð$Ñ%ˆØšAšq $¨¨dÐ2Ñ3ˆä�K‰K˜Ÿ
™
 1 aÓ(¨!¨QÓ/ˆÜ�K‰K˜Ÿ
™
 1 aÓ(¨!¨QÓ/ˆÜ—;‘;˜x×0Ñ0°°AÓ6¸¸1Ó=ˆô �G‰G�A’Ó'ˆÜ�G‰G�A’Ó'ˆÜ—7‘7˜8¢_Ó5ˆä˜!˜Q ¨TÔ2ˆÜ˜˜X¨E¸Ö>r[   rì   r  r‚  iÜ  rå  rƒ  é'  rH   c                 ó¬  — t         j                  j                  |«      dt         j                  j                  |«      z  z   }t         j                  j                  |«      dt         j                  j                  |«      z  z   }t        j                  ||d«      }t	        ||d«      }t        ||d¬«       t	        ||ddg¬«      }t        ||d¬«       y )Nr’   r•   rè  ©rà   r   r™  )rv   rä   rë  r   r   r   )rU   rì   rV   rW   r¸   r¹   s         rY   Útest_many_sizeszTestFFTConvolve.test_many_sizes  s    € ô �I‰I�N‰N˜1Ó ¤R§Y¡Y§^¡^°AÓ%6Ñ 6Ñ6ˆÜ�I‰I�N‰N˜1Ó ¤R§Y¡Y§^¡^°AÓ%6Ñ 6Ñ6ˆÜ—;‘;˜q ! VÓ,ˆä˜!˜Q Ó'ˆÜ˜˜X¨EÕ2ä˜!˜Q ¨a¨SÔ1ˆÜ˜˜X¨EÖ2r[   c                 ó~  — d}t         j                  j                  d«      }|j                  |«      }t         j                  t         j
                  fD ]\  }||d<   t        j                  dd«      }d}t        j                  t        |¬«      5  t        j                  ||dd	¬
«       d d d «       Œ^ y # 1 sw Y   ŒixY w)Nr‚  l   [<zn( r  éÈ   çš™™™™™É?z4Use of fft convolution.*|invalid value encountered.*r  r_   r   rŸ   )rv   rä   Údefault_rngÚstandard_normalÚnanÚinfr   Úfirwinr  ÚwarnsÚRuntimeWarningr   )rU   rì   rñ   Úsig_nanÚvalÚcoeffsr<  s          rY   Útest_fft_nanzTestFFTConvolve.test_fft_nan(  s¦   € àˆÜ�i‰i×#Ñ# KÓ0ˆØ×%Ñ% aÓ(ˆä—F‘FœBŸF™FÐ#ò 	LˆCØˆG�C‰LÜ—]‘] 3¨Ó,ˆFàHˆCÜ—‘œn°CÔ8ñ LÜ—‘ ¨°fÀUÕK÷Lð Lñ	L÷
Lð Lús   ÂB3Â3B<	)&r§   r¨   r©   r  r  rr  rœ  r   rn   r¦  r­  r°  r¹  r»  rÇ  rÉ  rÏ  rÒ  rØ  rÚ  rÜ  rß  rp   r~   rí  rï  rø  r�  Úlistrx   rv   rä   rå   ÚrandintÚtolistrü  r  r
  rª   r[   rY   r“  r“  Ê  s   „ à‡[�[×Ñ˜V b¨$°°A°3¸¸R¸DÐ%AÓBñ	1ó Cð	1ð ‡[�[×Ñ˜V a¨!¨¨b°2°$Ð%7Ó8ñ1ó 9ð1ð ‡[�[×Ñ˜V b¨$°°A°3¸¸R¸DÐ%AÓBñ1ó Cð1ð ‡[�[×Ñ˜V a¨!¨¨b°2°$Ð%7Ó8ñ1ó 9ð1ð ‡[�[×Ñ˜V bØ&*Ø'(¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð	&0ó 	1ñ1ó	1ð1ð ‡[�[×Ñ˜V q¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð&0ó 1ñ1ó1ð1ð ‡[�[×Ñ˜V bØ&*Ø'(¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð	&0ó 	1ñ1ó	1ð1ð  ‡[�[×Ñ˜V q¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð&0ó 1ñ1ó1ð1ð ‡[�[×Ñ˜V b¨$°°A°3¸¸R¸DÐ%AÓBñ3ó Cð3ð$ ‡[�[×Ñ˜V a¨¨a¨S°2°$Ð%7Ó8ñ3ó 9ð3ð" ‡[�[×Ñ˜V b¨$°°A°3¸¸R¸DÐ%AÓBñ1ó Cð1ð$ ‡[�[×Ñ˜V a¨!¨ XÓ.ñ1ó /ð1ð ‡[�[×Ñ˜V b¨$°°A°3¸¸R¸DÐ%AÓBñ1ó Cð1ð" ‡[�[×Ñ˜V a¨!¨¨b°2°$Ð%7Ó8ñ1ó 9ð1ò1ò0ò!ò!ð ‡[�[×Ñ˜V b¨$°°A°3¸¸R¸DÐ%AÓBñ
8ó Cð
8ð ‡[�[×Ñ˜V a¨!¨¨b°2°$Ð%7Ó8ñ8ó 9ð8ð ‡[�[×Ñ˜V q¨! fØ'(¨! fØ'(¨" gØ')¨1 gØ')¨1 gØ'(¨" gØ')¨2 hØ')¨2 hð&0ó 1ñ?ó1ð?ð. ‡[�[×ÑØ‡[�[×ÑØÙ‰U�1�c‹]ÓÙ‰U�4˜ÓÓñ	 à
�	‰	×Ñ˜dÓ#×+Ñ+¨D°%¸Ó;×BÑBÓDñ	EóFñ
	3óFó ð	3ð ‡[�[×ÑñLó ñLr[   r“  c                  ó   — t        d«      ‚)NzFell back to fftconvolve)ÚRuntimeError)rð   rø   s     rY   Úfftconvolve_errr  6  s   € Ü
Ð1Ó
2Ð2r[   c                 ót   — t        | d¬«      D ��cg c]  \  }}t        ||z
  «      dkD  r||f‘Œ c}}S c c}}w )NrL   ©ÚrepeatrF   )r   Úabs©ÚsizesrV   rW   s      rY   Úgen_oa_shapesr  :  s?   € Ü& u°QÔ7÷ ‘t�q˜!Ü�1�q‘5‹z˜AŠ~ð �ŠFó ð ùó s   ‘4c                 ó8  — t        | «      }t        | «      }t        ||«      D ��cg c]
  \  }}||z   ‘Œ }}}g d¢}t        ||«      D ��cg c]<  \  }}|dk7  s,|d   |d   kD  r|d   |d   kD  s|d   |d   k  r|d   |d   k  r||fz   ‘Œ> c}}S c c}}w c c}}w )Nr{  r–   r   rK   rL   rF   )r  Úzipr   )	r  Úshapes0Úshapes1Úishapes0Úishapes1ÚshapesÚmodesÚishapesÚimodes	            rY   Úgen_oa_shapes_2dr"  ?  sÇ   € Ü˜EÓ"€GÜ˜EÓ"€Gä�'˜7Ó#÷%Ñ$6 H¨hˆh�xÓð %€Fñ %ò &€EÜ3:¸6À5Ó3I÷ C¡ ¨%Ø˜ÒØ�Q‰Z˜' !™*Ò$¨°©°g¸a±jÒ)@Ø�Q‰Z˜' !™*Ò$¨°©°g¸a±jÒ)@ð �U�HÓó Cð Cùó	%ùóCs   ¦BÁABc                 ó\   — t        | d¬«      D ��cg c]  \  }}||k\  r||f‘Œ c}}S c c}}w )NrL   r  r   r  s      rY   Úgen_oa_shapes_eqr$  L  s7   € Ü& u°QÔ7÷ ‘t�q˜!Ø�AŠvð �ŠFó ð ùó s   ‘(c                   óX  — e Zd Zej                  j                  «       ej                  j                  d e e e	d«      «       e e	ddd«      «      z   «      «      d„ «       «       Z
ej                  j                  d eg d¢«      «      ej                  j                  ddd	g«      ej                  j                  d
g d¢«      d„ «       «       «       Zej                  j                  dddg«      ej                  j                  d eg d¢«      «      ej                  j                  dddg«      ej                  j                  dddg«      ej                  j                  ddd	g«      ej                  j                  d
g d¢«      d„ «       «       «       «       «       «       Zej                  j                  d eg d¢«      «      ej                  j                  ddd	g«      d„ «       «       Zej                  j                  dddgddgddgg«      ej                  j                  d eg d¢«      «      ej                  j                  dddg«      ej                  j                  dddg«      ej                  j                  ddd	g«      d„ «       «       «       «       «       Zd„ Zd„ Zd„ Zy)ÚTestOAConvolvezshape_a_0, shape_b_0r  r‚  rQ   c                 óÈ   — t         j                  j                  |«      }t         j                  j                  |«      }t        ||«      }t	        ||«      }t        ||«       y ©N)rv   rä   rë  r   r   r   )rU   Ú	shape_a_0Ú	shape_b_0rV   rW   r¸   r¹   s          rY   Útest_real_manylensz!TestOAConvolve.test_real_manylensR  sJ   € ô �I‰I�N‰N˜9Ó%ˆÜ�I‰I�N‰N˜9Ó%ˆä˜q !Ó$ˆÜ˜˜AÓˆä! # xÕ0r[   )rü   é/   rI   rG   rK   Ú
is_complexTFra   r{  c                 ó²  — t         j                  j                  |«      }t         j                  j                  |«      }|rJ|dt         j                  j                  |«      z  z   }|dt         j                  j                  |«      z  z   }t        |||¬«      }|j	                  t
        j                  dt        «       t        |||¬«      }	t        |	|«       y ©Nr’   r`   r   ©
rv   rä   rë  r   Úsetattrr   Ú_signaltoolsr  r   r   )
rU   r)  r*  r-  ra   ÚmonkeypatchrV   rW   r¸   r¹   s
             rY   Útest_1d_noaxeszTestOAConvolve.test_1d_noaxes`  s¤   € ô �I‰I�N‰N˜9Ó%ˆÜ�I‰I�N‰N˜9Ó%ˆÙØ�B”r—y‘y—~‘~ iÓ0Ñ0Ñ0ˆAØ�B”r—y‘y—~‘~ iÓ0Ñ0Ñ0ˆAä˜q !¨$Ô/ˆà×ÑœF×/Ñ/°Ü+ô	-ä˜˜A DÔ)ˆä! # xÕ0r[   r”  r   rK   )rü   r,  rI   rG   Úshape_a_extrarF   Úshape_b_extrac	                 óÊ  — |gdz  }	|gdz  }
||	|<   ||
|<   t        j                  j                  |	Ž }t        j                  j                  |
Ž }|rD|dt        j                  j                  |	Ž z  z   }|dt        j                  j                  |
Ž z  z   }t        ||||¬«      }|j	                  t
        j                  dt        «       t        ||||¬«      }t        ||«       y )NrL   r’   ©ra   r”  r   r0  )rU   r”  r)  r*  r5  r6  r-  ra   r3  Úax_aÚax_brV   rW   r¸   r¹   s                  rY   Útest_1d_axeszTestOAConvolve.test_1d_axest  sÒ   € ð ˆ˜qÑ ˆØˆ˜qÑ ˆØˆˆT‰
ØˆˆT‰
ä�I‰I�N‰N˜DÐ!ˆÜ�I‰I�N‰N˜DÐ!ˆÙØ�B”r—y‘y—~‘~ tÐ,Ñ,Ñ,ˆAØ�B”r—y‘y—~‘~ tÐ,Ñ,Ñ,ˆAä˜q !¨$°TÔ:ˆà×ÑœF×/Ñ/°Ü+ô	-ä˜˜A D¨tÔ4ˆä! # xÕ0r[   z0shape_a_0, shape_b_0, shape_a_1, shape_b_1, modec                 óº  — t         j                  j                  ||«      }t         j                  j                  ||«      }	|rL|dt         j                  j                  ||«      z  z   }|	dt         j                  j                  ||«      z  z   }	t        ||	|¬«      }
|j	                  t
        j                  dt        «       t        ||	|¬«      }t        ||
«       y r/  r0  )rU   r)  r*  Ú	shape_a_1Ú	shape_b_1ra   r-  r3  rV   rW   r¸   r¹   s               rY   Útest_2d_noaxeszTestOAConvolve.test_2d_noaxes‘  s¬   € ô �I‰I�N‰N˜9 iÓ0ˆÜ�I‰I�N‰N˜9 iÓ0ˆÙØ�B”r—y‘y—~‘~ i°Ó;Ñ;Ñ;ˆAØ�B”r—y‘y—~‘~ i°Ó;Ñ;Ñ;ˆAä˜q !¨$Ô/ˆà×ÑœF×/Ñ/°Ü+ô	-ä˜˜A DÔ)ˆä! # xÕ0r[   rL   c                 óö  — |gdz  }|gdz  }|||d   <   |||d   <   |||d   <   |||d   <   t        j                  j                  |Ž }t        j                  j                  |Ž }|	rD|dt        j                  j                  |Ž z  z   }|dt        j                  j                  |Ž z  z   }t        ||||¬«      }|
j	                  t
        j                  dt        «       t        ||||¬«      }t        ||«       y )NrF   r   rK   r’   r8  r   r0  )rU   r”  r)  r*  r=  r>  ra   r5  r6  r-  r3  r9  r:  rV   rW   r¸   r¹   s                    rY   Útest_2d_axeszTestOAConvolve.test_2d_axes¦  sô   € ð ˆ˜qÑ ˆØˆ˜qÑ ˆØ!ˆˆT�!‰W‰Ø!ˆˆT�!‰W‰Ø!ˆˆT�!‰W‰Ø!ˆˆT�!‰W‰ä�I‰I�N‰N˜DÐ!ˆÜ�I‰I�N‰N˜DÐ!ˆÙØ�B”r—y‘y—~‘~ tÐ,Ñ,Ñ,ˆAØ�B”r—y‘y—~‘~ tÐ,Ñ,Ñ,ˆAä˜q !¨$°TÔ:ˆà×ÑœF×/Ñ/°Ü+ô	-ä˜˜A D¨tÔ4ˆä! # xÕ0r[   c                 óÖ   — t        t        g g «      j                  dk(  «       t        t        ddgg «      j                  dk(  «       t        t        g dg«      j                  dk(  «       y rÞ  )r   r   rÙ   r  s    rY   rß  zTestOAConvolve.test_emptyÆ  sV   € ä”
˜2˜rÓ"×'Ñ'¨1Ñ,Ô-Ü”
˜A˜q˜6 2Ó&×+Ñ+¨qÑ0Ô1Ü”
˜2 ˜sÓ#×(Ñ(¨AÑ-Õ.r[   c                 óf   — t        d«      }t        d«      }t        ||«      }t        |||z  «       y r}   ©r   r   r
   râ  s       rY   rp   zTestOAConvolve.test_zero_rankÌ  s.   € Ü�$‹KˆÜ�$‹KˆÜ˜˜AÓˆÜ�S˜!˜a™%Õ r[   c                 ój   — t        dg«      }t        dg«      }t        ||«      }t        |||z  «       y r}   rD  râ  s       rY   r~   z"TestOAConvolve.test_single_elementÒ  s2   € Ü�4�&‹MˆÜ�4�&‹MˆÜ˜˜AÓˆÜ�S˜!˜a™%Õ r[   N)r§   r¨   r©   r  r  r�  rr  r$  r  rx   r+  r  r4  r;  r"  r?  rA  rß  rp   r~   rª   r[   rY   r&  r&  Q  s�  „ Ø‡[�[×ÑÓØ‡[�[×ÑÐ3Ù-©d±5¸³:Ó.>Ù.2±5¸¸dÀBÓ3GÓ.Hñ/Ió Jóñ1ó	ó ð
1ð ‡[�[×ÑÐ3Ù*Ò+<Ó=ó?à‡[�[×Ñ˜\¨D°%¨=Ó9Ø‡[�[×Ñ˜VÒ%>Ó?ñ1ó @ó :ó?ð1ð  ‡[�[×Ñ˜V a¨ VÓ,Ø‡[�[×ÑÐ3Ù*ª>Ó:ó<à‡[�[×Ñ˜_¨q°!¨fÓ5Ø‡[�[×Ñ˜_¨q°!¨fÓ5Ø‡[�[×Ñ˜\¨D°%¨=Ó9Ø‡[�[×Ñ˜VÒ%>Ó?ñ1ó @ó :ó 6ó 6ó<ó -ð1ð, ‡[�[×Ñð :á-ªnÓ=ó?ð ‡[�[×Ñ˜\¨D°%¨=Ó9ñ1ó :ó?ð1ð" ‡[�[×Ñ˜V q¨! f¨q°!¨f°q¸!°fÐ%=Ó>Ø‡[�[×Ñð :á-ªnÓ=ó?ð ‡[�[×Ñ˜_¨q°!¨fÓ5Ø‡[�[×Ñ˜_¨q°!¨fÓ5Ø‡[�[×Ñ˜\¨D°%¨=Ó9ñ1ó :ó 6ó 6ó?ó ?ð1ò2/ò!ó!r[   r&  c                   ó2  — e Zd Zej                  j                  deeg«      d„ «       Zej                  j                  deeg«      d„ «       Z	ej                  j                  ddgdfddgfdgdggfg«      ej                  j                  deeg«      d„ «       «       Z
ej                  j                  deeg«      d	„ «       Zej                  j                  d
«      ej                  j                  dej                  ej                  g«      d„ «       «       Zy)ÚTestAllFreqConvolvesÚconvapproachc                 óú   — t        j                  dd«      j                  d«      }t        j                  dd«      j                  d«      }t        t        d¬«      5   |||d	¬
«       d d d «       y # 1 sw Y   y xY w)NrK   rƒ   rÄ   rÅ   r   rÆ   zOFor 'valid' mode, one must be at least as large as the other in every dimensionr  r–   r`   )rv   r   rw   r£   r¤   ©rU   rH  rV   rW   s       rY   rÇ   z(TestAllFreqConvolves.test_invalid_shapesÛ  sm   € ô �I‰I�a˜‹O×#Ñ# FÓ+ˆÜ�I‰I�b˜!Ó×$Ñ$ VÓ,ˆÜœ:ð"FôGñ 	-ñ ˜˜A GÕ,÷	-÷ 	-ñ 	-ús   ÁA1Á1A:c                 óÆ   — t        j                  g d¢«      }t        j                  g d¢«      }t        t        d¬«      5   |||ddg¬«       d d d «       y # 1 sw Y   y xY w)N)rH   rI   rL   rK   )rH   rI   rF   rK   zVincompatible shapes for in1 and in2: \(5L?, 6L?, 2L?, 1L?\) and \(5L?, 6L?, 3L?, 1L?\)r  r   rK   r™  )rv   rˆ  r£   r¤   rJ  s       rY   Útest_invalid_shapes_axesz-TestAllFreqConvolves.test_invalid_shapes_axeså  sV   € ô �H‰H’\Ó"ˆÜ�H‰H’\Ó"ˆÜœ:ð"6ô7ñ 	,ñ ˜˜A Q¨ FÕ+÷		,÷ 	,ñ 	,ús   Á AÁA za,brK   rL   rF   c                 ób   — t        t        d¬«      5   |||«       d d d «       y # 1 sw Y   y xY w)Nz/in1 and in2 should have the same dimensionalityr  ©r£   r¤   )rU   rV   rW   rH  s       rY   r  z)TestAllFreqConvolves.test_mismatched_dimsð  s4   € ô œ:ð"-ô.ñ 	ñ ˜˜AÔ÷	÷ 	ñ 	ús   ’
%¥.c                 óè  — t        t        d¬«      5   |dgdgd¬«       d d d «       t        t        d¬«      5   |dgdgg ¬«       d d d «       t        t        d	¬«      5   |dgdgddgd
dgg¬«       d d d «       t        t        d	¬«      5   |dgdgg d¢¬«       d d d «       t        t        d¬«      5   |dgdgdg¬«       d d d «       t        t        d¬«      5   |dgdgdg¬«       d d d «       t        t        d¬«      5   |dgdgddg¬«       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒæxY w# 1 sw Y   ŒÅxY w# 1 sw Y   Œ¨xY w# 1 sw Y   ŒŒxY w# 1 sw Y   ŒpxY w# 1 sw Y   y xY w)Nz4acceptable mode flags are 'valid', 'same', or 'full'r  rK   rL   Úchipsr`   z#when provided, axes cannot be emptyr™  z-axes must be a scalar or iterable of integersrF   rG   )ç      ð?rW  rY  rZ  z$axes exceeds dimensionality of inputr§  zall axes must be uniquer   rN  )rU   rH  s     rY   Útest_invalid_flagsz'TestAllFreqConvolves.test_invalid_flagsü  s”  € ô œ:ð"0ô1ñ 	1ñ ˜!˜˜q˜c¨Õ0÷	1ô
 œ:Ø!FôHñ 	,á˜!˜˜q˜c¨Õ+÷	,ô œ:ð .2ô 3ñ 	:á˜!˜˜q˜c¨!¨Q¨°!°Q°Ð(8Õ9÷	:ô œ:ð .2ô 3ñ 	:á˜!˜˜q˜cÒ(8Õ9÷	:ô œ:Ø!GôIñ 	-á˜!˜˜q˜c¨¨Õ,÷	-ô œ:Ø!GôIñ 	.á˜!˜˜q˜c¨¨Õ-÷	.ô œ:Ø!:ô<ñ 	0á˜!˜˜q˜c¨¨A¨Õ/÷	0ð 	0÷3	1ñ 	1ú÷
	,ð 	,ú÷	:ð 	:ú÷	:ð 	:ú÷	-ð 	-ú÷	.ð 	.ú÷	0ð 	0úsR   ’D¹D,Á D8ÂEÂ6EÃEÄE(ÄD)Ä,D5Ä8EÅEÅEÅE%Å(E1úignore::DeprecationWarningrè   c                 ón  — t         j                  j                  d«      j                  |«      }t         j                  j                  d«      j                  |«      }t        j                   |«       «      r
|dz  }|dz  }t	        ||«      }t        |t        ||d¬«      «       |j                  |k(  sJ ‚y )N)rr   rr   )rG   rG   y        š™™™™™¹?rs   rt   )rv   rä   rê   Úiscomplexobjr   r   r   rè   )rU   rè   rk   rl   Úress        rY   Útest_longdtype_inputz)TestAllFreqConvolves.test_longdtype_input  s“   € ô �I‰I×Ñ˜XÓ&×-Ñ-¨eÓ4ˆÜ�I‰I×Ñ˜VÓ$×+Ñ+¨EÓ2ˆÜ�?‰?™5›7Ô#Ø�‰HˆAØ�‰HˆAä˜!˜QÓˆÜ˜œX a¨°8Ô<Ô=Ø�y‰y˜EÒ!Ð!Ñ!r[   N)r§   r¨   r©   r  r  rr  r   r   rÇ   rL  r  rR  Úfilterwarningsrv   Ú
longdoubleÚclongdoublerW  rª   r[   rY   rG  rG  Ù  s>  „ à‡[�[×Ñ˜^Ø)¨:Ð6ó8ñ-ó8ð-ð ‡[�[×Ñ˜^Ø)¨:Ð6ó8ñ,ó8ð,ð ‡[�[×Ñ˜UØ !˜s A˜hØ  1 #˜hØ !˜s a S E˜lð,ó-ð ‡[�[×Ñ˜^Ø)¨:Ð6ó8ñó8ó	-ðð ‡[�[×Ñ˜^Ø)¨:Ð6ó8ñ0ó8ð0ð< ‡[�[×ÑÐ <Ó=Ø‡[�[×Ñ˜W r§}¡}°b·n±nÐ&EÓFñ	"ó Gó >ñ	"r[   rG  c                   óð  — e Zd Zg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g
Zg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
ZddgZd„ Zej                  j                  de
j                  e
j                  e
j                  e
j                  eee
j"                  e
j"                  e
j$                  e
j&                  g
«      d„ «       Zej                  j                  de
j*                  e
j,                  e
j.                  e
j0                  e
j2                  e
j4                  ddg«      d„ «       Zd„ Zd„ Zej                  j                  de
j                  e
j$                  e
j&                  g«      d„ «       Zy )!ÚTestMedFilt)
rü   rü   rü   rü   rü   rM  é   rr   r³   r1  )
rü   rü   rü   rü   rü   r   éH   éM   rE  rJ  )
rü   rü   rü   rü   rü   r1  r,  é   r0  r_  )
rü   rü   rü   rü   rü   r×   é   é   é_   é#   )
rü   rü   rü   rü   rü   r1  rb   r  r[  rJ  )
r°   éa   rO   rE  r±   r_  r½   rˆ   éG   r×   )
r0  rÿ   rI  rb  rE  rP   r`  rE  r-  rK  )
rF   é!   rÿ   r2  rK   r±   rD  é7   rR   éS   )
rƒ   rô  r1  r°   r  r,  r-  é+   r½   r.  )
rP   r½   éX   rƒ   é'   rG   rM  r0  r¿   r½   )
r   rü   rü   rü   r×   ra  ra  r]  rr   r   )
r   rü   rü   rü   rü   r×   r`  r[  rb  r   )
rü   rü   rü   rü   rü   r,  rb   rb   r1  rd  )
rü   rü   rü   rü   rü   rü   r×   r,  r0  r×   )
rü   rü   rü   rü   rü   rü   r1  rh  r0  rd  )
rg  rü   rü   rü   rü   r,  r1  rj  rh  r.  )
rP   rü   rü   rü   rü   r,  r1  r¿   rh  r.  )
rƒ   r1  rü   rü   r,  r1  r1  rj  r¿   r[  )
r   rP   rg  rl  rP   rP   rj  rj  rj  r   )
r   rƒ   rô  rƒ   rG   rG   r`  r`  r-  r   rƒ   rF   c                 ó   — t        j                  | j                  | j                  «      }t        j                  t        j                  | j                  t        «      | j                  «      }t        || j                  «       t        ||«       y r(  )
r   ÚmedfiltÚINÚKERNEL_SIZEÚ	medfilt2drv   r   rh  r   ÚOUT)rU   rŽ   r  s      rY   rZ   zTestMedFilt.test_basicD  s[   € Ü�N‰N˜4Ÿ7™7 D×$4Ñ$4Ó5ˆÜ×ÑœRŸX™X d§g¡g¬uÓ5°t×7GÑ7GÓHˆÜ˜1˜dŸh™hÔ'Ü˜1˜aÕ r[   rè   c                 óê   — t        j                  | j                  |¬«      }t        t	        j
                  |«      j                  |«       t        t	        j                  |«      j                  |«       y )Nr  )rv   r   ro  r
   r   rn  rè   rq  ©rU   rè   Úin_typeds      rY   Ú
test_typeszTestMedFilt.test_typesJ  sL   € ô
 —8‘8˜DŸG™G¨5Ô1ˆÜ”V—^‘^ HÓ-×3Ñ3°UÔ;Ü”V×%Ñ% hÓ/×5Ñ5°uÕ=r[   Úfloat96Úfloat128c                 óò  — |dv rHt        j                  t         j                  «      j                  |k7  rt	        j
                  d|› �«       t        j                  | j                  |¬«      }t	        j                  t        d¬«      5  t        j                  |«       d d d «       t	        j                  t        d¬«      5  t        j                  |«       d d d «       y # 1 sw Y   ŒCxY w# 1 sw Y   y xY w)N)rw  rx  zPlatform does not support r  znot supportedr  )rv   ÚfinforY  rè   r  Úskipr   ro  r	   r¤   r   rn  rq  rt  s      rY   Útest_invalid_dtypeszTestMedFilt.test_invalid_dtypesS  s·   € ð Ð,Ñ,Ü—H‘HœRŸ]™]Ó+×1Ñ1°UÒ:Ü�K‰KÐ4°U°GÐ<Ô=ä—8‘8˜DŸG™G¨5Ô1ˆÜ�]‰]œ:¨_Ô=ñ 	%Ü�N‰N˜8Ô$÷	%ô �]‰]œ:¨_Ô=ñ 	'Ü×Ñ˜XÔ&÷	'ð 	'÷	%ð 	%ú÷	'ð 	'ús   Â	C!ÃC-Ã!C*Ã-C6c                 ó~   — d}t        t        |¬«      5  t        j                  d «       d d d «       y # 1 sw Y   y xY w)Nz(dtype=object is not supported by medfiltr  )r£   r¤   r   rn  )rU   r<  s     rY   Ú	test_nonezTestMedFilt.test_noned  s2   € à8ˆÜœ:¨SÔ1ñ 	!Ü�N‰N˜4Ô ÷	!÷ 	!ñ 	!ús   ”3³<c                 óª   — t        j                  dt         j                  ¬«      }|dd }d|_        t	        t        j                  |d«      dk(  «       y )NrM   r  rH   rI   r„   rK   ç      @)rv   r   rÔ   r…  r   r   rn  )rU   ÚdummyrV   s      rY   Útest_odd_strideszTestMedFilt.test_odd_stridesj  sB   € ô —	‘	˜"¤B§J¡JÔ/ˆØ�!�AˆJˆØˆŒ	Ü”—‘˜q !Ó$¨Ñ*Õ+r[   c                 ó¦  ‡ ‡‡‡‡‡— t        j                  ‰ j                  |¬«      Št        j                  ‰ j                  |¬«      }‰j                  |j                  k(  sJ ‚|j                  d   dz  Š|j                  d   dz  Š‰ j
                  d   dz  dz   Š‰ j
                  d   dz  dz   Šˆˆˆˆˆˆ fd„}t        j                  |«      }t        d¬«      5 }h d£}|D �ch c]  }|j                  ||«      ’Œ }}t        |«      D ]  }	|	j                  «       \  }
}}|
|||f<   Œ 	 d d d «       t        ||«       y c c}w # 1 sw Y   ŒxY w)	Nr  r   rL   rK   c                 óÄ  •— | \  }}|dk(  r)t        d‰‰z   «      }t        d‰ «      }t        d‰«      }n't        ‰‰z
  d «      }t        ‰d «      }t        ‰d «      }|dk(  r)t        d‰‰z   «      }t        d‰ «      }t        d‰«      }n't        ‰‰z
  d «      }t        ‰d «      }t        ‰d «      }‰||f   }	t        j                  |	‰j                  «      }
|
||f   ||fS ©Nr   )Úslicer   rq  rp  )ÚchunkÚMÚNÚMinÚMselÚMoutÚNinÚNselÚNoutÚ
chunk_dataÚmedÚM1ÚN1ru  ÚoffMÚoffNrU   s              €€€€€€rY   Úapplyz2TestMedFilt.test_medfilt2d_parallel.<locals>.applyƒ  s÷   ø€ ð ‰DˆAˆqØ�AŠvÜ˜A˜r D™yÓ)�Ü˜Q  “�Ü˜Q “|‘ä˜B ™I tÓ,�Ü˜T 4Ó(�Ü˜R “�Ø�AŠvÜ˜A˜r D™yÓ)�Ü˜Q  “�Ü˜Q “|‘ä˜B ™I tÓ,�Ü˜T 4Ó(�Ü˜R “�ð " # s (Ñ+ˆJÜ×"Ñ" :¨t×/?Ñ/?Ó@ˆCØ�t˜T�z‘? D¨$Ð.Ð.r[   rG   )Úmax_workers>   ©rK   r   ©r   r   ©r   rK   ©rK   rK   )rv   r   ro  rr  r„  rp  Ú
zeros_liker   Úsubmitr   ra  r   )rU   rè   r¸   r–  ÚoutputÚpoolÚchunksr‡  ÚfuturesÚfutureÚdataÚMsliceÚNslicer’  r“  ru  r”  r•  s   `            @@@@@rY   Útest_medfilt2d_parallelz#TestMedFilt.test_medfilt2d_parallels  sC  ý€ ä—8‘8˜DŸG™G¨5Ô1ˆÜ—8‘8˜DŸH™H¨EÔ2ˆð �~‰~ §¡Ò/Ð/Ð/ð
 �^‰^˜AÑ !Ñ#ˆØ�^‰^˜AÑ !Ñ#ˆØ×Ñ Ñ" aÑ'¨!Ñ+ˆØ×Ñ Ñ" aÑ'¨!Ñ+ˆ÷	/ñ 	/ô8 —‘˜xÓ(ˆÜ¨AÔ.ð 	.°$Ú5ˆFØ>DÖE°U�t—{‘{ 5¨%Õ0ÐEˆGÐEô ' wÓ/ò .�Ø'-§}¡}£Ñ$��f˜fØ)-��v˜v�~Ò&ñ.÷	.ô 	˜6 8Õ,ùò F÷	.ð 	.ús   Ã	EÃ&EÃ?-EÅEÅEN)r§   r¨   r©   ro  rr  rp  rZ   r  r  rr  rv   ÚubyteÚbyteÚushortÚshortrB   rA   Ú	ulonglongrÓ   rÔ   rv  Úbool_rÕ   rÖ   rZ  rÒ   Úobject_r|  r~  r‚  r¦  rª   r[   rY   r\  r\  *  sW  „ â
2Ú
1Ú
2Ú
2Ú
1Ú
2Ú
2Ú
0Ú
1Ú
0ð	
2€Bò 2Ú1Ú3Ú3Ú3Ú3Ú3Ú2Ú1Ú-ð	/€Cð �Q�%€Kò!ð ‡[�[×Ñ˜W r§x¡x°·±¸"¿)¹)ÀRÇXÁXØ'/°¸"¿,¹,ÈÏÉØ')§z¡z°2·:±:ð'?ó @ñ>ó@ð>ð ‡[�[×Ñ˜W r§x¡x°·±¸r¿}¹}Ø')§~¡~°r·z±zÀ2Ç:Á:Ø'0°*ð'>ó ?ñ'ó?ð'ò!ò,ð ‡[�[×Ñ˜W r§x¡x°·±¸R¿Z¹ZÐ&HÓIñ5-ó Jñ5-r[   r\  c                   ó   — e Zd Zd„ Zy)Ú
TestWienerc                 óê   — t        g d¢g d¢g d¢g d¢gd«      }t        g d¢g d¢g d¢g d	¢g«      }t        t        j                  |«      |d
¬«       t        t        j                  |d¬«      |d
¬«       y )N)rH   rI   rG   rF   )rF   rH   rI   rL   )rL   rF   rH   rI   )rK   rI   r  rƒ   rŽ   )g‘ÔSXO@gúXÆqÇ	@gƒÓÇq@gõ¬ªªªú?)g]É`UUU@g¬FUUUU@gæÇqÇ@gçcÇq@)gÂy¿qÇ@gúXÆqÇ@gúXÆqÇ@gÚUõßJ4@)g±UUUUõ?gñ2k³6k@gÒ·ÍW÷H@gº“@­_)@rI   ©ÚdecimalrF   )Úmysize)r   r   r   Úwiener)rU   r&  r%  s      rY   rZ   zTestWiener.test_basic®  sn   € Ü’<ÚÚÚð!ð #&ó'ˆô ÒIÚLÚLÚMðOó Pˆô 	"¤&§-¡-°Ó"2°A¸qÕAÜ!¤&§-¡-°¸!Ô"<¸aÈÖKr[   N©r§   r¨   r©   rZ   rª   r[   rY   r¯  r¯  ¬  s   „ ó
Lr[   r¯  )ÚmeanÚmedianÚminimumÚmaximumÚlinec                   óê  — e Zd Zd„ Zej
                  j                  dd«      ej
                  j                  dd«      ej
                  j                  dd«      d„ «       «       «       Zd	„ Zej
                  j                  d
d«      ej
                  j                  dd«      ej
                  j                  dd«      d„ «       «       «       Z	ej
                  j                  ej
                  j                  de«      d„ «       «       Zej
                  j                  de«      d„ «       Zej
                  j                  de«      ej
                  j                  dej                  ej                   g«      d„ «       «       Zej
                  j                  ddg e edgddge«      «      z   «      d„ «       Zd„ Zd„ Zej
                  j                  dej.                  ej                  g«      d„ «       Zy)ÚTestResamplec           	      óh  — t        j                  d«      }d}t        j                  dd«      }t	        t
        t        j                  |||¬«       t	        t
        t        j                  |dd«       t	        t
        t        j                  |dd«       t	        t
        t        j                  |d	dd
¬«       t	        t
        t        j                  |d	ddd¬«       t        j                  t        j                  d«      d«      }t        j                  ||d|¬«       t        |j                  dk(  «       y )Né€   é   )Úkaiserç       @é    ©ÚwindowÚyorK   r   rL   r•  ©Úpadtyper¶  rM   )rÇ  Úcval)rL   rK   r“   ©ÚaxisrÄ  )rÂ  )rv   r   r   Ú
get_windowr£   r¤   ÚresampleÚresample_polyrŸ  r   r„  )rU   ÚsigÚnumÚwinÚsig2s        rY   rZ   zTestResample.test_basicÀ  sÜ   € ô
 �i‰i˜‹nˆØˆÜ×Ñ °Ó5ˆÜ”j¤&§/¡/°3¸ÀCÕHô 	”j¤&×"6Ñ"6¸¸TÀ1ÔEÜ”j¤&×"6Ñ"6¸¸QÀÔBÜ”j¤&×"6Ñ"6¸¸QÀÈ2ÕNÜ”j¤&×"6Ñ"6¸¸QÀØ$¨2õ	/ô �w‰w”r—y‘y “~ vÓ.ˆÜ�‰˜˜c¨°3Õ7Ü�—	‘	˜VÑ#Õ$r[   rÄ  )NÚhammingr‰  )rû   r`  rÏ  )r  rd  rM   rô  c           	      ó$  — t        j                  dd|d¬«      }t        j                  |dz   dz  «      }t        t	        j
                  |||¬«      t	        j
                  |dz   ||¬«      j                  «       t        j                  t        j                  |dz   dz  «      t        j                  |dz   dz  «      g«      }|dz   }t        t	        j
                  ||d	|¬
«      t	        j
                  ||d	|¬
«      j                  d¬«       y )Nr   rM   F)ÚendpointrL   g      @rÃ  r”   rK   rÉ  ç•Ö&è.>rû  )	rv   ÚlinspaceÚcosr   r   rÌ  Úrealr   Úsin)rU   r‰  rÏ  rÄ  rk   rl   Ú	y_complexs          rY   Ú	test_rfftzTestResample.test_rfftÖ  sÛ   € ô �K‰K˜˜2˜q¨5Ô1ˆÜ�F‰F�A�q‘D�5˜‘9ÓˆÜœŸ™¨¨3°vÔ>ÜŸ™¨¨B©°¸FÔC×HÑHô	Jô �H‰H”b—f‘f˜a ™d˜U 3™YÓ'¬¯©°°A±°°c±	Ó):Ð;Ó<ˆØ˜‘Fˆ	ÜÜ�O‰O˜A˜s¨°6Ô:Ü�O‰O˜I s°¸6ÔB×GÑGØö	r[   c                 óÖ   — t        j                  d«      dz   }t        j                  |«      }d}t	        t        j                  ||d¬«      t        j                  ||d¬«      d¬«       y )Nr¿  r”   Úfreq)ÚdomainÚtimerÕ  rû  )rv   r   Úsp_fftr   r   r   rÌ  )rU   ÚtsigÚfsigrÏ  s       rY   Útest_input_domainzTestResample.test_input_domainè  sR   € ä�y‰y˜‹~ Ñ"ˆÜ�z‰z˜$ÓˆØˆÜÜ�O‰O˜D #¨fÔ5Ü�O‰O˜D #¨fÔ5Øö	r[   Únx)rK   rL   rF   rH   r‘   Únyrè   )rh  r)  c                 ó„   — t        j                  dg|z  |«      }t        j                  ||«      }t	        |dg|z  «       y ©NrK   )rv   r   r   rÌ  r   )rU   rä  rå  rè   rk   rl   s         rY   Útest_dczTestResample.test_dcò  s:   € ô �H‰H�a�S˜2‘X˜uÓ%ˆÜ�O‰O˜A˜rÓ"ˆÜ˜˜A˜3 ™8Õ$r[   rÇ  c                 óö   — t        j                  d«      }t         j                  j                  d«      j	                  d«      }|j                  «       }t        j                  |dd||¬«       t        ||«       y )NrF   r   rL   rH   rK   ©rÄ  rÇ  )	rv   rˆ  rä   rå   rç   Úcopyr   rÍ  r   )rU   rÇ  ÚimpulserÄ  Úwindow_origs        rY   Útest_mutable_windowz TestResample.test_mutable_windowú  s[   € ô —(‘(˜1“+ˆÜ—‘×&Ñ& qÓ)×/Ñ/°Ó2ˆØ—k‘k“mˆÜ×Ñ˜W a¨°6À7ÕKÜ˜6 ;Õ/r[   c                 ó  — t        j                  dt         j                  ¬«      }t        j                  g d¢t         j                  ¬«      }t	        j
                  |dd||¬«      }|j                  t         j                  k(  sJ ‚y )NrM   r  ©rK   rK   rK   rK   rL   rê  )rv   r   rÓ   r   r   rÍ  rè   )rU   rÇ  rk   r%  rl   s        rY   Útest_output_float32z TestResample.test_output_float32  sZ   € ô �I‰I�b¤§
¡
Ô+ˆÜ�H‰H’Y¤b§j¡jÔ1ˆÜ× Ñ   A q°¸GÔDˆØ�w‰wœ"Ÿ*™*Ò$Ð$Ñ$r[   c                 óš   — t        j                  d|¬«      }t        j                  |dd|¬«      }|j                  |j                  k(  sJ ‚y )NrM   r  rK   rL   rÆ  )rv   r   r   rÍ  rè   )rU   rÇ  rè   rk   rl   s        rY   Útest_output_match_dtypez$TestResample.test_output_match_dtype  s@   € ô �I‰I�b Ô&ˆÜ× Ñ   A q°'Ô:ˆØ�w‰w˜!Ÿ'™'Ò!Ð!Ñ!r[   zmethod, ext, padtype)r   FNÚ	polyphaseFTc                 ó¦  — d}g d¢}t        j                  |«      t        |«      z  }t        j                  d«      d d …t         j                  f   }t        j
                  dt         j                  z  |z  |z  «      t        |«      z  }|D �]Œ  }	t        j                  |	«      t        |	«      z  }
t        j
                  dt         j                  z  |z  |
z  «      t        |	«      z  }|dk(  rt        j                  ||	d¬«      }nu|rU|	|k7  rPt        |	|«      }|	|z  }||z  }t        ||«      }d|z  }d	|z  }t        j                  d|z  d
z   |d¬«      }||dœ}nd|i}t        j                  ||	|fddi|¤Ž}t        |||«      D ]�  \  }}}|d|	z  k\  r3|j                  d«       |dv rt!        ||d¬«       Œ3t!        ||d¬«       ŒBt#        |j$                  |j$                  «       t        j&                  ||«      d   }t)        |dkD  |||	f¬«       Œ� �Œ� t         j*                  j-                  d«      }t        |«      t        j.                  |j1                  |«      «      z  }|D ]¸  }	t        j                  |	«      t        |	«      z  }
t        j2                  |
||«      }|dk(  rt        j                  ||	«      }nt        j                  ||	||¬«      }t#        |j$                  |j$                  «       t        j&                  ||«      d   }t)        |dkD  |¬«       Œº |dk(  r¥t        j                  ddg«      }t        j                  |d«      }t        j                  g d¢«      }t!        ||d¬«       t        j                  g d ¢«      }t        j                  |d«      }t        j                  ddg«      }t!        ||d¬«       y y )!Nr  )	r‹   rü   rý   éc   r  rd  éÇ   rþ  éÉ   )rQ  ç      $@g      D@rL   r   r“   ©rÊ  rQ  rM   rK   )rÀ  r€  rÃ  rê  rÇ  rÊ  ç      à?ç        )r¸  r¹  ç333333Ó?rû  rá   rš  g®Gáz®ï?©r<  r   rÆ  r¶   r”   rG   )r¶   ù      à?        r”   rÿ  çê-�™—q=)rQ  rû  rü  rû  )rv   r   rh  r   ÚnewaxisrÙ  Úpir8   r   rÌ  r   Úmaxr  rÍ  r  r,  r   r   r„  Úcorrcoefr   rä   rå   Úcumsumrç   Úinterp) rU   ru   ÚextrÇ  ÚrateÚrates_tor÷   Úfreqsrk   Úrate_toÚt_toÚy_tosÚ	y_resampsr&  ÚupÚdownÚmax_rateÚf_cÚhalf_lenrÄ  ÚpolyargsÚy_toÚy_resamprÝ  Úcorrrñ   ró   Úy1_testÚy1_truerô   Úy2_testÚy2_trues                                    rY   Útest_resample_methodsz"TestResample.test_resample_methods  sd  € ð ˆÚ<ˆô �I‰I�d‹Oœe D›kÑ)ˆÜ—‘˜Ó(ª¬B¯J©J¨Ñ7ˆÜ�F‰F�1”r—u‘u‘9˜uÑ$ qÑ(Ó)¬D°«JÑ6ˆàó !	DˆGÜ—9‘9˜WÓ%¬¨g«Ñ6ˆDÜ—F‘F˜1œrŸu™u™9 uÑ,¨tÑ3Ó4´t¸G³}ÑDˆEØ˜ŠÜ"ŸO™O¨A¨w¸RÔ@‘	á˜7 dš?ä˜G TÓ*�AØ  A™�BØ 1™9�DÜ" 2 t›}�HØ˜x™-�CØ! H™}�HÜ#Ÿ]™]¨1¨x©<¸!Ñ+;¸SØ2AôC�Fà*0¸WÑE‘Hà )¨7Ð3�Hä"×0Ñ0°°G¸Tñ =Èð =Ø3;ñ=�	ô ),¨E°9¸eÓ(Dò 
DÑ$��h Ø˜3 ™=Ò(Ø—I‘I˜b”MØÐ"8Ñ8Ü'¨°$¸TÖBä'¨°$¸TÖBä& t§z¡z°8·>±>ÔBÜŸ;™; t¨XÓ6°tÑ<�DÜ˜D 4™K¨d°D¸'Ð-BÖCò
Dð/!	DôH �i‰i×#Ñ# AÓ&ˆÜ�‹JœŸ™ 3§9¡9¨T£?Ó3Ñ3ˆØò 	+ˆGä—9‘9˜WÓ%¬¨g«Ñ6ˆDÜ—9‘9˜T 1 aÓ(ˆDØ˜ŠÜ!Ÿ?™?¨1¨gÓ6‘ä!×/Ñ/°°7¸DØ8?ôA�ä˜tŸz™z¨8¯>©>Ô:Ü—;‘;˜t XÓ.¨tÑ4ˆDÜ�D˜4‘K TÖ*ð	+ð �UŠ?Ü—‘˜6 6Ð*Ó+ˆBÜ—o‘o b¨!Ó,ˆGä—h‘hÒAÓBˆGÜ˜G W°5Õ9Ü—‘Ò,Ó-ˆBÜ—o‘o b¨!Ó,ˆGÜ—h‘h  B˜xÓ(ˆGÜ˜G W°5Ö9ð r[   c           	      ób  — t         j                  j                  d«      }t        t         j                  t         j
                  t        t        f}d}g d¢}|D ]Ö  }|j                  |«      j                  |«      }|t         j
                  t         j                  fv r|d|j                  |«      z  z  }d|d<   d|d<   |D ]l  }t        j                  dd|z  d	¬
«      }t        |d|d¬«      d d |…   }	t        ||d d d…   «      }
t        j                  |d||
¬
«      }t!        |	|dd¬«       Œn ŒØ y )Nr…   rù  )rL   rô  éO   r’   r   r“   rŠ   rQ  rÒ  rÃ  ÚconstantrÆ  rK   çH¯¼šò×z>©rà   rß   )rv   rä   rå   ÚintrÓ   rÕ   rh  r)  rç   rê   rÖ   r   r  r&   r   rÍ  r   )rU   Úrandom_stateÚ	try_typesrÙ   Údown_factorsrè   rk   r  r%  ÚyfÚhcrl   s               rY   Útest_poly_vs_filtfiltz"TestResample.test_poly_vs_filtfiltf  s  € ä—y‘y×,Ñ,¨RÓ0ˆÜœ"Ÿ*™*¤b§l¡l´E¼7ÐCˆ	ØˆÚ"ˆàò 	=ˆEØ×"Ñ" 4Ó(×/Ñ/°Ó6ˆAØœŸ™¤r§}¡}Ð5Ñ5Ø�R˜,×,Ñ,¨TÓ2Ñ2Ñ2�ð ˆAˆa‰DØˆAˆb‰Eà$ò 	=�Ü—M‘M " b¨4¡i¸	ÔB�Ü˜a  a°Ô<¹V¸t¸VÑD�ô
 ˜a ¡4 R 4¡Ó)�Ü×(Ñ(¨¨A¨t¸BÔ?�Ü  A¨D°tÖ<ñ	=ñ	=r[   c           
      óB  — dD ]š  }t        dd|«      D ]ˆ  }dD ]�  }t        j                  j                  |f«      }t        j                  j                  |f«      }t        ||d d d…   d¬«      }t	        j
                  |d||¬«      }t        |d d |…   |«       Œƒ ŒŠ Œœ y )	N)rL   rG   rK   r/  )rP   rg  r“   r  r`   )r  r  rÄ  )rx   rv   rä   r   r   rÍ  r   )rU   r  rä  Únweightsrk   ÚweightsÚy_gÚy_ss           rY   Útest_correlate1dzTestResample.test_correlate1d‚  s¥   € Øò 	6ˆDÜ˜A˜r 4Ó(ò 6�Ø (ò 6�HÜŸ	™	×(Ñ(¨"¨Ó/�AÜ Ÿi™i×.Ñ.°¨{Ó;�GÜ% a¨±°2°©¸ZÔH�CÜ ×.Ñ.Ø˜a d°7ô<�Cä# C©¨$¨¡K°Õ5ñ6ñ6ñ	6r[   c                 óœ   — t        j                  g d¢|¬«      }t        j                  |ddd¬«      }t        j                  |«      dkD  sJ ‚y )N)r   rK   rL   rF   rL   rK   r   r  rL   rK   Úsmooth)r  r  rÇ  r   )rv   r   r   rÍ  Úcount_nonzero)rU   rè   r£  Úactuals       rY   Útest_gh_15620zTestResample.test_gh_15620�  sI   € ä�x‰xÒ-°UÔ;ˆÜ×%Ñ% dØ)*Ø+,Ø.6ô8ˆô ×Ñ Ó'¨!Ò+Ð+Ñ+r[   N)r§   r¨   r©   rZ   r  r  rr  rÛ  rã  rè  r  Úpadtype_optionsrî  rñ  rv   rÓ   rÔ   ró  r  r   r  r(  r.  rÌ   r3  rª   r[   rY   r¼  r¼  ¿  sò  „ ò%ð, ‡[�[×Ñ˜XÐ'8Ó9Ø‡[�[×Ñ˜S (Ó+Ø‡[�[×Ñ˜UÐ$6Ó7ñó 8ó ,ó :ðòð ‡[�[×Ñ˜T ?Ó3Ø‡[�[×Ñ˜T ?Ó3Ø‡[�[×Ñ˜WÐ&:Ó;ñ%ó <ó 4ó 4ð%ð
 ‡[�[×ÑØ‡[�[×Ñ˜Y¨Ó8ñ0ó 9ó ð0ð ‡[�[×Ñ˜Y¨Ó8ñ%ó 9ð%ð ‡[�[×Ñ˜Y¨Ó8Ø‡[�[×Ñ˜W r§z¡z°2·:±:Ð&>Ó?ñ"ó @ó 9ð"ð ‡[�[×ÑØØ	ÐÙ
ÙØ�  t˜}¨oóó
ñ	
óñG:óðG:òR=ò8	6ð ‡[�[×Ñ˜W r§x¡x°·±Ð&<Ó=ñ,ó >ñ,r[   r¼  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestCSpline1DEvalc                 ó  — t        g d¢«      }t        t        |«      «      }|d   |d   z
  }t        j                  |«      }t        t        |«      dz  «      dz  }t        j
                  ||||d   ¬«      }t        |d d d…   |d¬«       y )	N)	rK   rL   rF   rG   rF   rL   rK   rL   rY  rK   r   rù  )ÚdxÚx0rM   rH   r±  )r   r   Úlenr   Ú	cspline1dÚcspline1d_evalr   )rU   rl   rk   r8  Úcjrô   Úy2s          rY   rZ   zTestCSpline1DEval.test_basic™  s‚   € ÜÒ/Ó0ˆÜ”3�q“6‹NˆØˆq‰T�A�a‘D‰[ˆÜ×Ñ˜aÓ ˆä”C˜“F˜T‘MÓ" TÑ)ˆÜ×"Ñ" 2 r¨b°Q°q±TÔ:ˆô 	" "¡T r T¡(¨A°qÖ9r[   c                 ó´  — t        j                  d«      }t        j                  |j                  t         j                  ¬«      }d}d|z  }t        j
                  dt         j                  z  |z  |z  «      }t        j                  |«      }t        j                  dg«      }t        j                  ||«      }t        |j                  |j                  «       y )NrL   r  rù  rQ  rj   rû  )rv   r   rˆ  r„  rÕ   Úexpr  r   r;  r   r<  r
   rè   )rU   rk   rl   ÚTrÚ   ÚcyÚxnewÚynews           rY   rn   zTestCSpline1DEval.test_complex¥  sœ   € ä�I‰I�a‹LˆÜ�H‰H�Q—W‘W¤B§L¡LÔ1ˆØˆØ�!‰GˆÜ�F‰F�4œ"Ÿ%™%‘< !Ñ# aÑ'Ó(ˆô ×Ñ˜aÓ ˆô �x‰x˜˜‹ˆÜ×$Ñ$ R¨Ó.ˆä�T—Z‘Z §¡Õ)r[   N)r§   r¨   r©   rZ   rn   rª   r[   rY   r6  r6  —  s   „ ò
:ó*r[   r6  c                   ó   — e Zd Zd„ Zy)ÚTestOrderFiltc                 óR   — t        t        j                  g d¢g d¢d«      g d¢«       y )NrJ   ©rK   r   rK   rK   )rL   rF   rL   )r   r   Úorder_filterr  s    rY   rZ   zTestOrderFilt.test_basic¸  s   € Üœ6×.Ñ.ªyº)ÀQÓGÚ$õ	&r[   Nrµ  rª   r[   rY   rF  rF  ¶  s   „ ó&r[   rF  c            	       ó¬  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej:                  j=                  dddg ej@                  d«      g«      ej:                  j=                  dddg ej@                  d«      g«      d„ «       «       Z!ej:                  jD                  d„ «       Z#y) Ú_TestLinearFilterc                 óÂ   — t        j                  dt        j                  |«      dz
  t        j                  |«      «      j                  |«      }| j	                  |«      S )Nr   rK   )rv   rÖ  Úprodrw   Úconvert_dtype)rU   r„  rk   s      rY   Úgeneratez_TestLinearFilter.generate¿  sE   € Ü�K‰K˜œ2Ÿ7™7 5›>¨AÑ-¬r¯w©w°u«~Ó>×FÑFÀuÓMˆØ×!Ñ! !Ó$Ð$r[   c                 óŠ  — | j                   t        j                   d«      k(  r�t        j                  |«      }t        j                  |j                  | j                   «      }t        j
                  ||gddgdgdgg«      }|D ]  \  }}| j                  |d   «      |d<   Œ |S t        j                  || j                   ¬«      S )	NÚOÚrefs_okÚzerosize_okÚreadonlyÚ	writeonlyrª   .r  )rè   rv   r  Úemptyr„  ÚnditerÚtype)rU   Úarrr¹   Úiterrk   rl   s         rY   rN  z_TestLinearFilter.convert_dtypeÃ  s¥   € Ø�:‰:œŸ™ #›Ò&Ü—*‘*˜S“/ˆCÜ—(‘(˜3Ÿ9™9 d§j¡jÓ1ˆCÜ—9‘9˜c 3˜Z¨)°MÐ)BØ$˜ { mÐ4ó6ˆDàò *‘��1ØŸ™ 1 R¡5Ó)��#’ð*àˆJä—:‘:˜c¨¯©Ô4Ð4r[   c                 óÆ   — | j                  d«      }| j                  ddg«      }| j                  ddg«      }| j                  g d¢«      }t        t        |||«      |«       y ©N©rI   rK   r“   rû  ç      à¿©r   rL   rG   rI   r‘   rù  ©rO  rN  r   r$   ©rU   rk   rW   rV   Úy_rs        rY   Útest_rank_1_IIRz!_TestLinearFilter.test_rank_1_IIRÏ  s\   € Ø�M‰M˜$ÓˆØ×Ñ  2˜wÓ'ˆØ×Ñ  T˜{Ó+ˆØ× Ñ Ò!5Ó6ˆÜ!¤'¨!¨Q°Ó"2°CÕ8r[   c                 óÄ   — | j                  d«      }| j                  ddg«      }| j                  dg«      }| j                  g d¢«      }t        t        |||«      |«       y )Nr]  rK   ©r   rK   rF   rH   rƒ   r˜  r`  ra  s        rY   Útest_rank_1_FIRz!_TestLinearFilter.test_rank_1_FIRÖ  sZ   € Ø�M‰M˜$ÓˆØ×Ñ  1˜vÓ&ˆØ×Ñ ˜sÓ#ˆØ× Ñ Ò!4Ó5ˆÜ!¤'¨!¨Q°Ó"2°CÕ8r[   c                 ó8  — | j                  d«      }| j                  g d¢«      }| j                  ddg«      }| j                  ddg«      }| j                  g d¢«      }| j                  dd	g«      }t        ||||¬
«      \  }}t        ||«       t        ||«       y )Nr]  ©rK   r   r“   rû  r^  rK   rL   )rK   rH   r  é   r…   r[  ri  éöÿÿÿ©Úzi©rO  rN  r$   r   ©	rU   rk   rW   rV   rl  rb  Úzf_rrl   Úzfs	            rY   Útest_rank_1_IIR_init_condz+_TestLinearFilter.test_rank_1_IIR_init_condÝ  s•   € Ø�M‰M˜$ÓˆØ×ÑšzÓ*ˆØ×Ñ  T˜{Ó+ˆØ×Ñ  A Ó'ˆØ× Ñ Ò!6Ó7ˆØ×!Ñ! 2 s )Ó,ˆÜ˜˜1˜a BÔ'‰ˆˆ2Ü! ! SÔ)Ü! " dÕ+r[   c                 ó6  — | j                  d«      }| j                  g d¢«      }| j                  dg«      }| j                  ddg«      }| j                  g d¢«      }| j                  ddg«      }t        ||||¬«      \  }}t        ||«       t        ||«       y )Nr]  rð  rK   )rK   rL   rF   rI   r  rÍ  r  rH   rk  rm  rn  s	            rY   Útest_rank_1_FIR_init_condz+_TestLinearFilter.test_rank_1_FIR_init_condè  s“   € Ø�M‰M˜$ÓˆØ×ÑšyÓ)ˆØ×Ñ ˜sÓ#ˆØ×Ñ  A Ó'ˆØ× Ñ Ò!5Ó6ˆØ×!Ñ! 1 a &Ó)ˆÜ˜˜1˜a BÔ'‰ˆˆ2Ü! ! SÔ)Ü! " dÕ+r[   c                 óâ   — | j                  d«      }| j                  ddg«      }| j                  ddg«      }| j                  g d¢g d¢g d¢g d¢g«      }t        |||d¬«      }t        ||«       y )	N©rG   rF   rK   r“   rû  ©r   rL   rG   ©rI   rG   rL   r   rú  rm  )rU   rk   rW   rV   Úy_r2_a0rl   s         rY   Útest_rank_2_IIR_axis_0z(_TestLinearFilter.test_rank_2_IIR_axis_0ó  sp   € Ø�M‰M˜&Ó!ˆØ×Ñ  2˜wÓ'ˆØ×Ñ  S˜zÓ*ˆØ×$Ñ$¢i²ºIÚ&/ð&1ó 2ˆä�A�q˜! !Ô$ˆÜ! '¨1Õ-r[   c                 óâ   — | j                  d«      }| j                  ddg«      }| j                  ddg«      }| j                  g d¢g d¢g d¢g d¢g«      }t        |||d¬	«      }t        ||«       y )
Nru  rK   r“   rû  ©r   rL   r   ©rI   rð  rI   ©rR   rj  rR   ©r]  iðÿÿÿr]  rú  rm  )rU   rk   rW   rV   Úy_r2_a1rl   s         rY   Útest_rank_2_IIR_axis_1z(_TestLinearFilter.test_rank_2_IIR_axis_1ü  sp   € Ø�M‰M˜&Ó!ˆØ×Ñ  2˜wÓ'ˆØ×Ñ  S˜zÓ*ˆØ×$Ñ$¢i²º]Ú)ð&+ó ,ˆä�A�q˜! !Ô$ˆÜ! '¨1Õ-r[   c                 óš  — | j                  d«      }| j                  ddg«      }| j                  ddg«      }| j                  t        j                  d«      «      }| j                  g d¢g d¢g d¢g d	¢g«      }| j                  g d
¢«      d d …t        j                  f   }t        |||d|¬«      \  }}t        ||«       t        ||«       y )Nru  rK   r“   rû  )rG   rK   rð  )rƒ   éûÿÿÿrƒ   )ri  éõÿÿÿri  )r`  éïÿÿÿr`  )r‚  r„  iãÿÿÿi×ÿÿÿ©rÊ  rl  )rO  rN  rv   r^  r  r$   r   )	rU   rk   rW   rV   rl  Ú	y_r2_a0_1ro  rl   rp  s	            rY   Ú test_rank_2_IIR_axis_0_init_condz2_TestLinearFilter.test_rank_2_IIR_axis_0_init_cond  s¶   € Ø�M‰M˜&Ó!ˆØ×Ñ  2˜wÓ'ˆØ×Ñ  S˜zÓ*ˆØ×Ñ¤§¡¨£Ó/ˆà×&Ñ&ª	²:º}Ú+ð(-ó .ˆ	à×!Ñ!Ò"5Ó6²q¼"¿*¹*°}ÑEˆÜ˜˜1˜a a¨BÔ/‰ˆˆ2Ü! )¨QÔ/Ü! " dÕ+r[   c                 ór  — | j                  d«      }| j                  ddg«      }| j                  ddg«      }| j                  t        j                  d«      «      }| j                  g d¢g d¢g d¢g d¢g«      }| j                  g d¢g«      }t	        |||d	|¬
«      \  }}t        ||«       t        ||«       y )Nru  rK   r“   rû  ©rK   rF   )rK   rF   rH   )rH   rF   rK   )ééÿÿÿrŠ  rŠ  r   r…  )rO  rN  rv   r^  r$   r   )	rU   rk   rW   rV   rl  Ú	y_r2_a0_0ro  rl   rp  s	            rY   Ú test_rank_2_IIR_axis_1_init_condz2_TestLinearFilter.test_rank_2_IIR_axis_1_init_cond  s«   € Ø�M‰M˜%Ó ˆØ×Ñ  2˜wÓ'ˆØ×Ñ  S˜zÓ*ˆØ×Ñ¤§¡¨£Ó/ˆà×&Ñ&ª	²9Ú(1²9ð(>ó ?ˆ	à×!Ñ!¢?Ð"3Ó4ˆÜ˜˜1˜a a¨BÔ/‰ˆˆ2Ü! )¨QÔ/Ü! " dÕ+r[   c                 ó  ‡‡— | j                  d«      }| j                  ddg«      Š| j                  ddg«      Št        |j                  «      D ]7  }t	        ‰‰||«      }t        j                  ˆˆfd„||«      }t        ||«       Œ9 y )N©rG   rF   rL   rK   r“   rû  c                 ó   •— t        ‰‰| «      S r(  ©r$   ©ÚwrV   rW   s    €€rY   ú<lambda>z3_TestLinearFilter.test_rank_3_IIR.<locals>.<lambda>&  ó   ø€ ´¸¸1¸aÓ0@€ r[   ©rO  rN  rx   Úndimr$   rv   Úapply_along_axisr   ©rU   rk   rÊ  rl   rb  rV   rW   s        @@rY   Útest_rank_3_IIRz!_TestLinearFilter.test_rank_3_IIR  s   ù€ Ø�M‰M˜)Ó$ˆØ×Ñ  2˜wÓ'ˆØ×Ñ  S˜zÓ*ˆä˜!Ÿ&™&“Mò 	.ˆDÜ˜˜1˜a Ó&ˆAÜ×%Ñ%Ô&@À$ÈÓJˆCÜ% a¨Õ-ñ	.r[   c                 ó  ‡‡‡— | j                  d«      }| j                  ddg«      Š| j                  ddg«      Št        |j                  «      D ]¸  }t	        |j
                  «      }d||<   | j                  t        j                  |«      «      }| j                  dg«      Št        ‰‰|||«      \  }}ˆˆˆfd„}ˆˆˆfd„}t        j                  |||«      }	t        j                  |||«      }
t        ||	«       t        ||
«       Œº y )NrŽ  rK   r“   rû  c                 ó(   •— t        ‰‰| ‰¬«      d   S ©Nrk  r   r�  ©r’  rV   rW   Úzi1s    €€€rY   Úlf0z8_TestLinearFilter.test_rank_3_IIR_init_cond.<locals>.lf04  ó   ø€ Ü˜q ! Q¨3Ô/°Ñ2Ð2r[   c                 ó(   •— t        ‰‰| ‰¬«      d   S ©Nrk  rK   r�  r�  s    €€€rY   Úlf1z8_TestLinearFilter.test_rank_3_IIR_init_cond.<locals>.lf16  r   r[   ©rO  rN  rx   r–  r  r„  rv   r^  r$   r—  r   ©rU   rk   rÊ  Úzi_shaperl  rl   rp  rŸ  r£  rb  ro  rV   rW   rž  s              @@@rY   Útest_rank_3_IIR_init_condz+_TestLinearFilter.test_rank_3_IIR_init_cond)  sí   ú€ Ø�M‰M˜)Ó$ˆØ×Ñ  2˜wÓ'ˆØ×Ñ  S˜zÓ*ˆä˜!Ÿ&™&“Mò 	0ˆDÜ˜AŸG™G“}ˆHØˆH�T‰NØ×#Ñ#¤B§G¡G¨HÓ$5Ó6ˆBØ×$Ñ$ a SÓ)ˆCÜ˜A˜q ! T¨2Ó.‰EˆAˆrö3ö3ä×%Ñ% c¨4°Ó3ˆCÜ×&Ñ& s¨D°!Ó4ˆDÜ% a¨Ô-Ü% b¨$Õ/ñ	0r[   c                 ó  ‡‡— | j                  d«      }| j                  g d¢«      Š| j                  dg«      Št        |j                  «      D ]7  }t	        ‰‰||«      }t        j                  ˆˆfd„||«      }t        ||«       Œ9 y )NrŽ  rh  rK   c                 ó   •— t        ‰‰| «      S r(  r�  r‘  s    €€rY   r“  z3_TestLinearFilter.test_rank_3_FIR.<locals>.<lambda>D  r”  r[   r•  r˜  s        @@rY   Útest_rank_3_FIRz!_TestLinearFilter.test_rank_3_FIR=  sy   ù€ Ø�M‰M˜)Ó$ˆØ×ÑšzÓ*ˆØ×Ñ ˜sÓ#ˆä˜!Ÿ&™&“Mò 	.ˆDÜ˜˜1˜a Ó&ˆAÜ×%Ñ%Ô&@À$ÈÓJˆCÜ% a¨Õ-ñ	.r[   c                 ó  ‡‡‡— | j                  d«      }| j                  g d¢«      Š| j                  dg«      Št        |j                  «      D ]¹  }t	        |j
                  «      }d||<   | j                  t        j                  |«      «      }| j                  ddg«      Št        ‰‰|||«      \  }}ˆˆˆfd„}ˆˆˆfd„}t        j                  |||«      }	t        j                  |||«      }
t        ||	«       t        ||
«       Œ» y )NrŽ  rh  rK   rL   c                 ó(   •— t        ‰‰| ‰¬«      d   S rœ  r�  r�  s    €€€rY   rŸ  z8_TestLinearFilter.test_rank_3_FIR_init_cond.<locals>.lf0R  r   r[   c                 ó(   •— t        ‰‰| ‰¬«      d   S r¢  r�  r�  s    €€€rY   r£  z8_TestLinearFilter.test_rank_3_FIR_init_cond.<locals>.lf1T  r   r[   r¤  r¥  s              @@@rY   Útest_rank_3_FIR_init_condz+_TestLinearFilter.test_rank_3_FIR_init_condG  sé   ú€ Ø�M‰M˜)Ó$ˆØ×ÑšzÓ*ˆØ×Ñ ˜sÓ#ˆä˜!Ÿ&™&“Mò 	0ˆDÜ˜AŸG™G“}ˆHØˆH�T‰NØ×#Ñ#¤B§G¡G¨HÓ$5Ó6ˆBØ×$Ñ$ a¨ VÓ,ˆCÜ˜A˜q ! T¨2Ó.‰EˆAˆrö3ö3ä×%Ñ% c¨4°Ó3ˆCÜ×&Ñ& s¨D°!Ó4ˆDÜ% a¨Ô-Ü% b¨$Õ/ñ	0r[   c                 ó0  — | j                  d«      }t        j                  ddd¬«      \  }}| j                  |«      }| j                  |«      }|j                  d   dz
  }| j                  t        j                  dd	|f«      «      }| j                  t        j                  dd|f«      «      }t        ||||¬
«      \  }}t        ||||¬
«      \  }	}
t        |	|«       t        ||
«       t        t        t        |||dt        j                  |«      «       y )N)rG   rH   rû   r‘   rÿ  Úba©rž  r   rK   rG   rH   rk  r“   )rO  r   r'   rN  r„  rv   r^  r$   r   r£   r¤   )rU   rk   rW   rV   Úzi_sizeÚzi_fullÚzi_singÚy_fullÚzf_fullÚy_singÚzf_sings              rY   Útest_zi_pseudobroadcastz)_TestLinearFilter.test_zi_pseudobroadcast[  sò   € Ø�M‰M˜*Ó%ˆÜ�m‰m˜A˜s¨4Ô0‰ˆˆ!Ø×Ñ˜qÓ!ˆØ×Ñ˜qÓ!ˆØ—'‘'˜!‘*˜q‘.ˆð ×$Ñ$¤R§W¡W¨a°°G¨_Ó%=Ó>ˆØ×$Ñ$¤R§W¡W¨a°°G¨_Ó%=Ó>ˆä! ! Q¨¨gÔ6‰ˆ�Ü! ! Q¨¨gÔ6‰ˆ�ä! &¨&Ô1Ü! '¨7Ô3ô 	”j¤'¨1¨a°°B¼¿¹ÀÓ8HÕIr[   c                 óÎ   — | j                  d«      }| j                  g d¢«      }| j                  dg«      }| j                  g d¢«      }t        ||d   |«      }t        ||«       y )NrI   rh  rK   )r   rK   rL   rL   rL   rL   r   rm  )rU   rk   rW   rV   rb  rl   s         rY   Útest_scalar_az_TestLinearFilter.test_scalar_ap  s_   € à�M‰M˜!ÓˆØ×ÑšzÓ*ˆØ×Ñ ˜sÓ#ˆØ× Ñ Ò!3Ó4ˆä�A�q˜‘t˜QÓˆÜ! ! SÕ)r[   c                 óö  — | j                  t        j                  dd«      «      }| j                  t        j                  dd«      «      }| j                  t        j                  g d¢«      «      }t        j                  dd«      }|dd d …d d …fxx   dz  cc<   |dd d …d d …fxx   dz  cc<   | j                  |«      }| j                  t        j                  d	d«      «      }t        j                  dd«      }dggdggdggg|d d …d d …d d
…f<   | j                  |«      }t        |||d|«      \  }}t        ||«       t        ||«       t        ||d   |d|«      \  }	}
t        |	|«       t        |
|«       y )N)rF   rL   rH   ÚlrH   ©rK   r   r   )rF   rK   rG   rK   rL   rF   )rF   rL   rG   rG   r“   r   )rN  rv   rˆ  r^  r   r$   r   )rU   rk   rW   rV   rl  Úzf_expectedÚ
y_expectedÚy_iirÚzf_iirÚy_firÚzf_firs              rY   Útest_zi_some_singleton_dimsz-_TestLinearFilter.test_zi_some_singleton_dimsz  sV  € ð ×ÑœrŸx™x¨°Ó5Ó6ˆØ×ÑœrŸw™w q¨#›Ó/ˆØ×ÑœrŸx™xªÓ0Ó1ˆÜ�W‰W�W˜cÓ"ˆØ
ˆ1ŠQŠqˆ5‹	�Q‰‹	Ø
ˆ1ŠQŠqˆ5‹	�Q‰‹	Ø×Ñ Ó#ˆà×(Ñ(¬¯©°'¸3Ó)?Ó@ˆÜ—X‘X˜g sÓ+ˆ
Ø !˜s˜e q c U¨a¨S¨EÐ2ˆ
’1’Q�r˜�r�6ÑØ×'Ñ'¨
Ó3ˆ
ô    1 a¨¨RÓ0‰ˆˆvÜ! %¨Ô4Ü! &¨+Ô6ô    1 Q¡4¨¨B°Ó3‰ˆˆvÜ! %¨Ô4Ü! &¨+Õ6r[   c           	      ó¾   — | j                  |«      }| j                  |«      }| j                  |«      }| j                  |«      }t        t        t        |||||«       y r(  )rN  r£   r¤   r$   )rU   rW   rV   rk   rÊ  rl  s         rY   Úbase_bad_size_ziz"_TestLinearFilter.base_bad_size_zi•  sV   € Ø×Ñ˜qÓ!ˆØ×Ñ˜qÓ!ˆØ×Ñ˜qÓ!ˆØ×Ñ Ó#ˆÜ”j¤'¨1¨a°°D¸"Õ=r[   c                 óP  — t        j                  d«      }| j                  dgdg|ddg«       | j                  ddgdg|dddg«       | j                  ddgdg|ddgg«       | j                  ddgdg|dg d¢«       | j                  g d¢dg|ddgg«       | j                  g d¢dg|dg d¢«       | j                  dgddg|dddg«       | j                  dgddg|ddgg«       | j                  dgddg|dg d¢«       | j                  g d¢ddg|ddg«       | j                  g d¢ddg|ddgdgg«       | j                  g d¢ddg|dg d¢«       | j                  g d¢ddg|dg d¢«       | j                  ddgg d¢|ddg«       | j                  ddgg d¢|ddgdgg«       | j                  ddgg d¢|dg d¢«       | j                  ddgg d¢|dg d¢«       t        j                  d«      j                  d	«      }| j                  dgdg|ddg«       | j                  ddgdg|dg d¢«       | j                  ddgdg|dg d¢gg«       | j                  ddgdg|ddgdgd
gg«       | j                  ddgdg|dddgg«       | j                  ddgdg|dg d¢g«       | j                  g d¢dg|dg d¢«       | j                  g d¢dg|dg d¢g d¢gg«       | j                  g d¢dg|dddgd
dgddgg«       | j                  g d¢dg|dddgd
dgg«       | j                  g d¢dg|dg d¢g d¢g«       | j                  dgddg|dg d¢«       | j                  dgddg|dg d¢gg«       | j                  dgddg|ddgdgd
gg«       | j                  dgddg|dddgg«       | j                  dgddg|dg d¢g«       | j                  dgg d¢|dg d¢«       | j                  dgg d¢|dg d¢g d¢gg«       | j                  dgg d¢|dddgd
dgddgg«       | j                  dgg d¢|dddgd
dgg«       | j                  dgg d¢|dg d¢g d¢g«       | j                  g d¢ddg|dg d¢«       | j                  g d¢ddg|dg d¢g d¢gg«       | j                  g d¢ddg|dddgd
dgddgg«       | j                  g d¢ddg|dddgd
dgg«       | j                  g d¢ddg|dg d¢g d¢g«       | j                  dgdg|ddg«       | j                  ddgdg|dg d¢«       | j                  ddgdg|ddgdgd
gdggg«       | j                  ddgdg|dg d¢g«       | j                  ddgdg|ddgdgd
gg«       | j                  ddgdg|ddgdgd
gdgdgg«       | j                  g d¢dg|dg d¢«       | j                  g d¢dg|dddgd
dgddgddggg«       | j                  g d¢dg|dg d¢g d¢g«       | j                  g d¢dg|dddgd
dgddgg«       | j                  g d¢dg|dddgd
dgddgddgddgg«       | j                  dgddg|dg d¢«       | j                  dgddg|ddgdgd
gdggg«       | j                  dgddg|dg d¢g«       | j                  dgddg|ddgdgd
gg«       | j                  dgddg|ddgdgd
gdgdgg«       | j                  dgg d¢|dg d¢«       | j                  dgg d¢|dddgd
dgddgddggg«       | j                  dgg d¢|dg d¢g d¢g«       | j                  dgg d¢|dddgd
dgddgg«       | j                  dgg d¢|dddgd
dgddgddgddgg«       | j                  g d¢ddg|dg d¢«       | j                  g d¢ddg|dddgd
dgddgddggg«       | j                  g d¢ddg|dg d¢g d¢g«       | j                  g d¢ddg|dddgd
dgddgg«       | j                  g d¢ddg|dddgd
dgddgddgddgg«       y )NrI   rK   r“   r   ©r   rK   rL   rð  ©r   rK   rL   rF   rR   ru  rL   )r   rK   rL   rF   rG   rH   r]   rF   rG   rH   )rG   rH   rI   rƒ   )r   rK   rL   rF   rG   rH   rI   rƒ   rƒ   r‘   r  )rv   r   rÇ  rw   )rU   ró   rô   s      rY   Útest_bad_size_ziz"_TestLinearFilter.test_bad_size_ziœ  sˆ	  € ä�Y‰Y�q‹\ˆØ×Ñ˜q˜c A 3¨¨B°°Ô4Ø×Ñ˜q !˜f q c¨2¨r°A°q°6Ô:Ø×Ñ˜q !˜f q c¨2¨r°Q°C°5Ô9Ø×Ñ˜q !˜f q c¨2¨r²9Ô=Ø×Ñši¨!¨¨b°"¸°s°eÔ<Ø×Ñši¨!¨¨b°"²iÔ@Ø×Ñ˜q˜c A q 6¨2¨r°A°q°6Ô:Ø×Ñ˜q˜c A q 6¨2¨r°Q°C°5Ô9Ø×Ñ˜q˜c A q 6¨2¨r²9Ô=Ø×Ñši¨!¨Q¨°°R¸!¸Ô=Ø×Ñši¨!¨Q¨°°R¸1¸#À¸s¸ÔDØ×Ñši¨!¨Q¨°°RºÔCØ×Ñši¨!¨Q¨°°RºÔFØ×Ñ˜q !˜f¢i°°R¸!¸Ô=Ø×Ñ˜q !˜f¢i°°R¸1¸#À¸s¸ÔDØ×Ñ˜q !˜f¢i°°RºÔCØ×Ñ˜q !˜f¢i°°RºÔFô �Y‰Y�r‹]×"Ñ" 5Ó)ˆà×Ñ˜q˜c A 3¨¨A°¨sÔ3ð 	×Ñ˜q !˜f q c¨2¨q²'Ô:Ø×Ñ˜q !˜f q c¨2¨q²G°9°+Ô>Ø×Ñ˜q !˜f q c¨2¨q°A°3¸¸¸a¸S°/ÔBØ×Ñ˜q !˜f q c¨2¨q°A°a°5°'Ô:Ø×Ñ˜q !˜f q c¨2¨q²9°+Ô>à×Ñši¨!¨¨b°!²]ÔCØ×Ñši¨!¨¨b°!²wºwÐ6GÐ5HÔIØ×Ñši¨!¨¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%Ð5HÔIØ×Ñši¨!¨¨b°!°q¸°e¸Q¸q¸E°]ÔCØ×Ñši¨!¨¨b°!²iÂ	Ð5JÔKà×Ñ˜q˜c A q 6¨2¨q²'Ô:Ø×Ñ˜q˜c A q 6¨2¨q²G°9°+Ô>Ø×Ñ˜q˜c A q 6¨2¨q°A°3¸¸¸a¸S°/ÔBØ×Ñ˜q˜c A q 6¨2¨q°A°a°5°'Ô:Ø×Ñ˜q˜c A q 6¨2¨q²9°+Ô>à×Ñ˜q˜c¢9¨b°!²]ÔCØ×Ñ˜q˜c¢9¨b°!²wºwÐ6GÐ5HÔIØ×Ñ˜q˜c¢9¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%Ð5HÔIØ×Ñ˜q˜c¢9¨b°!°q¸°e¸Q¸q¸E°]ÔCØ×Ñ˜q˜c¢9¨b°!²iÂ	Ð5JÔKà×Ñši¨!¨Q¨°°QºÔFØ×Ñši¨!¨Q¨°°Qº'Â'Ð9JÐ8KÔLØ×Ñši¨!¨Q¨°°Q¸!¸A¸ÀÀ!¸uÀaÈÀUÐ8KÔLØ×Ñši¨!¨Q¨°°Q¸!¸A¸ÀÀ!¸u¸ÔFØ×Ñši¨!¨Q¨°°QºÂ9Ð8MÔNð 	×Ñ˜q˜c A 3¨¨A°¨sÔ3à×Ñ˜q !˜f q c¨2¨q²)Ô<Ø×Ñ˜q !˜f q c¨2¨q°Q°C¸¸¸Q¸CÀÀÐ3DÐ2EÔFØ×Ñ˜q !˜f q c¨2¨q²<°.ÔAØ×Ñ˜q !˜f q c¨2¨q°A°3¸°s¸A¸3°-Ô@Ø×Ñ˜q !˜f q c¨2¨q°A°3¸°s¸A¸3À¸sÀAÀ3Ð2GÔHà×Ñši¨!¨¨b°!Ò5FÔGØ×Ñši¨!¨¨b°!¸¸!°u¸aÀ¸UÀAÀaÀ5È!ÈAÈÐ6OÐ5PÔQØ×Ñši¨!¨¨b°!²iÂ	Ð5JÔKØ×Ñši¨!¨¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%Ð5HÔIØ×Ñši¨!¨¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%ÈÈ1ÈÈqÐQRÈeÐ5TÔUà×Ñ˜q˜c A q 6¨2¨q²)Ô<Ø×Ñ˜q˜c A q 6¨2¨q°Q°C¸¸¸Q¸CÀÀÐ3DÐ2EÔFØ×Ñ˜q˜c A q 6¨2¨q²<°.ÔAØ×Ñ˜q˜c A q 6¨2¨q°A°3¸°s¸A¸3°-Ô@Ø×Ñ˜q˜c A q 6¨2¨q°A°3¸°s¸A¸3À¸sÀAÀ3Ð2GÔHà×Ñ˜q˜c¢9¨b°!Ò5FÔGØ×Ñ˜q˜c¢9¨b°!¸¸!°u¸aÀ¸UÀAÀaÀ5È!ÈAÈÐ6OÐ5PÔQØ×Ñ˜q˜c¢9¨b°!²iÂ	Ð5JÔKØ×Ñ˜q˜c¢9¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%Ð5HÔIØ×Ñ˜q˜c¢9¨b°!°q¸°e¸Q¸q¸EÀ1ÀQÀ%ÈÈ1ÈÈqÐQRÈeÐ5TÔUà×Ñši¨!¨Q¨°°QÒ8IÔJØ×Ñši¨!¨Q¨°°Q¸1¸Q¸%ÀÀ1ÀÀqÈÀeÈQÈqÈEÐ9RÐ8SÔTØ×Ñši¨!¨Q¨°°QºÂ9Ð8MÔNØ×Ñši¨!¨Q¨°°Q¸!¸A¸ÀÀ!¸uÀaÈÀUÐ8KÔLØ×Ñši¨!¨Q¨°°Q¸!¸A¸ÀÀ!¸uÀaÈÀUÈAÈaÈ5ÐRSÐTUÐQVÐ8WÕXr[   c                 ó8  — | j                  d«      }| j                  dg«      }| j                  dg«      }| j                  g «      }t        ||||¬«      \  }}t        ||«       t	        |j
                  | j
                  «       t	        |j                  d«       y )N)rH   rK   rk  r   )rO  rN  r$   r   r
   rè   rÙ   )rU   rk   rV   rW   rl  rl   rp  s          rY   Útest_empty_ziz_TestLinearFilter.test_empty_ziü  s‚   € à�M‰M˜$ÓˆØ×Ñ ˜sÓ#ˆØ×Ñ ˜sÓ#ˆØ×Ñ Ó#ˆÜ˜˜1˜a BÔ'‰ˆˆ2Ü! ! QÔ'Ü�R—X‘X˜tŸz™zÔ*Ü�R—W‘W˜aÕ r[   c                 óÖ   — | j                  dg«      }| j                  dg«      }t        ||ddg«      }t        ||ddg«      }t        ||ddg«      }t        ||«       t        ||«       y )NrK   rQ  r   TF)rN  r-   r   )rU   rV   rW   rl  Úzi_1Úzi_2s         rY   Útest_lfiltic_bad_ziz%_TestLinearFilter.test_lfiltic_bad_zi  sp   € à×Ñ ˜sÓ#ˆØ×Ñ ˜sÓ#ˆä�Q˜˜B ˜7Ó#ˆÜ�q˜!˜a ˜VÓ$ˆÜ�q˜!˜d E˜]Ó+ˆÜ˜2˜tÔ$Ü˜2˜tÕ$r[   c                 ó6  — | j                  dg«      }| j                  g d¢«      }| j                  ddg«      }| j                  dg«      }| j                  dg«      }| j                  ddg«      }t        ||||¬«      \  }}t        ||«       t        ||«       y )	NrK   rh  rL   rƒ   r^  rD  é¸ÿÿÿrk  ©rN  r$   r   ©	rU   rV   rW   rl  rk   ÚyeÚzferl   rp  s	            rY   Útest_short_x_FIRz"_TestLinearFilter.test_short_x_FIR  sš   € ð ×Ñ ˜sÓ#ˆØ×ÑšzÓ*ˆØ×Ñ  A Ó'ˆØ×Ñ ˜tÓ$ˆØ×Ñ  Ó%ˆØ× Ñ  ! S Ó*ˆÜ˜˜1˜a BÔ'‰ˆˆ2Ü! ! RÔ(Ü! " cÕ*r[   c                 ó8  — | j                  ddg«      }| j                  g d¢«      }| j                  ddg«      }| j                  dg«      }| j                  dg«      }| j                  ddg«      }t        ||||¬	«      \  }}t        ||«       t        ||«       y )
NrK   rh  rL   rƒ   r^  rD  i½ÿÿÿrÓ  rk  rÔ  rÕ  s	            rY   Útest_short_x_IIRz"_TestLinearFilter.test_short_x_IIR  sœ   € ð ×Ñ  1˜vÓ&ˆØ×ÑšzÓ*ˆØ×Ñ  A Ó'ˆØ×Ñ ˜tÓ$ˆØ×Ñ  Ó%ˆØ× Ñ  # s Ó,ˆÜ˜˜1˜a BÔ'‰ˆˆ2Ü! ! RÔ(Ü! " cÕ*r[   c                 ó:  — | j                  d«      }| j                  ddg«      }|j                  «       }| j                  ddg«      }|j                  «       }| j                  g d¢«      }t        |||«      }t	        ||«       t        ||«       t        ||«       y r\  ©rO  rN  rë  r$   r   r
   ©rU   rk   rW   Úb0rV   Úa0rb  Úy_fs           rY   Útest_do_not_modify_a_b_IIRz,_TestLinearFilter.test_do_not_modify_a_b_IIR,  s‹   € Ø�M‰M˜$ÓˆØ×Ñ  2˜wÓ'ˆØ�V‰V‹XˆØ×Ñ  T˜{Ó+ˆØ�V‰V‹XˆØ× Ñ Ò!5Ó6ˆÜ�a˜˜AÓˆÜ! # sÔ+Ü�Q˜ÔÜ�Q˜Õr[   c                 ó8  — | j                  d«      }| j                  g d¢«      }|j                  «       }| j                  dg«      }|j                  «       }| j                  g d¢«      }t        |||«      }t	        ||«       t        ||«       t        ||«       y )Nr]  rH  rL   )r   rû  rK   rL   rF   rZ  rÜ  rÝ  s           rY   Útest_do_not_modify_a_b_FIRz,_TestLinearFilter.test_do_not_modify_a_b_FIR8  s…   € Ø�M‰M˜$ÓˆØ×ÑšyÓ)ˆØ�V‰V‹XˆØ×Ñ ˜sÓ#ˆØ�V‰V‹XˆØ× Ñ Ò!6Ó7ˆÜ�a˜˜AÓˆÜ! # sÔ+Ü�Q˜ÔÜ�Q˜Õr[   rV   rQ  rW   c                 óÖ   — t         j                  j                  d«      }t        t	        t        j
                  dg«      t        j
                  dg«      |«      t	        |||«      «       y )NrM   rQ  )rv   rä   rç   r   r$   r   )rU   rV   rW   r£  s       rY   Útest_scalar_inputz#_TestLinearFilter.test_scalar_inputD  sJ   € ô �y‰y�‰˜rÓ"ˆÜÜ”B—H‘H˜c˜U“O¤R§X¡X¨s¨e£_°dÓ;Ü�A�q˜$Óõ	!r[   c                 óì   — t        j                  g d¢t        ¬«      }t        j                  g d¢t        ¬«      }t        j                  d¬«      5  t        ||g d¢«       d d d «       y # 1 sw Y   y xY w)Nr®   r  r¯   r
  r  r^   )rv   r  r  r  r  r$   r¥   s      rY   r  z(_TestLinearFilter.test_dtype_deprecationL  sV   € ô �J‰JÒ)´Ô8ˆÜ�J‰JÒ2¼&ÔAˆÜ×#Ñ#Ð*IÔJñ 	(Ü�A�qš,Ô'÷	(÷ 	(ñ 	(ús   ÁA*Á*A3N)$r§   r¨   r©   rO  rN  rc  rf  rq  rs  ry  r€  r‡  rŒ  r™  r§  rª  r®  r¹  r»  rÅ  rÇ  rË  rÍ  rÑ  rØ  rÚ  rá  rã  r  r  rr  rv   r   rå  r  r  rª   r[   rY   rK  rK  ½  s  „ ò%ò
5ò9ò9ò	,ò	,ò.ò.ò,ò,ò.ò0ò(.ò0ò(Jò**ò7ò6>ò^Yò@	!ò	%ò+ò+ò
ò
ð ‡[�[×Ñ˜S 3¨¨¨x¨r¯x©x¸«}Ð"=Ó>Ø‡[�[×Ñ˜S 3¨¨¨x¨r¯x©x¸«}Ð"=Ó>ñ!ó ?ó ?ð!ð ‡[�[×Ññ(ó ñ(r[   rK  c                   ó0   — e Zd Z ej                  d«      Zy)ÚTestLinearFilterFloat32rÚ   N©r§   r¨   r©   rv   rè   rª   r[   rY   rè  rè  U  ó   „ ØˆB�H‰H�S‹M�Er[   rè  c                   ó0   — e Zd Z ej                  d«      Zy)ÚTestLinearFilterFloat64rŽ   Nré  rª   r[   rY   rì  rì  Y  rê  r[   rì  rS  c                   ó0   — e Zd Z ej                  d«      Zy)ÚTestLinearFilterFloatExtendedr&  Nré  rª   r[   rY   rî  rî  ]  ó   „ àˆB�H‰H�S‹M�Er[   rî  c                   ó0   — e Zd Z ej                  d«      Zy)ÚTestLinearFilterComplex64ÚFNré  rª   r[   rY   rñ  rñ  b  rê  r[   rñ  c                   ó0   — e Zd Z ej                  d«      Zy)ÚTestLinearFilterComplex128ÚDNré  rª   r[   rY   rô  rô  f  rê  r[   rô  c                   ó0   — e Zd Z ej                  d«      Zy)ÚTestLinearFilterComplexExtendedÚGNré  rª   r[   rY   r÷  r÷  j  rï  r[   r÷  c                   ó6   — e Zd Z ej                  d«      Zd„ Zy)ÚTestLinearFilterDecimalrQ  c                 ó*   — t        t        |«      «      S r(  )r   Ústr©rU   rk   s     rY   rX  zTestLinearFilterDecimal.types  s   € Ü”s˜1“v‹Ðr[   N)r§   r¨   r©   rv   rè   rX  rª   r[   rY   rú  rú  o  s   „ àˆB�H‰H�S‹M€Eór[   rú  c                   ó4   — e Zd Z ej                  d«      ZeZy)ÚTestLinearFilterObjectrQ  N)r§   r¨   r©   rv   rè   rh  rX  rª   r[   rY   rÿ  rÿ  w  s   „ àˆB�H‰H�S‹M€EØ�Dr[   rÿ  c                  ó  — t        t        d«      r'dt        j                  v rt        j                  d«       t        t        t        dgdgg d¢«       t        t        t        dgd gg d¢«       t        t        t        d gdgg d¢«       y )NÚabiflagsrŽ   z'test is flaky when run with python3-dbgrQ  )rQ  NrW  ©rQ  rW  rY  )ÚhasattrÚsysr  r  r{  r£   Ú	TypeErrorr$   rª   r[   rY   Útest_lfilter_bad_objectr  }  sc   € ô Œs�JÔ C¬3¯<©<Ñ$7Ü�‰Ð=Ô>Ü”)œW s e¨c¨UÒ4DÔEÜ”)œW s e¨d¨V²_ÔEÜ”)œW t f¨s¨e²_ÕEr[   c                  ó>   — t        t        t        ddgddgg d¢«       y )NrL   rF   rG   rH   )rK   rL   rF   rG   rH   )r£   ÚNotImplementedErrorr$   rª   r[   rY   Ú!test_lfilter_notimplemented_inputr	  Š  s   € äÔ%¤w°°1°¸¸!°uºkÕJr[   Údt)Úmarksc                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestCorrelateRealc                 óð   — t        j                  ddd«      j                  |«      }t        j                  ddd«      j                  |«      }t        j                  g d¢«      j                  |«      }|||fS )Nr   rF   rG   rK   rL   )r   rL   rH   r‘   rF   )rv   rÖ  rê   r   ©rU   r
  rV   rW   rb  s        rY   Ú_setup_rank1zTestCorrelateReal._setup_rank1–  sa   € Ü�K‰K˜˜1˜aÓ ×'Ñ'¨Ó+ˆÜ�K‰K˜˜1˜aÓ ×'Ñ'¨Ó+ˆä�h‰h’Ó'×.Ñ.¨rÓ2ˆØ�!�SˆyÐr[   c                 óÄ   — d}	 t        j                  |«      }t        |d«      r+t        dt        j                  |j
                  «      z  «      }|S # t        $ r Y |S w xY w)NrI   Ú
resolutionr^  )rv   rz  r  r"  Úlog10r  Ú	Exception)rU   Úres_dtr²  Údt_infos       rY   Úequal_tolerancez!TestCorrelateReal.equal_tolerance�  sb   € àˆð	Ü—h‘h˜vÓ&ˆGÜ�w Ô-Ü˜d¤2§8¡8¨G×,>Ñ,>Ó#?Ñ?Ó@�ð ˆøô ò 	ØØˆð	ús   „AA Á	AÁAc                 óˆ   — |t         j                  k(  r| j                  t         j                  «      S | j                  |«      S r(  )rv   rY  r  rÔ   )rU   r  s     rY   Úequal_tolerance_fftz%TestCorrelateReal.equal_tolerance_fft¨  s6   € ð ”R—]‘]Ò"Ø×'Ñ'¬¯
©
Ó3Ð3à×'Ñ'¨Ó/Ð/r[   c                 óÆ  — |t         k(  r-t        t        d«      gt        d«      g«      }t        |d«       y | j                  |«      \  }}}t	        ||d¬«      }t	        ||d¬«      }t        ||| j                  |j                  «      ¬«       t        ||| j                  |j                  «      ¬«       t        |j                  |«       t        |j                  |«       y )NrG   rF   rs   r   rt   r±  )	r   r    r
   Ú_setup_rank3r   r   r  rè   r  )rU   r
  ru   rV   rW   rb  Úy_fftÚy_directs           rY   Útest_methodzTestCorrelateReal.test_method°  s½   € Ø”Š=Ü'¬°«¨´w¸q³z°lÓCˆFÜ˜ Õ*à×)Ñ)¨"Ó-‰IˆAˆq�#Ü˜a ¨5Ô1ˆEÜ   A¨hÔ7ˆHä% cØ&+Ø.2×.FÑ.FÀuÇ{Á{Ó.SõVô & cØ&.Ø.2×.BÑ.BÀ8Ç>Á>Ó.RõUô ˜Ÿ™ bÔ)Ü˜Ÿ™¨Õ,r[   c                 ó  — | j                  |«      \  }}}t        ||d«      }t        ||dd «       t        |j                  |«       t        ||d«      }t        ||dd d d d…   «       t        |j                  |«       y )Nr–   rK   rG   r“   ©r  r   r   r
   rè   ©rU   r
  rV   rW   rb  rl   s         rY   Útest_rank1_validz"TestCorrelateReal.test_rank1_validÂ  sz   € Ø×%Ñ% bÓ)‰	ˆˆ1ˆcÜ�a˜˜GÓ$ˆÜ! ! S¨¨1 XÔ.Ü�Q—W‘W˜bÔ!ô �a˜˜GÓ$ˆÜ! ! S¨¨1 X©d°¨d¡^Ô4Ü�Q—W‘W˜bÕ!r[   c                 ó’   — | j                  |«      \  }}}t        ||d«      }t        ||d d «       t        |j                  |«       y )Nr_   r“   r   r!  s         rY   Útest_rank1_samez!TestCorrelateReal.test_rank1_sameÍ  sD   € Ø×%Ñ% bÓ)‰	ˆˆ1ˆcÜ�a˜˜FÓ#ˆÜ! ! S¨¨" XÔ.Ü�Q—W‘W˜bÕ!r[   c                 óŒ   — | j                  |«      \  }}}t        ||d«      }t        ||«       t        |j                  |«       y )Nr•   r   r!  s         rY   Útest_rank1_fullz!TestCorrelateReal.test_rank1_fullÓ  s>   € Ø×%Ñ% bÓ)‰	ˆˆ1ˆcÜ�a˜˜FÓ#ˆÜ! ! SÔ)Ü�Q—W‘W˜bÕ!r[   c                 ó®  — t        j                  ddd«      j                  dd¬«      j                  |«      }t        j                  ddd«      j                  d	d¬«      j                  |«      }t	        g d
¢g d¢g d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢g d¢g d¢ggt         j
                  ¬«      j                  |«      }|||fS )Nr   rl  r/  )rL   rG   rH   rò  )ÚorderrQ   r-  r�   )rü  g      g@g     €@g     €Œ@ç     @•@g     À‹@g     €}@g      d@)g      G@g      {@g     ˜�@g     Àœ@g     à¤@ç     ˆš@g      ‹@g      p@)ç     À`@g      ‡@g     ø™@g      ¥@ç      ®@g     ä¢@g     @’@g      s@)g     @p@g     À�@g     0ž@g     à§@g     p°@g     (¤@g     `“@g     Àt@)g     @i@g     À„@ç     (”@g      Ÿ@g      ¥@g     Ø˜@g     @†@g     Àb@)g     €\@g     €u@g     „@g      Ž@g      ”@g     °†@g     €r@g      C@)g      7@g      y@g     ,�@ç      œ@g     ¥@g     $›@g     @Œ@g     Pr@)r+  g     ÀŒ@g     ì @g     À¬@g      ´@g     Ô©@g      ™@g      }@)g     Pt@g      ˜@g     Rª@g     ˆµ@g     (¾@g     K²@g      ¡@g     ¸€@)g     Ø�@g     °ž@g     f®@g     °·@g     (À@g     }³@g     (¢@g     ¨�@)g      {@r)  g     4¤@r,  g     �´@g     Ü§@g     €”@ç     Àl@)g      n@g     à…@g     ”@g     €�@g     €£@g     œ•@g      €@rU  )g      6@g     Àj@g     €€@g      Œ@g     Ð”@g     pŠ@g     àz@g     €`@)g     €U@g     @~@g     (‘@r.  g     P¤@g     ™@g      ˆ@g     Ài@)g     €g@g     ‰@r*  g     X¥@g     ˜­@g      ¡@g     Ð�@g     @k@)g     @s@g     p�@g     xž@g     h§@g     ¨¯@g     À¢@g     Ø�@r/  )r/  g      …@r-  g      ž@g     ¤@g     È–@g      ‚@g     €S@)g     €_@g      v@g     àƒ@g     àŒ@g     ð’@g     p„@g     @m@rü  r  )rv   rÖ  rw   rê   r   rÔ   r  s        rY   r  zTestCorrelateReal._setup_rank3Ù  sç   € Ü�K‰K˜˜2˜rÓ"×*Ñ*¨9¸CÐ*Ó@×GÑGØóˆä�K‰K˜˜2˜rÓ"×*Ñ*¨9¸CÐ*Ó@×GÑGØóˆô ÒEÚIÚKÚKÚJÚFðHò JÚKÚLÚLÚLÚIðKò GÚIÚKÚLÚIÚEðGðHô( Ÿ*™*ô)&÷( '-¡f¨R£jð) 	ð, �!�SˆyÐr[   c           	      ó8  — | j                  |«      \  }}}t        ||d«      }t        ||dd…dd…dd…f   «       t        |j                  |«       t        ||d«      }t        ||dd…dd…dd…f   d d d…d d d…d d d…f   «       t        |j                  |«       y )Nr–   rK   rL   rG   rF   rH   r“   ©r  r   r   r
   rè   r!  s         rY   Útest_rank3_validz"TestCorrelateReal.test_rank3_valid÷  s¬   € Ø×%Ñ% bÓ)‰	ˆˆ1ˆcÜ�a˜˜GÓ$ˆÜ! ! S¨¨1¨¨a°¨c°1°Q°3¨Ñ%7Ô8Ü�Q—W‘W˜bÔ!ô �a˜˜GÓ$ˆÜ! ! S¨¨1¨¨a°¨c°1°Q°3¨Ñ%7¹¸"¸¹dÀ¸dÁDÀbÀDÐ8HÑ%IÔJÜ�Q—W‘W˜bÕ!r[   c                 ó¤   — | j                  |«      \  }}}t        ||d«      }t        ||dd…dd…dd…f   «       t        |j                  |«       y )Nr_   r   r“   rK   r§  r1  r!  s         rY   Útest_rank3_samez!TestCorrelateReal.test_rank3_same  sV   € Ø×%Ñ% bÓ)‰	ˆˆ1ˆcÜ�a˜˜FÓ#ˆÜ! ! S¨¨2¨¨q°¨t°Q°r°TÐ)9Ñ%:Ô;Ü�Q—W‘W˜bÕ!r[   c                 óŠ   — | j                  |«      \  }}}t        ||«      }t        ||«       t        |j                  |«       y r(  r1  r!  s         rY   Útest_rank3_allz TestCorrelateReal.test_rank3_all  s;   € Ø×%Ñ% bÓ)‰	ˆˆ1ˆcÜ�a˜‹OˆÜ! ! SÔ)Ü�Q—W‘W˜bÕ!r[   N)r§   r¨   r©   r  r  r  r  r"  r$  r&  r  r2  r4  r6  rª   r[   rY   r  r  �  s9   „ òò	ò0ò-ò$	"ò"ò"òò<	"ò"ó"r[   r  c                   ó\   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  d„ «       Z
y)ÚTestCorrelatec                 ó  — t        j                  dd«      j                  d«      }t        j                  dd«      j                  d«      }t        t        t
        g||f¢­i ddi¤Ž t        t        t
        g||f¢­i ddi¤Ž y rÃ   )rv   r   rw   r£   r¤   r   r¥   s      rY   rÇ   z!TestCorrelate.test_invalid_shapes  ss   € ô �I‰I�a˜‹O×#Ñ# FÓ+ˆÜ�I‰I�b˜!Ó×$Ñ$ VÓ,ˆä”j¤)ÐJ¨q°!¨fÒJ¸ÀÐ8IÒJÜ”j¤)ÐJ¨q°!¨fÒJ¸ÀÐ8IÓJr[   c                 ó  — g d¢}g d¢}t        t        t        ||d¬«       t        t        t        ||dd¬«       t        t        t        ||dd	¬«       t        t        t        ||d
d¬«       t        t        t        ||dd¬«       y rœ   ©r£   r¤   r   r¥   s      rY   r¦   z!TestCorrelate.test_invalid_params  sd   € ÚˆÚˆÜ”j¤)¨Q°¸Õ?Ü”j¤)¨Q°¸ÀuÕMÜ”j¤)¨Q°¸ÀhÕOÜ”j¤)¨Q°¸ÀwÕOÜ”j¤)¨Q°¸ÀwÖOr[   c                 ó,  — t        t        t        dgdd¬«       t        t        t        ddgd¬«       t        t        t        dgdd¬«       t        t        t        ddgd¬«       t        t        t        dgdgg«       t        t        t        dgd«       y r  r;  r  s    rY   r  z"TestCorrelate.test_mismatched_dims'  sn   € ä”j¤)¨a¨S°!¸HÕEÜ”j¤)¨Q°°¸HÕEÜ”j¤)¨a¨S°!¸EÕBÜ”j¤)¨Q°°¸EÕBÜ”j¤)¨a¨S°A°3°%Ô8Ü”j¤)¨a¨S°!Õ4r[   c                 óò   — g d¢}ddg}t        t        ||d¬«      g d¢«       g d¢}g d¢}t        t        ||d¬«      g d¢«       t        t        ||d	¬«      g d
¢«       t        t        ||d¬«      dg«       y )NrJ   rG   rH   r_   r`   )rH   é   rQ   r‚   )r…   rP   rQ   r•   )rI   r…   rP   rQ   rR   r–   rP   )r   r   r¥   s      rY   Útest_numpy_fastpathz!TestCorrelate.test_numpy_fastpath0  si   € ÚˆØ�ˆFˆÜœ	 ! Q¨VÔ4²kÔBâˆÚˆÜœ	 ! Q¨VÔ4²lÔCÜœ	 ! Q¨VÔ4Ò6IÔJÜœ	 ! Q¨WÔ5¸°tÕ<r[   c                 óæ   — t        j                  g d¢t        ¬«      }t        j                  g d¢t        ¬«      }t        j                  d¬«      5  t        ||«       d d d «       y # 1 sw Y   y xY wr	  )rv   r  r  r  r  r   r¥   s      rY   r  z$TestCorrelate.test_dtype_deprecation;  sS   € ô �J‰JÒ)´Ô8ˆÜ�J‰JÒ2¼&ÔAˆÜ×#Ñ#Ð*IÔJñ 	Ü�a˜ŒO÷	÷ 	ñ 	úr  N)r§   r¨   r©   rÇ   r¦   r  r?  r  r  r  r  rª   r[   rY   r8  r8    s6   „ ò
KòPò5ò	=ð ‡[�[×Ññó ñr[   r8  ra   ©r–   r_   r•   ÚbehindTFÚ
input_size)r  rd  r‚  rƒ  rù  i'  c                 óÎ  — t         j                  j                  d«      }|j                  |«      }t	        |dz  «      }|r*t        j
                  |j                  |«      |g«      }| }n||d  }|}t        ||| ¬«      }t        |j                  |j                  | ¬«      }	t        j                  |«      }
t        |	|
   |«       t        |	j                  |j                  «       y )Nr   rM   r`   )rv   rä   rå   r  r"  Úconcatenater   r   rÙ   Úargmaxr
   r„  )ra   rB  rC  rñ   Úin1ÚoffsetÚin2r¸   ÚcorrelationÚlagsÚ	lag_indexs              rY   Útest_correlation_lagsrM  D  sÄ   € ô
 �)‰)×
Ñ
 Ó
"€CØ
×
Ñ
˜jÓ
)€CÜ�˜B‘Ó€Fáä�n‰n˜c×1Ñ1°&Ó9¸3Ð?Ó@ˆØ�7‰ð �&�'ˆlˆØˆä˜C ¨4Ô0€KÜ˜CŸH™H c§h¡h°TÔ:€Dä—	‘	˜+Ó&€Iä��i‘ (Ô+ä�—‘˜[×.Ñ.Õ/r[   c                  ó€   — t        j                  t        d¬«      5  t        ddd¬«       d d d «       y # 1 sw Y   y xY w)NzMode asdfgh is invalidr  r  Úasdfghr`   )r  r	   r¤   r   rª   r[   rY   Ú"test_correlation_lags_invalid_moderP  `  s2   € Ü	�‰”zÐ)AÔ	Bñ 2Ü˜˜c¨Õ1÷2÷ 2ñ 2ús   œ4´=c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestCorrelateComplexc                 ó¤   — |t         j                  k(  rt         j                  }t        dt        j                  |«      j
                  z  dz  «      S )NrL   rF   )rv   rZ  Úcdoubler"  rz  Ú	precision)rU   r
  s     rY   r²  zTestCorrelateComplex.decimalo  s:   € Ø”—‘ÒÜ—‘ˆBÜ�1”r—x‘x “|×-Ñ-Ñ-°Ñ1Ó2Ð2r[   c                 ó  — t         j                  j                  d«       t         j                  j                  d«      j	                  |«      }|dt         j                  j                  d«      j	                  |«      z  z  }t         j                  j                  d«      j	                  |«      }|dt         j                  j                  d«      j	                  |«      z  z  }t        |j                  |j                  |¬«      t        |j                  |j                  |¬«      z   j	                  |«      }|dt        |j                  |j                  |¬«       t        |j                  |j                  |¬«      z   z  z  }|||fS )Nr  rM   r’   r‘   r`   )rv   rä   rê  rç   rê   r   rØ  Úimag)rU   r
  ra   rV   rW   rb  s         rY   r  z!TestCorrelateComplex._setup_rank1t  s!  € Ü
�	‰	�‰�qÔÜ�I‰I�O‰O˜BÓ×&Ñ& rÓ*ˆØ	ˆR”"—)‘)—/‘/ "Ó%×,Ñ,¨RÓ0Ñ0Ñ0ˆÜ�I‰I�O‰O˜AÓ×%Ñ% bÓ)ˆØ	ˆR”"—)‘)—/‘/ !Ó$×+Ñ+¨BÓ/Ñ/Ñ/ˆä˜Ÿ™ §¡¨dÔ3Ü˜Ÿ™ §¡¨dÔ3ñ4ß5;±V¸B³Zð 	àˆr”i §¡¨¯©°TÔ:Ð:Ü˜qŸv™v q§v¡v°DÔ9ñ:ñ ;ñ 	;ˆà�!�SˆyÐr[   c                 óX  — | j                  |d«      \  }}}t        ||d«      }t        ||| j                  |«      ¬«       t	        |j
                  |«       t        ||d«      }t        ||d d d…   j                  «       | j                  |«      ¬«       t	        |j
                  |«       y )Nr–   r±  r“   )r  r   r   r²  r
   rè   Úconjr!  s         rY   r"  z%TestCorrelateComplex.test_rank1_valid�  s�   € Ø×%Ñ% b¨'Ó2‰	ˆˆ1ˆcÜ�a˜˜GÓ$ˆÜ! ! S°$·,±,¸rÓ2BÕCÜ�Q—W‘W˜bÔ!ô �a˜˜GÓ$ˆÜ! ! S©¨2¨¡Y§^¡^Ó%5¸t¿|¹|ÈBÓ?OÕPÜ�Q—W‘W˜bÕ!r[   c                 ó°   — | j                  |d«      \  }}}t        ||d«      }t        ||| j                  |«      ¬«       t	        |j
                  |«       y )Nr_   r±  ©r  r   r   r²  r
   rè   r!  s         rY   r$  z$TestCorrelateComplex.test_rank1_sameŒ  óK   € Ø×%Ñ% b¨&Ó1‰	ˆˆ1ˆcÜ�a˜˜FÓ#ˆÜ! ! S°$·,±,¸rÓ2BÕCÜ�Q—W‘W˜bÕ!r[   c                 ó°   — | j                  |d«      \  }}}t        ||d«      }t        ||| j                  |«      ¬«       t	        |j
                  |«       y )Nr•   r±  r[  r!  s         rY   r&  z$TestCorrelateComplex.test_rank1_full’  r\  r[   c                 óœ   — t        j                  g d¢|¬«      }t        j                  g d¢|¬«      }t        ||«      }t        |g d¢«       y )N©r”   rg   r£  r  ©y      ð?      @y       @      @y      @      @y      @      @)r”   ù      $@       Àù      <@      Àù      6@      Ày      0@      Ày       @      À)rv   r   r   r
   ©rU   r
  rŽ   Úkrl   s        rY   Útest_swap_fullz#TestCorrelateComplex.test_swap_full˜  s:   € Ü�H‰HÒ-°RÔ8ˆÜ�H‰HÒ5¸RÔ@ˆÜ�a˜‹OˆÜ�QÒLÕMr[   c                 óL   — g d¢}g d¢}t        ||d¬«      }t        |g d¢«       y )Nr_  r`  r_   r`   )ra  rb  rc  )r   r
   rd  s        rY   Útest_swap_samez#TestCorrelateComplex.test_swap_samež  s%   € Ú$ˆÚ,ˆÜ�a˜ Ô(ˆÜ�QÒ3Õ4r[   c                 óR  — t         j                  j                  ddd«      j                  |«      }|dt         j                  j                  ddd«      j                  |«      z  z  }t         j                  j                  ddd«      j                  |«      }|dt         j                  j                  ddd«      j                  |«      z  z  }t	        |j
                  |j
                  «      t	        |j                  |j                  «      z   j                  |«      }|dt	        |j
                  |j                  «       t	        |j                  |j
                  «      z   z  z  }t	        ||d«      }t        ||| j                  |«      dz
  ¬«       t        |j                  |«       y )	NrM   r‘   rI   r’   rG   r•   rK   r±  )rv   rä   rç   rê   r   rØ  rW  r   r²  r
   rè   r!  s         rY   Ú
test_rank3zTestCorrelateComplex.test_rank3¤  s<  € Ü�I‰I�O‰O˜B  1Ó%×,Ñ,¨RÓ0ˆØ	ˆR”"—)‘)—/‘/ " a¨Ó+×2Ñ2°2Ó6Ñ6Ñ6ˆÜ�I‰I�O‰O˜A˜q !Ó$×+Ñ+¨BÓ/ˆØ	ˆR”"—)‘)—/‘/ ! Q¨Ó*×1Ñ1°"Ó5Ñ5Ñ5ˆä˜Ÿ™ §¡Ó(Ü˜1Ÿ6™6 1§6¡6Ó*ñ+ß,2©F°2«Jð 	àˆr”i §¡¨¯©Ó/Ð/´)¸A¿F¹FÀAÇFÁFÓ2KÑKÑLÑLˆä�a˜˜FÓ#ˆÜ! ! S°$·,±,¸rÓ2BÀQÑ2FÕGÜ�Q—W‘W˜bÕ!r[   c           	      óÄ  — t        j                  t         j                  j                  «       «      j	                  |«      }|dt        j                  t         j                  j                  «       «      j	                  |«      z  z  }t        j                  t         j                  j                  «       «      j	                  |«      }|dt        j                  t         j                  j                  «       «      j	                  |«      z  z  }t        |j                  |j                  «      t        |j                  |j                  «      z   j	                  |«      }|dt        j                  t        |j                  |j                  «       t        |j                  |j                  «      z   «      z  z  }t        ||d«      }t        ||| j                  |«      dz
  ¬«       t        |j                  |«       t        t        dgdg«      t        dd«      «       t        t        dgdg«      t        dd«      «       t        t        dgdg«      t        dd«      «       y )Nr’   r•   rK   r±  rj   ù              @rG   )rv   r   rä   rç   rê   r   rØ  rW  r   r²  r
   rè   r!  s         rY   Ú
test_rank0zTestCorrelateComplex.test_rank0²  s°  € Ü�H‰H”R—Y‘Y—_‘_Ó&Ó'×.Ñ.¨rÓ2ˆØ	ˆR”"—(‘(œ2Ÿ9™9Ÿ?™?Ó,Ó-×4Ñ4°RÓ8Ñ8Ñ8ˆÜ�H‰H”R—Y‘Y—_‘_Ó&Ó'×.Ñ.¨rÓ2ˆØ	ˆR”"—(‘(œ2Ÿ9™9Ÿ?™?Ó,Ó-×4Ñ4°RÓ8Ñ8Ñ8ˆä˜Ÿ™ §¡Ó(Ü˜1Ÿ6™6 1§6¡6Ó*ñ+ß,2©F°2«Jð 	àˆr”B—H‘Hœi¨¯©°·±Ó7Ð7Ü& q§v¡v¨q¯v©vÓ6ñ7ó 8ñ 8ñ 	8ˆô �a˜˜FÓ#ˆÜ! ! S°$·,±,¸rÓ2BÀQÑ2FÕGÜ�Q—W‘W˜bÔ!ä”Y ˜s R DÓ)¬9°Q¸Ó+;Ô<Ü”Y ˜t b TÓ*¬I°b¸"Ó,=Ô>Ü”Y ˜t a SÓ)¬9°R¸Ó+;Õ<r[   N)r§   r¨   r©   r²  r  r"  r$  r&  rf  rh  rj  rm  rª   r[   rY   rR  rR  e  s0   „ ò3ò
ò	"ò"ò"òNò5ò"ó=r[   rR  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestCorrelate2dc           
      óŽ  — t        j                  d«      }t        j                  g d¢«      }dD �]  }t        t        j                  |||¬«      t        j                  |||¬«      «       t        t        j                  t        j                  |g|g|¬«      «      t        j                  |||¬«      «       |dk(  sŒ�t        t        j                  |||¬«      t        j                  |||¬«      «       t        t        j                  t        j                  |g|g|¬«      «      t        j                  |||¬«      «       �Œ y )NrH   rz  r{  r`   r–   )rv   r   r   r   r   r   r|  r   r}  s       rY   Ú test_consistency_correlate_funcsz0TestCorrelate2d.test_consistency_correlate_funcsÈ  s  € ä�I‰I�a‹LˆÜ�H‰H’]Ó#ˆØ-ó 	GˆDÜ¤§¡¨Q°¸Ô =Ü &× 0Ñ 0°°A¸DÔ AôCä¤§
¡
¬6×+=Ñ+=¸q¸cÀAÀ3ØCGô,Ió !Jä &× 0Ñ 0°°A¸DÔ AôCð
 �w‹Ü#¤B§L¡L°°A¸DÔ$AÜ$*×$4Ñ$4°Q¸ÀÔ$EôGä#¤B§J¡J¬v×/AÑ/AÀ1À#ÈÀsØGKô0Mó %Nä$*×$4Ñ$4°Q¸ÀÔ$EöGñ	Gr[   c                 ó0  — t        j                  dd«      j                  d«      }t        j                  dd«      j                  d«      }t        t        t
        j                  g||f¢­i ddi¤Ž t        t        t
        j                  g||f¢­i ddi¤Ž y rÃ   )rv   r   rw   r£   r¤   r   r   r¥   s      rY   rÇ   z#TestCorrelate2d.test_invalid_shapesÛ  s   € ô �I‰I�a˜‹O×#Ñ# FÓ+ˆÜ�I‰I�b˜!Ó×$Ñ$ VÓ,ˆä”j¤&×"4Ñ"4ÐS¸¸1°vÒSÀ&È'ÐARÒSÜ”j¤&×"4Ñ"4ÐS¸¸1°vÒSÀ&È'ÐARÓSr[   c                 óÜ   — t        t        j                  dggdgg«      d«       t        t        j                  dggdgg«      d«       t        t        j                  dggdgg«      d«       y )NrK   rj   ù       €       Àrl  rI   rG   y              (@)r
   r   r   r  s    rY   Útest_complex_inputz"TestCorrelate2d.test_complex_inputç  s_   € Ü”V×'Ñ'¨!¨¨°°¨vÓ6¸Ô<Ü”V×'Ñ'¨"¨¨°"°°Ó7¸Ô;Ü”V×'Ñ'¨"¨¨°!°°Ó6¸Õ<r[   N)r§   r¨   r©   rq  rÇ   ru  rª   r[   rY   ro  ro  Æ  s   „ òGò&
Tó=r[   ro  c                   óˆ   — e Zd Zd„ Zd„ Zej                  j                  dej                  ej                  g«      d„ «       Zy)ÚTestLFilterZIc                 ó¾   — t        j                  g d¢«      }t        j                  g d¢«      }t        j                  ddg«      }t        ||«      }t        ||«       y )N)rQ  rX  rû  )rQ  rü  rW  r€  rX  )rv   r   r%   r   )rU   rV   rW   Úzi_expectedrl  s        rY   rZ   zTestLFilterZI.test_basicï  sG   € Ü�H‰HÒ%Ó&ˆÜ�H‰H’_Ó%ˆÜ—h‘h  T˜{Ó+ˆÜ˜˜1ÓˆÜ! " kÕ2r[   c                 ó¸   — t        j                  g d¢«      }t        j                  g d¢«      }t        ||«      }t        d|z  d|z  «      }t        ||d¬«       y )N)rL   r‘   rH   )rK   rK   r‘   rL   r   ré  )rv   r   r%   r   )rU   rW   rV   rž  Úzi2s        rY   Útest_scale_invariancez#TestLFilterZI.test_scale_invarianceö  sL   € ô �H‰H’YÓˆÜ�H‰H’YÓˆÜ˜˜AÓˆÜ˜˜1™˜a ™cÓ"ˆÜ˜˜S uÖ-r[   rè   c                 óÜ   — t        j                  d|¬«      }t        j                  dg|¬«      }t        t        j                  t        j                  ||«      «      j                  |«       y )Nr‘   r  rK   )rv   rˆ  r   r
   rØ  r   r%   rè   )rU   rè   rW   rV   s       rY   rv  zTestLFilterZI.test_typesÿ  sJ   € ä�H‰H�a Ô&ˆÜ�H‰H�a�S Ô&ˆÜ”R—W‘WœV×.Ñ.¨q°!Ó4Ó5×;Ñ;¸UÕCr[   N)r§   r¨   r©   rZ   r|  r  r  rr  rv   rÓ   rÔ   rv  rª   r[   rY   rw  rw  í  sA   „ ò3ò.ð ‡[�[×Ñ˜W r§z¡z°2·:±:Ð&>Ó?ñDó @ñDr[   rw  c                   ó@   — e Zd ZdZ	 	 d
d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
y)ÚTestFiltFiltÚtfNc           
      ó¨   — | j                   dk(  rt        |Ž \  }}	t        ||	||||||«      S | j                   dk(  rt        |Ž }
t	        |
||||«      S y )Nr€  Úsos)Úfiltfilt_kindr(   r&   r)   r0   )rU   Úzpkrk   rÊ  rÇ  Úpadlenru   ÚirlenrW   rV   r‚  s              rY   r&   zTestFiltFilt.filtfilt		  se   € à×Ñ Ò%Ü˜3�<‰DˆAˆqÜ˜A˜q ! T¨7°F¸FÀEÓJÐJØ×Ñ 5Ò(Ü˜3�-ˆCÜ˜s A t¨W°fÓ=Ð=ð )r[   c                 óœ   — t        g d¢g d¢«      }| j                  |t        j                  d«      «      }t	        |t        d«      d¬«       y )NrJ   rR   g6Â‹{ðÍ=rû  )r2   r&   rv   r   r   )rU   r„  r¹   s      rY   rZ   zTestFiltFilt.test_basic	  s6   € Ü’Y¢	Ó*ˆØ�m‰m˜C¤§¡¨2£Ó/ˆÜ˜œV B›Z¨hÖ7r[   c                 óä  — d}t        j                  dd|dz   «      }t        j                  dt         j                  z  |z  «      }t        j                  dt         j                  z  |z  «      }||z   }t	        ddd	¬
«      }t        j
                  |d   «      j                  «       }d}t        t        j                  t        j                  |«      t        j                  |«      z  «      «      }	| j                  |||	¬«      }
t        j
                  |
|z
  «      j                  «       }t        |dk  «       t        j                  |||z   g«      }| j                  |||	d¬«      }t        |j                  |j                  «       t        j
                  ||z
  «      j                  «       }t        |dk  «       | j                  ||j                  |	d¬«      }t        ||j                  «       y )NéÐ  r   rQ  rK   rM   iô  r‘   ç      À?r„  r±  râ   )r…  rÝ   ©r…  rÊ  )rv   rÖ  rÙ  r  r'   r  r  r"  ÚceilÚlogr&   r   Úvstackr
   r„  rA  )rU   r  r÷   ÚxlowÚxhighrk   r„  ÚrÚepsrì   rl   ÚerrÚx2dÚy2dÚy2dts                  rY   Ú	test_sinezTestFiltFilt.test_sine	  s‚  € ØˆÜ�K‰K˜˜3  q¡Ó)ˆä�v‰v�eœbŸe™e‘m aÑ'Ó(ˆÜ—‘�w¤§¡‘¨Ñ*Ó+ˆØ�5‰Lˆä�Q˜ eÔ,ˆä�F‰F�3�q‘6‹N×ÑÓ ˆØˆô ”—‘œŸ™˜s›¤b§f¡f¨Q£iÑ/Ó0Ó1ˆð �M‰M˜#˜q¨ˆMÓ+ˆä�f‰f�Q˜‘XÓ×"Ñ"Ó$ˆÜ��d‘
Ôô �i‰i˜˜t e™|Ð,Ó-ˆØ�m‰m˜C ¨Q°QˆmÓ7ˆÜ�S—Y‘Y §	¡	Ô*Ü�f‰f�S˜4‘ZÓ ×$Ñ$Ó&ˆÜ��d‘
Ôð �}‰}˜S #§%¡%°¸ˆ}Ó:ˆÜ�S˜$Ÿ&™&Õ!r[   c                 óÂ  — t        j                  d«      j                  ddd«      }t        ddd¬«      }| j	                  ||d	d	¬
«      }| j	                  |t        j
                  |d	d«      d	d¬
«      }t        |t        j
                  |d	d«      «       | j	                  |t        j
                  |d	d«      d	d¬
«      }t        |t        j
                  |d	d«      «       y )Ng      ”@rM   rô  rR   rF   rŠ  r„  r±  r   r‹  rK   rL   )rv   r   rw   r'   r&   rö  r   )rU   rk   r„  Úy0Úy1r>  s         rY   Ú	test_axiszTestFiltFilt.test_axis9	  s¸   € ä�I‰IÐ(Ó)×1Ñ1°"°b¸"Ó=ˆÜ�Q˜ eÔ,ˆØ�]‰]˜3 ¨!°!ˆ]Ó4ˆØ�]‰]˜3¤§¡¨A¨q°!Ó 4¸QÀQˆ]ÓGˆÜ˜2œrŸ{™{¨2¨q°!Ó4Ô5Ø�]‰]˜3¤§¡¨A¨q°!Ó 4¸QÀQˆ]ÓGˆÜ˜2œrŸ{™{¨2¨q°!Ó4Õ5r[   c                 óÀ   — | j                   dk7  ry t        j                  ddgdt        j                  d«      «      }t        |t        j                  d«      dd¬«       y )Nr€  rû  rK   rM   ç›+¡†›„=rÞ   )rƒ  r   r&   rv   r   r   )rU   r¹   s     rY   Útest_acoeffzTestFiltFilt.test_acoeffC	  sG   € Ø×Ñ Ò%Øä�o‰o˜r 2˜h¨¬2¯9©9°R«=Ó9ˆÜ˜œRŸY™Y r›]°¸UÖCr[   c                 óò  — | j                   dk7  rt        j                  d«       t        j                  ddg«      }t        j                  dg«      }t        j                  ddg«      }t        |||«      \  }}}t        |d   |d   gd|d   z  d	|d
   z  z   d	|d   z  d|d
   z  z   g«       t        ||d   d|d   z  z   d|d   z  z   d|d
   z  z   d|d   z  |d   z   d|d   z  z   d|d
   z  z   g«       y )Nr€  ú$gust only implemented for TF systemsrQ  rW  rû  r^  r   rý  rÿ  rK   ç      Ð?rŠ  )rƒ  r  r{  rv   r   r9   r   )rU   rk   rW   rV   rl   Úz1Úz2s          rY   Útest_gust_simplezTestFiltFilt.test_gust_simpleJ	  s  € Ø×Ñ Ò%Ü�K‰KÐ>Ô?ô �H‰H�c˜3�ZÓ ˆÜ�H‰H�c�U‹OˆÜ�H‰H�c˜4�[Ó!ˆÜ" 1 a¨Ó+‰	ˆˆ2ˆrÜ˜˜A™  1¡˜Ø˜Q˜q™T™ C¨¨!©¡HÑ,¨c°!°A±$©h¸¸Q¸q¹T¹Ñ.AÐBô	Dä˜˜B˜q™E D¨¨A©¡JÑ.°°a¸±d±Ñ:¸UÀ1ÀQÁ4¹ZÑGØ   A¡™J¨¨A©Ñ.°°q¸±t±Ñ;¸dÀ1ÀQÁ4¹iÑGðIõ 	Jr[   c                 óÊ   — | j                   dk7  rt        j                  d«       t        j                  d«      }d}d}t        |||d¬«      }||z  dz  |z  }t        ||«       y )	Nr€  r   rR   rY  rW  Úgustrt   rL   )rƒ  r  r{  rv   r   r&   r   )rU   rk   rW   rV   rl   r¸   s         rY   Útest_gust_scalarszTestFiltFilt.test_gust_scalarsX	  sa   € Ø×Ñ Ò%Ü�K‰KÐ>Ô?ô �I‰I�b‹MˆØˆØˆÜ�Q˜˜1 VÔ,ˆØ�a‘C˜!‘8˜a‘<ˆÜ˜˜8Õ$r[   )r“   ÚoddNrn  N)r§   r¨   r©   rƒ  r&   rZ   r—  r›  rž  r¤  r§  rª   r[   rY   r  r  	  s3   „ Ø€Mà>BØ%)ó>ò8ò
 "òD6òDòJó%r[   r  c                   ó   — e Zd ZdZd„ Zy)ÚTestSOSFiltFiltr‚  c                 ó.  — t         j                  j                  d«      j                  d«      }t	        dd«      D ]X  }t        j                  |dd¬«      }t        |Ž \  }}t        |Ž }t        |||«      }t        ||«      }t        ||dd	|› �¬
«       ŒZ y)z1Test equivalence between sosfiltfilt and filtfiltr   r‚  rK   rI   çffffffÖ?r„  r±  r   zorder=)rà   Úerr_msgN)rv   rä   rå   rç   rx   r   r'   r(   r)   r&   r0   r   )	rU   rk   r(  r„  rW   rV   r‚  rl   Úy_soss	            rY   Útest_equivalencez TestSOSFiltFilt.test_equivalencei	  s�   € ä�I‰I×!Ñ! !Ó$×*Ñ*¨4Ó0ˆÜ˜1˜a“[ò 	LˆEÜ—-‘-  t°EÔ:ˆCÜ˜3�<‰DˆAˆqÜ˜3�-ˆCÜ˜˜A˜qÓ!ˆAÜ  QÓ'ˆEÜ˜A˜u¨5¸FÀ5À'Ð:JÖKñ	Lr[   N)r§   r¨   r©   rƒ  r¯  rª   r[   rY   rª  rª  f	  s   „ Ø€Mó	Lr[   rª  c                 óÄ  — d„ }t        t        |«      t        | «      «      dz
  }t        | |«      }t        j                  |d| j                  «       |z  || d j                  «       |z  f«      }t        ||| ||fdddddd¬	«	      }|\  }}	}
}}|d
kD  rt        d|z  «      ‚|d| }||d }t        | ||ddd…   |¬«      d
   ddd…   }t        | |||¬«      d
   }|||fS )aQ  
    An alternative implementation of filtfilt with Gustafsson edges.

    This function computes the same result as
    `scipy.signal._signaltools._filtfilt_gust`, but only 1-d arrays
    are accepted.  The problem is solved using `fmin` from `scipy.optimize`.
    `_filtfilt_gust` is significantly faster than this implementation.
    c                 óR  — t        t        |«      t        |«      «      dz
  }| d| }| |d }t        ||||¬«      d   }t        |||ddd…   |¬«      d   ddd…   }t        |||ddd…   |¬«      d   ddd…   }	t        |||	|¬«      d   }
t        j                  ||
z
  dz  «      }|S )z-Objective function used in filtfilt_gust_opt.rK   Nrk  r   r“   rL   )r  r:  r$   rv   Úsum)ÚicsrW   rV   rk   ÚmÚz0fÚz0brà  Úy_fbÚy_bÚy_bfÚvalues               rY   Úfiltfilt_gust_opt_funcz1filtfilt_gust_opt.<locals>.filtfilt_gust_opt_func~	  sÃ   € ä”�A“œ˜A›Ó !Ñ#ˆØ�"�1ˆgˆØ�!�"ˆgˆÜ�a˜˜A #Ô& qÑ)ˆÜ�q˜!˜S¡ 2 ™Y¨3Ô/°Ñ2±4°R°4Ñ8ˆä�a˜˜A™d ˜d™G¨Ô,¨QÑ/±°"°Ñ5ˆÜ�q˜!˜S SÔ)¨!Ñ,ˆÜ—‘˜˜t™ aÑ'Ó(ˆØˆr[   rK   Nrè  r   rù  TF)rð   ÚxtolÚftolÚmaxfunÚmaxiterÚfull_outputÚdispr   z5minimization failed in filtfilt_gust_opt: warnflag=%dr“   rk  )	r  r:  r%   rv   rE  r¶  r   r  r$   )rW   rV   rk   r»  r´  rl  r³  ra  ÚoptÚfoptÚniterÚfuncallsÚwarnflagrµ  r¶  r¸  rl   s                    rY   Úfiltfilt_gust_optrÇ  u	  s  € òô 	ŒC�‹F”C˜“FÓ˜aÑ€AÜ	�A�qÓ	€BÜ
�.‰.˜!˜B˜Q˜%Ÿ*™*›, r™/¨1¨a¨R¨S¨6¯;©;«=¸Ñ+;Ð<Ó
=€CÜÐ(¨#°Q¸¸1°IØ 5Ø¨Ø"¨ô0€Fð ,2Ñ(€Cˆˆu�h Ø�!‚|Üð )Ø+3ñ4ó 5ð 	5à
ˆbˆqˆ'€CØ
ˆaˆbˆ'€Cô �!�Q˜™$˜B˜$™ CÔ
(¨Ñ
+©D¨b¨DÑ
1€CÜ��1�c˜cÔ" 1Ñ%€Aàˆc�3ˆ;Ðr[   c                 ón  — t         j                  j                  d«       t        j                  j                  |Ž }t	        | |||d|¬«      }t        | ||||¬«      \  }}}	t        j                  ||d«      }
|
j                  d d }t        j                  |
«      }t        t        |«      t        | «      «      dz
  }t        j                  ||fz   «      }t        j                  ||fz   «      }t        |D �cg c]  }t        |«      ‘Œ c}Ž D ]  }t        | ||
|   «      \  ||<   ||<   ||<   Œ! t        j                  |d|«      }t        j                  |d|«      }t        j                  |d|«      }t        ||dd¬	«       t        ||dd¬	«       t        ||dd¬	«       t        |	|dd¬	«       y c c}w )
Nrò  r¦  )rÊ  ru   r†  )rÊ  r†  r“   rK   rã   rÕ  rÞ   )rv   rä   rê  rç   r&   r9   rö  r„  Ú
empty_liker  r:  rV  r   rx   rÇ  r   )rW   rV   r„  rÊ  r†  rk   rl   ÚygÚzg1Úzg2ÚxxÚ	out_shaperÅ  r´  Úzo1Úzo2rŽ   Úindxs                     rY   Úcheck_filtfilt_gustrÒ  ¡	  s…  € ä‡I�I‡N�N�3ÔÜ
�	‰	�‰˜Ð€Aô 	��A�q˜t¨F¸%Ô@€Aô " ! Q¨°¸EÔB�L€BˆˆSô
 
�‰�Q˜˜bÓ	!€BØ—‘˜˜"�€IÜ	�‰�rÓ	€BÜŒC�‹F”C˜“FÓ˜aÑ€AÜ
�(‰(�9 ˜tÑ#Ó
$€CÜ
�(‰(�9 ˜tÑ#Ó
$€CÜ¨IÖ6 qœ% �(Ò6Ð7ò KˆÜ):¸1¸aÀÀDÁÓ)JÑ&ˆˆ4‰�#�d‘)˜S šYðKä	�‰�R˜˜TÓ	"€BÜ
�+‰+�c˜2˜tÓ
$€CÜ
�+‰+�c˜2˜tÓ
$€Cä�A�r ¨4Õ0Ü�B˜ ¨DÕ1Ü�C˜ 4¨dÕ3Ü�C˜ 4¨dÖ3ùò 7s   Ã8F2rM   c                  óN  — dD �]  } dD ]É  }d\  }}}t        j                  j                  |f|z  Ž }t        j                  j                  |f|z  Ž }t        ||| ¬«      }t	        ||«       t        ||| d¬«      \  }}	t        |dv «       t        t        |	t        «      «       t        d|	j                  «       v xr d	|	j                  «       v «       ŒË t        j                  d
gt         j                  ¬«      }|j                  «       }t	        t        ||| ¬«      d	«       �Œ" y )NrA  )rK   rL   )r‘   rI   rs   r`   T)ra   Úmeasure>   r   rs   r   rs   l         @ r  )rv   rä   rç   r    r
   r   Ú
isinstanceÚdictÚkeysr   rÍ   rë  )
ra   r–  rì   re  Útrue_methodrk   r%  ru   Ú
method_tryÚtimess
             rY   Útest_choose_conv_methodrÛ  Á	  s  € à)ó DˆØò 	HˆDØ .ÑˆAˆq�+Ü—	‘	—‘ 1 $¨¡+Ð/ˆAÜ—	‘	—‘ 1 $¨¡+Ð/ˆAä'¨¨1°4Ô8ˆFÜ˜ Ô-ä 2°1°a¸dÈDÔ QÑˆJ˜Ü�JÐ"3Ð3Ô4Ü”J˜u¤dÓ+Ô,Ü�E˜UŸZ™Z›\Ð)ÒF¨h¸%¿*¹*»,Ð.FÕGð	Hô �H‰H�e�W¤B§H¡HÔ-ˆØ�F‰F‹HˆÜÔ'¨¨1°4Ô8¸(ÖCñ!Dr[   c                  óæ   — t        j                  g d¢t        ¬«      } t        j                  g d¢t        ¬«      }t        j                  d¬«      5  t        | |«       d d d «       y # 1 sw Y   y xY wr	  )rv   r  r  r  r  r    )rV   rW   s     rY   Ú"test_choose_conv_dtype_deprecationrÝ  Ö	  sT   € ô 	�
‰
Ò%¬VÔ4€AÜ
�
‰
Ò.´fÔ=€AÜ	×	Ñ	Ð&EÔ	Fñ !Ü˜1˜aÔ ÷!÷ !ñ !úr  c            	      óL  — dD ]Ÿ  } t        d«      t        d«      g}t        d«      t        d«      g}t        t        ||| ¬«      d«       d}d	D ]R  }t        t        |«      sŒt	        j
                  ||¬
«      }|j                  «       }t        t        ||| ¬«      d«       ŒT Œ¡ y )NrA  rF   rL   rK   rG   r`   rs   rM   )Ú
complex256Ú
complex192r  )r   r
   r    r  rv   r^  rë  )ra   rk   r%  rì   Únot_fft_conv_supps        rY   Útest_choose_conv_method_2râ  ß	  s�   € à)ò 
LˆÜ�Q‹Zœ ›Ð$ˆÜ�Q‹Zœ ›Ð$ˆÜÔ'¨¨1°4Ô8¸(ÔCàˆØ!=ò 	LÐÜ”rÐ,Õ-Ü—G‘G˜AÐ%6Ô7�Ø—F‘F“H�ÜÔ/°°1¸4Ô@À(ÕKñ		Lñ
Lr[   c            	      ó<  — t        j                  ddddd¬«      \  } }}d}t        j                  t        j                  |«      «      }t        t        j                  t        j                  |«      t        j                  |«      z  «      «      }t        j                  j                  d«       t        | ||«      \  }}d |fD ]?  }d	|z  }	t        |||	fd
|«       t        d«      D ]  }
g d¢}|	||
<   t        ||||
|«       Œ ŒA d|z  dz
  }t        |||fd
|«       y )NrF   ç{®Gáz„?éx   gffffff¶?r„  r±  rè  rò  rH   r   )rL   rL   rL   rL   rü   )r   Úelliprv   r  r  r"  rŒ  r�  rä   rê  r(   rÒ  rx   )rm   Úpre  r’  r‘  Úapprox_impulse_lenrW   rV   r†  Ú
signal_lenrÊ  r„  Úlengths                rY   Útest_filtfilt_gustrë  î	  s  € ô �l‰l˜1˜d C¨¸Ô>�G€A€qˆ!ð €CÜ
�‰Œr�v‰v�a‹yÓ€AÜœRŸW™W¤R§V¡V¨C£[´2·6±6¸!³9Ñ%<Ó=Ó>Ðä‡I�I‡N�N�3Ôä�!�Q˜‹?�D€A€qØÐ*Ð+ò 
:ˆØÐ+Ñ+ˆ
ô 	˜A˜q : -°°EÔ:ô ˜!“Hò 	:ˆDÚˆEØ$ˆE�$‰KÜ  1 e¨T°5Õ9ñ	:ð
:ð Ð!Ñ! BÑ&€FÜ˜˜1˜v˜i¨Ð,>Õ?r[   c                   ó`   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestDecimatec                 ó¶   — t        j                  d«      }t        t        t        j
                  |dd¬«       t        t        t        j
                  |dd¬«       y )NrR   rû  rK   )Úqrì   rL   )rv   r   r£   r  r   Údecimaterý  s     rY   Útest_bad_argszTestDecimate.test_bad_args
  s7   € Ü�I‰I�b‹MˆÜ”i¤§¡°!°s¸aÕ@Ü”i¤§¡°!°q¸CÖ@r[   c                 ó¢   — t        j                  d«      }t        j                  |dddd¬«      j	                  «       }t        ||d d d…   «       y )NrR   rL   rK   ÚiirF©rì   ÚftypeÚ
zero_phase©rv   r   r   rð  Úroundr   ©rU   rk   rl   s      rY   Útest_basic_IIRzTestDecimate.test_basic_IIR
  ó@   € Ü�I‰I�b‹MˆÜ�O‰O˜A˜q A¨U¸uÔE×KÑKÓMˆÜ˜1˜a¡ ! ™fÕ%r[   c                 ó¢   — t        j                  d«      }t        j                  |dddd¬«      j	                  «       }t        ||d d d…   «       y )NrR   rL   rK   ÚfirFrô  r÷  rù  s      rY   Útest_basic_FIRzTestDecimate.test_basic_FIR
  rû  r[   c                 óê   — t        j                  d«      }t        j                  |ddd¬«      }t	        |j
                  d«       t        j                  |ddd¬«      }t	        |j
                  d«       y )	N)r†   r†   rL   r   F)rÊ  rö  )ra  r†   rK   )r†   ra  )rv   rˆ  r   rð  r
   r„  )rU   rm   Úd0Úd1s       rY   Ú
test_shapezTestDecimate.test_shape
  sT   € ä�H‰H�XÓˆÜ�_‰_˜Q ¨°eÔ<ˆÜ�R—X‘X˜xÔ(Ü�_‰_˜Q ¨°eÔ<ˆÜ�R—X‘X˜xÕ(r[   c                 ó”   — t        «       5 }|j                  t        d«       | j                  dd¬«       d d d «       y # 1 sw Y   y xY w)NúBadly conditioned filterrý  F©ru   rö  ©r   r;  r3   Ú_test_phaseshift©rU   r=  s     rY   Útest_phaseshift_FIRz TestDecimate.test_phaseshift_FIR&
  sE   € ÜÓ ð 	B CØ�J‰J”Ð(BÔCØ×!Ñ!¨¸5Ð!ÔA÷	B÷ 	Bñ 	Búó	   ‹*>¾Ac                 ó”   — t        «       5 }|j                  t        d«       | j                  dd¬«       d d d «       y # 1 sw Y   y xY w)Nr  rý  Tr  r  r  s     rY   Útest_zero_phase_FIRz TestDecimate.test_zero_phase_FIR+
  sE   € ÜÓ ð 	A CØ�J‰J”Ð(BÔCØ×!Ñ!¨¸4Ð!Ô@÷	A÷ 	Añ 	Aúr
  c                 ó*   — | j                  dd¬«       y )Nró  Fr  ©r  r  s    rY   Útest_phaseshift_IIRz TestDecimate.test_phaseshift_IIR0
  s   € Ø×Ñ U°uÐÕ=r[   c                 ó*   — | j                  dd¬«       y )Nró  Tr  r  r  s    rY   Útest_zero_phase_IIRz TestDecimate.test_zero_phase_IIR3
  s   € Ø×Ñ U°tÐÕ<r[   c           	      ó  — d}g d¢}d}t        j                  ||z  dz   «      t        |«      z  }t        j                  |«      dz  dz  }t        j                  dt         j
                  z  |d d …t         j                  f   z  |z  «      t        j                  j                  |j                  d«      z  }|D �]C  }	||	z  }
t        j                  |	|z  dz   «      t        |	«      z  }t        j                  dt         j
                  z  |d d …t         j                  f   z  |z  «      t        j                  j                  |j                  d«      z  }|d	k(  r5d
}t        j                  t        j                  |dz   d|
z  d¬«      d«      }nU|dk(  rPd}dt         j
                  z  |
z  }t        j                  t        j                  |d|t         j
                  z  «      Ž }|du r^t        j                  j                  |j                   ||z  dz  t         j
                  z  «      \  }}|t        j"                  |«      z  }nt        j$                  |«      }t        j&                  |j(                  |
|¬«      }t        j*                  |j-                  «       |z  d¬«      }|t        j"                  |«      z  }|d|	z  k  }t/        t        j0                  |j-                  «       |z  «      |   ddd¬«       �ŒF y )Nrå  )ra  rû   r†   r/  r  rK   çš™™™™™é?rL   rj   çš™™™™™¹?rý  r†   rQ  rÒ  rÃ  ró  r‘   gš™™™™™©?F©rõ  rö  r“   rú  rû  r   rá   r!  )rv   r   rh  r   r@  r  r  r   ÚwindowsÚtukeyrÙ   Údltir  Úcheby1ÚfreqzrÏ  Údenr  Ú	ones_likerð  rØ  r²  rY  r   Úangle)rU   ru   rö  r  r	  Út_totr÷   r
  rŽ   r  rï  r  Úd_tosrì   ÚsystemÚwcÚ_Úh_respsr  Ú	h_resampsÚsubnyqs                        rY   r  zTestDecimate._test_phaseshift6
  sv  € ØˆÚ#ˆàˆÜ�I‰I�d˜5‘j ‘lÓ#¤e¨D£kÑ1ˆô —‘˜Ó" SÑ(¨1Ñ,ˆÜ�V‰V�FœRŸU™U‘N Uª1¬b¯j©j¨=Ñ%9Ñ9¸AÑ=Ó>Ü�~‰~×#Ñ# A§F¡F¨CÓ0ñ1ˆð  ó "	2ˆGØ˜‘ˆAÜ—9‘9˜W U™]¨1™_Ó-´°g³Ñ>ˆDÜ—V‘V˜F¤R§U¡U™N¨U²1´b·j±j°=Ñ-AÑAÀDÑHÓIÜ—~‘~×+Ñ+¨D¯I©I°sÓ;ñ<ˆEð ˜ŠØ�ÜŸ™¤V§]¡]°1°q±5¸"¸q¹&Ø:Cô&EØFHóJ‘à˜5’Ø�ØœŸ™‘Y˜q‘[�ÜŸ™¤f§m¡m°A°t¸RÄÇÁ¹XÓ&FÐG�ð ˜UÑ"Ü#Ÿ\™\¨&¯*©*°f·j±jØ*/°©*°Q©,´r·u±uÑ*<ó>‘
��7àœ2Ÿ6™6 '›?Ñ*‘äŸ,™, uÓ-�äŸ™¨¯©°°1¸FØ3=ô?ˆIô Ÿ™˜uŸz™z›|¨iÑ7¸bÔAˆIØœŸ™ 	Ó*Ñ*ˆIØ˜S ™[Ñ(ˆFô œBŸH™H W§\¡\£^°IÑ%=Ó>¸vÑFÈØ!%¨D÷2ñC"	2r[   c                 ó¤  — d}d}t        j                  |«      |z  }t        j                  d|z  «      t        j                  dt         j                  z  |dz  z  |z  «      z  }t        t         j                  j                  |«      dd¬«       t        j                  |d	d
¬«      }t        t         j                  j                  |«      d«       y )Ng      Y@r‚  rW  rL   g      >@rQ  rá   ré  r†   rý  )rõ  rä  )rv   r   ÚsqrtrÙ  r  r   ÚlinalgÚnormr   rð  r   )rU   Úsfreqrì   r÷   rk   Úx_outs         rY   Útest_auto_nzTestDecimate.test_auto_nf
  s—   € ð ˆØˆÜ�I‰I�a‹L˜5Ñ ˆä�G‰G�B˜‘F‹OœbŸf™f Q¬¯©¡Y°%¸#±+Ñ%>ÀÑ%BÓCÑCˆÜœŸ	™	Ÿ™ qÓ)¨2°DÕ9Ü—‘  2¨UÔ3ˆÜœ"Ÿ)™)Ÿ.™.¨Ó/°Õ6r[   c                 ó¶   — t        j                  t        j                  dt        j                  ¬«      d«      }t        t        j                  |«      «      rJ ‚y )Nrù  r  rM   )r   rð  rv   r^  rÓ   rë   Úisnanrý  s     rY   Útest_long_float32zTestDecimate.test_long_float32r
  s<   € ô �O‰OœBŸG™G F´"·*±*Ô=¸rÓBˆÜ”r—x‘x “{Ô#Ð#Ð#Ð#r[   c                 óÈ   — t        j                  t        j                  dt        j                  ¬«      d«      }|j
                  j                  t        j                  k(  sJ ‚y )Nr  r  rM   )r   rð  rv   r^  rÒ   rè   rX  rÔ   rý  s     rY   Útest_float16_upcastz TestDecimate.test_float16_upcastx
  s;   € ä�O‰OœBŸG™G C¬r¯z©zÔ:¸BÓ?ˆØ�w‰w�|‰|œrŸz™zÒ)Ð)Ñ)r[   c                 óø  — d}d}d}t        j                  ddt        j                  z  |z  dz  d|¬«      \  }}}|j	                  t
        «      t        j                  dt        j                  z  |z  |z  «      z  }|j	                  t
        «      t        j                  dt        j                  z  |z  |z  «      z  }t        j                  |||«      }t        j                  d«      |z  }t        j                  dt        j                  z  |z  |z  «      d	t        j                  d
t        j                  z  |z  |z  «      z  z   }	t        j                  |	d|d¬«      }
t        j                  g t        j                  |||«      ¢|	‘­Ž d d d…   }t        |
|«       t        j                  |	d|d¬«      }t        j                  g t        j                  |||«      ¢|	‘­Ž d d d…   }t        ||dd¬«       y )Nrü   rH   ç     @�@rL   r„  )rž  Úfsrj   rþ  rû  rt  Fr  Trè  ç‚vIhÂ%<=rÞ   )r   r'   rv   r  rê   r)  r@  r  r   rð  r$   r(   r
   r&   r   )rU   ÚfcentreÚfwidthr4  rm   rç  re  r   r÷   rÛ   ÚynzpÚynzprefÚyzpÚyzprefs                 rY   Útest_complex_iir_dltiz"TestDecimate.test_complex_iir_dlti}
  sº  € ð ˆàˆàˆä—-‘-  1¤R§U¡U¡7¨6¡>°!Ñ#3¸EÀbÔI‰ˆˆ1ˆaØ�H‰H”WÓ¤§¡ r¬B¯E©E¡z°GÑ';¸BÑ'>Ó ?Ñ?ˆØ�H‰H”WÓ¤§¡ r¬B¯E©E¡z°GÑ';¸BÑ'>Ó ?Ñ?ˆÜ—‘˜Q  1Ó%ˆä�I‰I�c‹N˜RÑˆô �V‰V�BœŸ™‘J Ñ(¨1Ñ,Ó-Ø”R—V‘V˜C¤"§%¡%™K¨'Ñ1°AÑ5Ó6Ñ6ñ7ˆô �‰˜q !¨6¸eÔDˆÜ—.‘.ð $¤&§-¡-°°1°aÓ"8ð $Ø!"ò$Ù$' a Cñ)ˆô 	�T˜7Ô#ä�o‰o˜a ¨&¸TÔBˆÜ—‘ð $¤&§-¡-°°1°aÓ"8ð $Ø!"ò$Ù$' a Cñ)ˆô 	˜˜V¨%°eÖ<r[   c                 ó  — d}d}d}d}t        j                  ||dz  |¬«      }t        j                  |«      }|t        j                  dt        j
                  z  |z  |z  «      z  }|d   t        j                  |«      z  }t        j                  |d	«      }	t        j                  d
«      |z  }
t        j                  dt        j
                  z  |z  |
z  «      dt        j                  dt        j
                  z  |z  |
z  «      z  z   }t        j                  |d|	d¬«      }t        j                  ||d	d¬«      d d }t        ||«       t        j                  |d|	d¬«      }t        j                  |d	d|¬«      }t        ||«       y )Nrü   rH   r3  rû   rL   )r4  rj   r   rK   rþ  rû  rt  Fr  )r  r  r  TrÃ  )r   r  rv   Úrootsr@  r  Úpolyr  r   rð  Úupfirdnr
   rÍ  )rU   r6  r7  r4  ÚnumtapsÚbbaseÚzbaseÚzrotÚbzr   r÷   rÛ   r8  r9  r:  r;  s                   rY   Útest_complex_fir_dltiz"TestDecimate.test_complex_fir_dlti�
  sS  € àˆàˆàˆØˆô —‘˜g v¨a¡x°BÔ7ˆô —‘˜“ˆØ”r—v‘v˜b¤2§5¡5™j¨7Ñ2°2Ñ5Ó6Ñ6ˆà�1‰XœŸ™ ›Ñ%ˆä—‘˜R Ó#ˆä�I‰I�c‹N˜RÑˆô �V‰V�BœŸ™‘J Ñ(¨1Ñ,Ó-Ø”R—V‘V˜C¤"§%¡%™K¨'Ñ1°AÑ5Ó6Ñ6ñ7ˆô �‰˜q !¨6¸eÔDˆÜ—.‘.  Q¨1°1Ô5°d°sÐ;ˆä�T˜7Ô#ä�o‰o˜a ¨&¸TÔBˆÜ×%Ñ% a¨¨A°bÔ9ˆä�S˜&Õ!r[   N)r§   r¨   r©   rñ  rú  rþ  r  r	  r  r  r  r  r,  r/  r1  r<  rF  rª   r[   rY   rí  rí  
  sM   „ òAò
&ò
&ò
)òBò
Aò
>ò=ò.2ò`
7ò$ò*ò
=ó@""r[   rí  c                   óŽ   — e Zd Zd„ Zd„ Zd„ Zej                  j                  de	j                  e	j                  g«      d„ «       Zy)ÚTestHilbertc                 ó²   — t        j                  dg«      }t        t        t        |«       t        j
                  d«      }t        t        t        |d¬«       y )Nr¶   rÁ  r   ©r‰  )rv   r   r£   r¤   r"   r   rý  s     rY   rñ  zTestHilbert.test_bad_argsÄ
  s9   € Ü�H‰H�j�\Ó"ˆÜ”j¤'¨1Ô-Ü�I‰I�c‹NˆÜ”j¤'¨1°Ö2r[   c           	      óú  — d}t         j                  }t        j                  dd|z  |dz  «      }t        j                  |«      }t        j                  |«      }t        j                  d|z  «      }t        j                  d|z  «      }t        j
                  ||||g«      }t        |«      }	t        j                  |	«      }
t        j                  |	«      }t        j                  |	«      }t        |||«       t        |
t        j                  |j                  «      |«       t        |dd d…f   t        j                  | dz  |dz  |dz  «      |«       t        |dd d…f   t        j                  d||dz  «      |«       t        |dd d…f   t        j                  | dz  |dz  |dz  «      |«       t        |dd d…f   t        j                  d||dz  «      |«       t        |	d   j                  ||«       y )Nr>  r   rL   r¿  rK   r¾  rF   )rv   r  r   rÙ  r×  rŽ  r"   r  r  rØ  r   r^  r„  rW  )rU   r²  r  r÷   rß  Úa1Úa2Úa3rV   r%  Úh_absÚh_angleÚh_reals                rY   Útest_hilbert_theoreticalz$TestHilbert.test_hilbert_theoreticalÊ
  s¾  € àˆä�U‰UˆÜ�I‰I�a˜˜R™  c¡Ó*ˆÜ�V‰V�A‹YˆÜ�V‰V�A‹YˆÜ�V‰V�A˜‘E‹]ˆÜ�V‰V�A˜‘E‹]ˆÜ�I‰I�r˜2˜r 2Ð&Ó'ˆä�A‹JˆÜ—‘�q“	ˆÜ—(‘(˜1“+ˆÜ—‘˜“ˆô 	˜F A wÔ/ä˜E¤2§7¡7¨1¯7©7Ó#3°WÔ=ô 	˜G A t¨ t GÑ,ÜŸI™I r c¨A¡g¨r°A©v°r¸C±xÓ@Ø#ô	%ô
 	Ø�A�t˜�t�GÑœbŸi™i¨¨2¨r°C©xÓ8¸'ô	Cô 	˜G A t¨ t GÑ,ÜŸI™I r c¨A¡g¨r°A©v°r¸C±xÓ@Ø#ô	%ô 	Ø�A�t˜�t�GÑœbŸi™i¨¨2¨r°C©xÓ8¸'ô	Cô 	˜A˜a™DŸI™I r¨7Õ3r[   c                 óî  — t        j                  d«      j                  dd«      }t        |d¬«      }t	        t        |j
                  d¬«      |j
                  «       t        t        |d   «      |d   d«       t        |dd¬	«      }t	        |j                  ddg«       t	        t        |j
                  dd¬	«      j                  ddg«       t        j                  g d
¢«      }t        |d   |dd«       y )Nr]  rF   rI   r“   rú  r   r>  rû   )r‰  rÊ  )y        Bm}¶Ä…û¿y      ð?ðãâa Àyûÿÿÿÿÿÿ?¥®0fÓóÀy      @Wëa©94ô¿y      @"nÈWñ¿y      @‡hûIX@yš™™™™™™<ÃnmÑèÃ@yåFˆ8›¼ûO2k{…ï?yœ™™™™™©¼Ú‰o�íPõ?yÎÌÌÌÌÌ¼¼ùYC›à?y433333£<c4¸Qõeå?yðÈ’40¡¼òŒ³p$Î?yœ™™™™™©¼E¥SÐUÒ?yffffff¶<‚?Žüó7 ?y433333£<wE¶oÿ¼“¿y�!5P±¼àÐ{Ø3'Å¿y        _úN@Õ¿yš™™™™™¹<Ú}§ØÙ¿yš™™™™™™<§‚-cè¿yåFˆ8›<“Á2OW\é¿zN regression)	rv   r   rw   r"   r
   rA  r   r„  r   )rU   rV   ÚaaÚaanÚa0hilbs        rY   Útest_hilbert_axisNzTestHilbert.test_hilbert_axisNó
  sÇ   € ä�I‰I�b‹M×!Ñ! ! QÓ'ˆä�Q˜RÔ ˆÜ”W˜QŸS™S qÔ)¨2¯4©4Ô0äœG A a¡D›M¨2¨a©5°"Ô5ô �a˜2 BÔ'ˆÜ�S—Y‘Y  B Ô(Ü”W˜QŸS™S B¨QÔ/×5Ñ5¸¸A°wÔ?ô —‘ò Fó Gˆô( 	˜C ™F F¨B°Õ?r[   rè   c                 óª   — t        j                  d|¬«      }t        t        j                  t	        j
                  |«      «      j                  |«       y )Nr‘   r  )rv   rˆ  r
   rØ  r   r"   rè   rt  s      rY   Útest_hilbert_typeszTestHilbert.test_hilbert_types  s4   € ä—8‘8˜A UÔ+ˆÜ”R—W‘WœVŸ^™^¨HÓ5Ó6×<Ñ<¸eÕDr[   N)r§   r¨   r©   rñ  rR  rW  r  r  rr  rv   rÓ   rÔ   rY  rª   r[   rY   rH  rH  Â
  sI   „ ò3ò'4òR#@ðJ ‡[�[×Ñ˜W r§z¡z°2·:±:Ð&>Ó?ñEó @ñEr[   rH  c                   ó‚   — e Zd Zd„ Zej
                  j                  dej                  ej                  g«      d„ «       Z
y)ÚTestHilbert2c                 ó¦  — t        j                  dgg«      }t        t        t        |«       t        j
                  d«      j                  ddd«      }t        t        t        |«       t        j
                  d«      j                  dd«      }t        t        t        |d¬«       t        t        t        |d	¬«       t        t        t        |d
¬«       y )Nr¶   r-  rL   rF   rG   r„   r   rJ  )rL   r   )rL   )rv   r   r£   r¤   r#   r   rw   rý  s     rY   rñ  zTestHilbert2.test_bad_args   s�   € ä�H‰H�z�l�^Ó$ˆÜ”j¤(¨AÔ.ô �I‰I�b‹M×!Ñ! ! Q¨Ó*ˆÜ”j¤(¨AÔ.ô �I‰I�b‹M×!Ñ! ! QÓ'ˆÜ”j¤(¨A°Õ3Ü”j¤(¨A°Õ8Ü”j¤(¨A°Ö6r[   rè   c                 óª   — t        j                  d|¬«      }t        t        j                  t	        j
                  |«      «      j                  |«       y )N)rL   rP   r  )rv   rˆ  r
   rØ  r   r#   rè   rt  s      rY   Útest_hilbert2_typesz TestHilbert2.test_hilbert2_types/  s4   € ä—8‘8˜G¨5Ô1ˆÜ”R—W‘WœVŸ_™_¨XÓ6Ó7×=Ñ=¸uÕEr[   N)r§   r¨   r©   rñ  r  r  rr  rv   rÓ   rÔ   r^  rª   r[   rY   r[  r[    s<   „ ò7ð ‡[�[×Ñ˜W r§z¡z°2·:±:Ð&>Ó?ñFó @ñFr[   r[  c                   óì  — e Zd ZdZed„ «       Zd„ Zd„ Zej                  j                  dg d¢dg d¢g d	¢fg d
¢dg d
¢g d¢fg d¢dg d¢g d¢fg d¢dg d¢g d¢fg d¢dg d
¢g d¢fg d¢dg d¢g d¢fg d¢dg d¢g d¢fg«      d„ «       Zej                  j                  dg d¢dg d¢g d¢fg d¢dg d¢g d¢fg d ¢dg d!¢g d"¢fg«      d#„ «       Zd$„ Zd%„ Zej                  j                  d&g d'¢g d(¢g«      d)„ «       Zy*)+ÚTestEnvelopez4Unit tests for function `._signaltools.envelope()`. c                 ó$   — t        | |dd|¬«       y)z9Little helper to compare to arrays with proper tolerancesr   )rà   rß   r­  Nr>   )r2  Údesiredr<  s      rY   Úassert_closezTestEnvelope.assert_close8  s   € ô 	˜ ¨e¸%ÈÖMr[   c                 ó,  — t        j                  t        d¬«      5  t        t	        j
                  d«      d¬«       ddd«       t        j                  t        d¬«      5  t        t	        j
                  d«      d	¬«       ddd«       d
D ]i  }dj                  t        t        |«      «      }t        j                  t        d|› d�¬«      5  t        t	        j
                  d«      |¬«       ddd«       Œk t        j                  t        d¬«      5  t        t	        j
                  d«      d¬«       ddd«       dD ]F  }t        j                  t        d¬«      5  t        t	        j
                  d«      |¬«       ddd«       ŒH t        j                  t        d¬«      5  t        t	        j
                  d«      d¬«       ddd«       y# 1 sw Y   �Œ�xY w# 1 sw Y   �ŒYxY w# 1 sw Y   �ŒdxY w# 1 sw Y   ŒÀxY w# 1 sw Y   ŒÊxY w# 1 sw Y   yxY w)z[For `envelope()` Raise all exceptions that are used to verify function
        parameters. z'Invalid parameter axis=2 for z.shape=.*r  rF   rL   rú  Nz&z.shape\[axis\] not > 0 for z.shape=.*)rF   r   rK   )rÉ  )r   rW  )NrW  z, zbp_in=\(z\) isn't a 2-tuple of.*rG   )Úbp_inz)n_out=10.0 is not a positive integer or.*rù  )Ún_out))r“   rF   r›  )r   rM   z&`-n//2 <= bp_in\[0\] < bp_in\[1\] <=.*zresidual='undefined' not in .*Ú	undefined©Úresidual)	r  r	   r¤   r!   rv   r^  ÚjoinÚmaprü  )rU   re  Útss      rY   Ú test_envelope_invalid_parametersz-TestEnvelope.test_envelope_invalid_parameters=  s°  € ô �]‰]œ:Ø!KôMñ 	)ä”R—W‘W˜Q“Z aÕ(÷	)ô �]‰]œ:Ø!JôLñ 	.ä”R—W‘W˜V“_¨1Õ-÷	.ð 6ò 	2ˆEØ—‘œ3œs E›?Ó+ˆBÜ—‘œzØ(0°°Ð4KÐ%LôNñ 2ô œŸ™ ›¨5Õ1÷2ð 2ð	2ô �]‰]œ:Ø!LôNñ 	,ô ”R—W‘W˜Q“Z sÕ+÷	,ð 0ò 	2ˆEÜ—‘œzØ%NôPñ 2äœŸ™ ›¨5Õ1÷2ð 2ð	2ô �]‰]œ:Ð-MÔNñ 	7ä”R—W‘W˜Q“Z¨+Õ6÷	7ð 	7÷)	)ñ 	)ú÷	.ñ 	.ú÷
2ñ 2ú÷	,ð 	,ú÷
2ð 2ú÷	7ð 	7úsG   œ!GÁ !GÃ!G%Ä!G2Å!G>Æ!!H
ÇGÇG"Ç%G/	Ç2G;Ç>H	È
Hc                 ó®  — g d¢g d¢}}t        j                  |«      }t        |«      }t        |ddd¬«      \  }}| j	                  t        j
                  |«      t        j                  g d¢«      j                  t        «      d¬	«       | j	                  t        j
                  |«      t        j                  g d
¢«      j                  t        «      d¬	«       t        |ddd¬«      \  }}| j	                  |dz  |d¬	«       | j	                  ||d¬	«       t        |dddd|z  ¬«      \  }	}
| j	                  |	ddd…   |d¬	«       | j	                  |
ddd…   |d¬	«       t        |ddd¬«      \  }}| j	                  ||d¬	«       | j	                  t        j
                  |«      t        j                  g d¢«      j                  t        «      d¬	«       t        |ddd¬«      }| j	                  ||d¬	«       t        j                  |«      }|ddxxx dz  ccc t        j                  ||¬«      }| j	                  |j                  |d¬	«       t        |ddd¬«      \  }}| j	                  ||j                  t        «      d¬	«       | j	                  t        j                  |«      t        j                  |«      j                  t        «      d¬	«       y)zEEnsure that the various parametrizations produce compatible results. )rG   rL   rL   rF   r   )rG   r   r   rI   r   r   r   r   r‰  ÚallT©ri  Úsquared©rG   rL   r   r   r   úEnvelope calculation errorrþ  )rG   r   r   rF   r   úResidual calculation errorFrL   z3Unsquared versus Squared envelope calculation errorz3Unsquared versus Squared residual calculation errorrF   )ri  rq  rf  Nz(3x up-sampled envelope calculation errorz(3x up-sampled residual calculation errorÚlowpassz/`residual='lowpass'` envelope calculation error)rG   r   r   r   r   z/`residual='lowpass'` residual calculation errorz*`residual=None` envelope calculation errorrK   )rì   zReference analytic signal errorz"Complex envelope calculation errorz"Complex residual calculation error)rà  Úirfftr:  r!   rc  Úrfftrv   r   rê   r)  rë  ÚifftrØ  r   )rU   ÚZÚZr_arm   rì   Úze2_0Úzr_0Úze_1Úzr_1Úze2_2Úzr_2Úze2_3Úzr_3Úze2_4ÚZ_aÚz_aÚze2_aÚzr_as                     rY   Útest_envelope_verify_parametersz,TestEnvelope.test_envelope_verify_parametersX  s«  € â!Ò#;ˆ4ˆÜ�L‰L˜‹OˆÜ�‹Fˆô ˜q &°5À$ÔG‰ˆˆtØ×Ñœ&Ÿ+™+ eÓ,¬b¯h©h²Ó.G×.NÑ.NÌwÓ.WØ:ð 	ô 	<à×Ñœ&Ÿ+™+ dÓ+¬R¯X©X²oÓ-F×-MÑ-MÌgÓ-VØ:ð 	ô 	<ô ˜a °%ÀÔG‰
ˆˆdØ×Ñ˜$ ™' 5ØSð 	ô 	Uà×Ñ˜$ ØSð 	ô 	Uô ˜q &°5À$ÈaÐPQÉcÔR‰ˆˆtØ×Ñ˜%¡ ! ™* eØHð 	ô 	Jà×Ñ˜$™s ˜s™) TØHð 	ô 	Jô ˜q &°9ÀdÔK‰ˆˆtØ×Ñ˜% ØOð 	ô 	Qà×Ñœ&Ÿ+™+ dÓ+¬R¯X©X²oÓ-F×-MÑ-MÌgÓ-VØOð 	ô 	Qô ˜˜F¨T¸4Ô@ˆØ×Ñ˜% ØJð 	ô 	Lô �g‰g�a‹jˆØˆAˆB‹�1‰‹Ü�k‰k˜# Ô#ˆØ×Ñ˜#Ÿ(™( AØ?ð 	ô 	Aä˜s F°UÀDÔI‰ˆˆtØ×Ñ˜% §¡¬gÓ!6ØBð 	ô 	Dà×Ñœ&Ÿ*™* TÓ*¬B¯H©H°T«N×,AÑ,AÄ'Ó,JØBð 	õ 	Dr[   z@               Z,        bp_in,     Ze2_desired,      Zr_desired©rK   r   rL   rL   r   )rK   Nrr  ©rK   r   r   r   r   )rG   r   rL   r   r   )r   N)r   r   r   r   r   )rG   r   r   rL   r   ©NN)r   r   rL   rL   r   r‰  )rL   r   r   r   r   )r   r   r   rL   r   )rG   r   rL   rL   r   )éýÿÿÿrF   )rG   r   rF   rG   r   rç  )r   r   rF   rG   r   r…  c                 óô  — t        j                  |«      }t        ||dd¬«      \  }}t        ||dd¬«      \  }}	d„ ||||	fD «       \  }
}}}t        j                  |«      j                  t        «      }t        j                  |«      j                  t        «      }| j                  |
|d¬«       | j                  ||d¬«       |d	   �d||d	   d
 | j                  ||d¬«       | j                  ||d¬«       y
)a  Test envelope calculation with real-valued test signals.

        The comparisons are performed in the Fourier space, since it makes evaluating
        the bandpass filter behavior straightforward. Note that also the squared
        envelope can be easily calculated by hand, if one recalls that coefficients of
        a complex-valued Fourier series representing the signal can be directly
        determined by an FFT and that the absolute square of a Fourier series is again
        a Fourier series.
        ro  Trp  ru  c              3   óF   K  — | ]  }t        j                  |«      –— Œ y ­wr(  ©rà  rw  ©Ú.0Úz_s     rY   ú	<genexpr>z:TestEnvelope.test_envelope_real_signals.<locals>.<genexpr>�  s   è ø€ Ò!U°b¤&§+¡+¨b§/Ñ!Uùó   ‚!z+Envelope calculation error (residual='all')rþ  z+Residual calculation error (residual='all')rK   Nr   z/Envelope calculation error (residual='lowpass')z/Residual calculation error (residual='lowpass'))rà  rv  r!   rv   r   rê   r)  rc  )rU   ry  re  ÚZe2_desiredÚ
Zr_desiredrm   Úze2ÚzrÚze2_lpÚzr_lpÚZe2ÚZrÚZe2_lpÚZr_lps                 rY   Útest_envelope_real_signalsz'TestEnvelope.test_envelope_real_signals‡  s  € ô& �L‰L˜‹OˆÜ˜1˜e¨e¸TÔB‰ˆˆRÜ   E°IÀtÔL‰ˆ�Ù!U¸SÀ"ÀfÈeÐ<TÔ!UÑˆˆR�˜ä—h‘h˜{Ó+×2Ñ2´7Ó;ˆÜ—X‘X˜jÓ)×0Ñ0´Ó9ˆ
Ø×Ñ˜#˜{ØKð 	ô 	Mà×Ñ˜"˜jØKð 	ô 	Mð �‰8ÐØ$%ˆJ�u˜Q‘x�yÐ!Ø×Ñ˜& +ØOð 	ô 	Qà×Ñ˜% ØOð 	õ 	Qr[   zG               Z,        bp_in,         Ze2_desired,         Zr_desired)r   rH   r   rH   r   ©rH   r   rM   r   rH   ©rK   rH   r   rH   rL   ©r“   rL   ©rK   r   r   r   rL   )rK   rL   rI   r   rI   rF   )r   rI   r   rR   r   rI   )rK   rL   r   r   r   rF   c                 ó|  — t        j                  t        j                  |«      «      }t        ||dd¬«      \  }}d„ ||fD «       \  }}	| j	                  |t        j                  |«      j                  t        «      d¬«       | j	                  |	t        j                  |«      j                  t        «      d¬«       y)	zßTest envelope calculation with complex-valued test signals.

        We only need to test for the complex envelope here, since the ``Nones``s in the
        bandpass filter were already tested in the previous test.
        ro  Trp  c              3   ól   K  — | ],  }t        j                  t        j                  |«      «      –— Œ. y ­wr(  ©rà  Úfftshiftr   r�  s     rY   r“  z=TestEnvelope.test_envelope_complex_signals.<locals>.<genexpr>»  s!   è ø€ ÒG°r”6—?‘?¤6§:¡:¨b£>×2ÑGùs   ‚24rs  rþ  rt  N)	rà  rx  Ú	ifftshiftr!   rc  rv   r   rê   r)  )
rU   ry  re  r•  r–  rm   r—  r˜  r›  rœ  s
             rY   Útest_envelope_complex_signalsz*TestEnvelope.test_envelope_complex_signals­  sŸ   € ô �K‰Kœ×(Ñ(¨Ó+Ó,ˆÜ˜1˜e¨e¸TÔB‰ˆˆRÙG¸cÀ2¸YÔG‰ˆˆRà×Ñ˜#œrŸx™x¨Ó4×;Ñ;¼GÓDØ:ð 	ô 	<à×Ñ˜"œbŸh™h zÓ2×9Ñ9¼'ÓBØ:ð 	õ 	<r[   c                 ó  — t        j                  g d¢g d¢g«      }t        j                  g d¢g d¢gt        ¬«      }t        j                  g d¢g d¢gt        ¬«      }t        |dd	¬
«      \  }}t        |j                  dd¬
«      \  }}d„ ||j                  ||j                  fD «       \  }}	}
}| j                  ||d¬«       | j                  |
|d¬«       | j                  |	|d¬«       | j                  ||d¬«       y)z.Test for multi-channel envelope calculations. r‰  )rƒ   r   rG   rG   r   rr  )r„   r‘   r   r   r   r  rŠ  )rƒ   r   r   r   r   TrK   )rq  rÊ  r   c              3   óF   K  — | ]  }t        j                  |«      –— Œ y ­wr(  r�  r�  s     rY   r“  zCTestEnvelope.test_envelope_verify_axis_parameter.<locals>.<genexpr>Ë  s   è ø€ ÒO°œFŸK™K¨ŸOÑOùr”  ú2d envelope calculation errorrþ  ú2d residual calculation errorú"Transposed 2d envelope calc. errorú"Transposed 2d residual calc. errorN)rà  rv  rv   r   r)  r!   rA  rc  )rU   rm   r•  r–  r—  r˜  Úye2TÚyrTr›  ÚYe2rœ  ÚYrs               rY   Ú#test_envelope_verify_axis_parameterz0TestEnvelope.test_envelope_verify_axis_parameterÂ  sç   € ä�L‰Lš/ª?Ð;Ó<ˆÜ—h‘h¢Ò1AÐBÜ%,ô.ˆä—X‘Xš²Ð@ÌÔPˆ
ä˜1 d°Ô3‰ˆˆRÜ˜QŸS™S¨$°QÔ7‰	ˆˆcÙO°s¸D¿F¹FÀBÈÏÉÐ6NÔOÑˆˆS�"�bà×Ñ˜#˜{Ð0OÐÔPØ×Ñ˜"˜jÐ/NÐÔOØ×Ñ˜#˜{Ð0TÐÔUØ×Ñ˜"˜jÐ.RÐÕSr[   c                 óH  — t        j                  t        j                  g d¢g d¢gd¬«      «      }t        j                  g d¢g d¢gt
        ¬«      }t        j                  g d¢g d¢gt
        ¬«      }t        d	d
d¬«      }t        |fddi|¤Ž\  }}t        |j                  fddi|¤Ž\  }}d„ ||j                  ||j                  fD «       \  }	}
}}| j                  |	|d¬«       | j                  ||d¬«       | j                  |
|d¬«       | j                  ||d¬«       y)zBTest for multi-channel envelope calculations with complex values. r¡  )rK   rM   r   rM   rL   rK   r™  r   )rû   r   r/  r   rû   r  r£  r¢  ro  T)re  ri  rq  rÊ  r   c              3   óp   K  — | ].  }t        j                  t        j                  |«      d ¬«      –— Œ0 y­w)rK   r™  Nr¦  r�  s     rY   r“  zKTestEnvelope.test_envelope_verify_axis_parameter_complex.<locals>.<genexpr>Ü  s0   è ø€ ò @Ø "ô #ŸO™O¬F¯J©J°r«NÀ×CÐCñ @ùs   ‚46r¬  rþ  r­  r®  r¯  N)
rà  rx  r¨  rv   r   r)  rÖ  r!   rA  rc  )rU   rm   ÚZe2_desÚZr_desÚkwr—  r˜  r°  r±  r›  r²  rœ  r³  s                rY   Ú+test_envelope_verify_axis_parameter_complexz8TestEnvelope.test_envelope_verify_axis_parameter_complexÒ  s  € ä�K‰Kœ×(Ñ(ª/Ò;LÐ)MÐTUÔVÓWˆÜ—(‘(Ò,Ò.@ÐBÜ!(ô*ˆä—‘š?ªOÐ<ÄGÔLˆä˜¨%¸Ô>ˆÜ˜1Ñ+ 1Ð+¨Ñ+‰ˆˆRÜ˜QŸS™SÑ/ qÐ/¨BÑ/‰	ˆˆcñ@Ø'*¨D¯F©F°B¸¿¹Ð&>ô@ÑˆˆS�"�bð 	×Ñ˜#˜wÐ,KÐÔLØ×Ñ˜"˜fÐ*IÐÔJØ×Ñ˜#˜wÐ-QÐÔRØ×Ñ˜"˜fÐ+OÐÕPr[   ÚX)rG   r   r   rK   rL   )rG   r   r   rL   rK   rL   c                 ó®   — t        j                  |«      }t        j                  t	        |«      «      }t        |dd¬«      }| j                  ||d¬«       y)z0Compare output of `envelope()` and `hilbert()`. r‹  Nrh  z!Hilbert-Envelope comparison errorrþ  )rà  rv  rv   r  r"   r!   rc  )rU   r»  rk   Úe_hilÚe_envs        rY   Útest_compare_envelope_hilbertz*TestEnvelope.test_compare_envelope_hilbertä  sG   € ô �L‰L˜‹OˆÜ—‘”w˜q“zÓ"ˆÜ˜˜L°4Ô8ˆØ×Ñ˜% Ð,OÐÕPr[   N)r§   r¨   r©   Ú__doc__Ústaticmethodrc  rm  rˆ  r  r  rr  rŸ  r©  r´  rº  r¿  rª   r[   rY   r`  r`  5  s6  „ Ù>àñNó ðNò7ò6-Dð^ ‡[�[×ÑØJÚ
˜iªº/Ð	JÚ
˜iªº/Ð	JÚ
˜<ªº/Ð	JÚ
 ªº/Ð	JÚ
 ªº/Ð	JÚ
˜iªº/Ð	JÚ
˜iªº/Ð	Jð	LóMñQóMðQð: ‡[�[×ÑØQÚ
˜<Ò,<ÂÐ	QÚ
 Ò,<ÂÐ	QÚ
 Ò)<Ò>PÐ	Qð	óñ<óð<òTò Qð$ ‡[�[×Ñ˜S¢?Ò4FÐ"GÓHñQó IñQr[   r`  c                   óx   — e Zd Zedd„«       Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestPartialFractionExpansionc                 ó<  — t        j                  |«      }t        j                  |«      }t        j                  t        |d d …d f   |z
  «      t        | d d …d f   |z
  «      «      }t	        |«      \  }}t        ||   ||   |¬«       t        | |   ||   |¬«       y )Nr±  )rv   r  Úhypotr  r   r   )r‘  rç  Úr_trueÚp_truer²  ÚdistanceÚrowsÚcolss           rY   Úassert_rp_almost_equalz3TestPartialFractionExpansion.assert_rp_almost_equalî  s�   € ä—‘˜FÓ#ˆÜ—‘˜FÓ#ˆä—8‘8œC ¢! T '¡
¨VÑ 3Ó4Ü ¢! T '¡
¨VÑ 3Ó4ó6ˆô +¨8Ó4‰
ˆˆdÜ˜A˜d™G V¨D¡\¸7ÕCÜ˜A˜d™G V¨D¡\¸7ÖCr[   c                 ó´  — t        g d¢g d¢«      \  }}t        t        |«      d«       t        |d   t	        j
                  g d¢«      «       t        |d   t	        j
                  g d¢«      «       t        |d   t	        j
                  g d	¢«      «       t        |t	        j
                  g d
¢«      «       t        g d¢g d¢d¬«      \  }}t        t        |«      d«       t        |d   t	        j
                  g d¢«      «       t        |d   t	        j
                  g d¢«      «       t        |d   t	        j
                  g d¢«      «       t        |d   t	        j
                  g d¢«      «       t        |d   t	        j
                  g d¢«      «       t        |d   t	        j
                  g d	¢«      «       t        |t	        j
                  g d
¢«      «       y )NrJ   rË  rF   r   )rL   rL   rF   rK   )rK   rK   rK   rF   rL   )rK   rK   rK   rL   rL   )rK   rK   rK   rL   rL   rF   T)Úinclude_powersrI   )rK   rK   rL   rL   rF   )rK   rL   rL   rF   )rK   rK   rK   rL   rF   rG   rH   )r:   r
   r:  r   rv   r?  )rU   Úfactorsr?  s      rY   Útest_compute_factorsz1TestPartialFractionExpansion.test_compute_factorsú  s:  € Ü(ª²IÓ>‰ˆ�Ü”S˜“\ 1Ô%Ü˜G A™J¬¯©²	Ó(:Ô;Ü˜G A™J¬¯©²Ó(=Ô>Ü˜G A™J¬¯©²Ó(@ÔAÜ˜D¤"§'¡'Ò*<Ó"=Ô>ä(ª²IØ8<ô>‰ˆ�ä”S˜“\ 1Ô%Ü˜G A™J¬¯©²Ó(@ÔAÜ˜G A™J¬¯©²Ó(=Ô>Ü˜G A™J¬¯©²	Ó(:Ô;Ü˜G A™J¬¯©²Ó(@ÔAÜ˜G A™J¬¯©²Ó(=Ô>Ü˜G A™J¬¯©²Ó(@ÔAÜ˜D¤"§'¡'Ò*<Ó"=Õ>r[   c                 ó`   — t        g d¢dd«      \  }}t        |g d¢«       t        |g d¢«       y )N)rQ  gj¼t“ð?g?5^ºIð?rW  g /Ý$ @rY  r  Úminr  rË  )r;   r
   ©rU   ÚuniqueÚmultiplicitys      rY   Útest_group_polesz-TestPartialFractionExpansion.test_group_poles  s,   € Ü+Ú0°#°uó >Ñˆ�ä�Vš_Ô-Ü�\¢9Õ-r[   c                 ó¾  — t        g d¢g d¢«      \  }}}t        |g d¢d¬«       t        |g d¢d¬«       t        |dgd¬«       t        dd	gg d
¢«      \  }}}t        |d	dg«       t        |ddg«       t        |j                  d«       t        ddgg d¢«      \  }}}t        |ddg«       t        |ddg«       t        |j                  d«       t        ddgg d¢«      \  }}}| j	                  ||g d¢g d¢«       t        |j                  d«       t        ddgg d¢«      \  }}}| j	                  ||g d¢g d¢«       t        |j                  d«       t        g d¢g d¢«      \  }}}t        |g d¢«       t        |g d¢«       t        |ddg«       t        dgg d¢«      \  }}}t        |ddg«       t        |dd g«       t        |j                  d«       t        g d!¢g d"¢«      \  }}}| j	                  ||g d#¢g d$¢«       t        |j                  d«       t        g d%¢g d&¢«      \  }}}| j	                  ||g d'¢g d(¢«       t        |j                  d«       t        ddgg d)¢«      \  }}}t        |dd*g«       t        |ddg«       t        |j                  d«       t        g d+¢g d)¢«      \  }}}t        |dd,g«       t        |ddg«       t        |dg«       t        g d-¢g d)¢«      \  }}}t        |d.d/g«       t        |ddg«       t        |d0d1g«       t        g d+¢g d2¢«      \  }}}| j	                  ||g d3¢g d4¢«       t        |j                  d«       y )5N©rH   rF   r§  rƒ   ©rð  r   r‘   rF   )gZd;ßOõ?gîëÀ9#Jå¿g&äƒžÍªö¿rG   r±  )gà-� ø1Ú¿gþe÷äa¡ò¿gvqà-ù?g      ô¿rð  r‘   ©rK   rI   r‘   iôÿÿÿr§  r   rK   )rK   r“   r§  rF   r“   rL   )rL   g333333Àg®Gáz®ÿ?g–C‹lçûÙ¿)y      2À     @*Ày      2À     @*@g      B@)y      à?š™™™™™É¿y      à?š™™™™™É?gffffffæ?)rK   rH   r‘   rG   )r“   rK   rF   )r“   r§  r§  )rF   gš™™™™™ñ¿g)\�Âõ(ì?g^ºI+ÀgÅ °rh‘õ?)rK   gffffffæ¿gìQ¸…ëÁ¿gú~j¼t“¨?)rŒ  rG   rK   )rÿ  g333333Ó¿r  )rK   rL   rŒ  r¡  ç      Ð¿rŒ  )rK   r   r‚  )rK   r   r   r   r“   )rK   y              ø?y       €      ø¿r“   )r“   ù       €      ð¿r’   rK   )rF   r‘   rI   ©rK   rF   rF   rK   rJ   ©r“   r“   r“   )rK   rŒ  rL   rH   )rL   rF   r“   ri  )rƒ   rL   rF   r“   rƒ  éE   rƒ   rQ   )rK   rŒ  rG   r§  )rG   y      ð¿      @y      ð¿      À)rK   ù      ð?      ð¿rg   )r6   r   r
   rÙ   rË  ©rU   r‘  rç  re  s       rY   Útest_residue_generalz1TestPartialFractionExpansion.test_residue_general  s	  € ô š-ªÓ7‰ˆˆ1ˆaÜ˜AÒ9À1ÕEÜ˜AÒ9À1ÕEÜ˜A ˜y°!Õ4ä˜2˜q˜'¢9Ó-‰ˆˆ1ˆaÜ˜A  3˜xÔ(Ü˜A  B˜xÔ(Ü�Q—V‘V˜QÔä˜1˜a˜&¢+Ó.‰ˆˆ1ˆaÜ˜A  1˜vÔ&Ü˜A  A˜wÔ'Ü�Q—V‘V˜QÔä˜1˜a˜&Ò"9Ó:‰ˆˆ1ˆaØ×#Ñ#ØˆqÒ?Ú)ô	+ô 	�Q—V‘V˜QÔä˜1˜a˜&¢,Ó/‰ˆˆ1ˆaØ×#Ñ# A qª*²lÔCÜ�Q—V‘V˜QÔäÒ8Ú1ó3‰ˆˆ1ˆaä˜AšzÔ*Ü˜AÒ/Ô0Ü˜A  1˜vÔ&ä˜1˜#šzÓ*‰ˆˆ1ˆaÜ˜A  e˜}Ô-Ü˜A  2˜wÔ'Ü�Q—V‘V˜QÔäš*Ò&6Ó7‰ˆˆ1ˆaØ×#Ñ# A qÚ$8Ò:Jô	Lä�Q—V‘V˜QÔäš)¢\Ó2‰ˆˆ1ˆaØ×#Ñ# A qª)²\ÔBÜ�Q—V‘V˜QÔä˜1˜b˜'¢:Ó.‰ˆˆ1ˆaÜ˜A  A˜wÔ'Ü˜A  1˜vÔ&Ü�Q—V‘V˜QÔäš*¢jÓ1‰ˆˆ1ˆaÜ˜A  B˜xÔ(Ü˜A  1˜vÔ&Ü˜A ˜sÔ#äš-ªÓ4‰ˆˆ1ˆaÜ˜A  R˜yÔ)Ü˜A  1˜vÔ&Ü˜A  2˜wÔ'äš*¢nÓ5‰ˆˆ1ˆaØ×#Ñ# A qÒ*CÚ$7ô	9ä˜AŸF™F AÕ&r[   c                 ó|  — t        g d¢g d¢«      \  }}}t        g d¢g d¢«      \  }}}t        g d¢g d¢«      \  }}}	t        g d¢g d¢«      \  }
}}t        ||«       t        ||«       t        ||
«       t        ||«       t        ||«       t        ||«       t        ||«       t        ||	«       t        ||«       y )Nr×  rØ  )r   rH   rF   r§  rƒ   )r   rð  r   r‘   rF   )r   r   rH   rF   r§  rƒ   )r   r   r   rð  r   r‘   rF   )r6   r   ©rU   Úr0Úp0Úk0Úr1Úp1Úk1Úr2Úp2Úk2Úr3Úp3Úk3s                rY   Útest_residue_leading_zerosz7TestPartialFractionExpansion.test_residue_leading_zerosW  s¨   € äš]ªMÓ:‰
ˆˆB�ÜÒ-ª}Ó=‰
ˆˆB�Üš]Ò,<Ó=‰
ˆˆB�ÜÒ0Ò2HÓI‰
ˆˆB�Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Õ#r[   c                 ó¬  — t        ddgg d¢«      \  }}}t        |ddg«       t        |ddg«       t        |j                  d«       t        dd«      \  }}}t        |j                  d«       t        |j                  d«       t        |j                  d«       t	        j
                  t        d¬«      5  t        dd«       d d d «       y # 1 sw Y   y xY w)Nr   rÙ  r§  rð  rK   úDenominator `a` is zero.r  )r6   r   r
   rÙ   r  r	   r¤   rà  s       rY   Útest_resiude_degeneratez4TestPartialFractionExpansion.test_resiude_degenerateg  sª   € ä˜1˜a˜&¢)Ó,‰ˆˆ1ˆaÜ˜A  1˜vÔ&Ü˜A  B˜xÔ(Ü�Q—V‘V˜QÔä˜!˜Q“-‰ˆˆ1ˆaÜ�Q—V‘V˜QÔÜ�Q—V‘V˜QÔÜ�Q—V‘V˜QÔä�]‰]œ:Ð-GÔHñ 	Ü�A�qŒM÷	÷ 	ñ 	ús   Â4C
Ã
Cc                 óÌ  — t        g d¢g d¢«      \  }}}| j                  ||g d¢g d¢«       t        |dg«       t        g d¢g d¢«      \  }}}| j                  ||dd	gd
dgd¬«       t        |dgd¬«       t        ddgg d¢«      \  }}}t        |ddg«       t        |ddg«       t        |j                  d«       t        g d¢g d¢«      \  }}}| j                  ||g d¢g d¢«       t        |j                  d«       t        g d¢g d¢«      \  }}}t        |ddg«       t        |ddg«       t        |ddg«       t        dgg d¢«      \  }}}| j                  ||g d ¢g d!¢«       t        |j                  d«       t        ddgt        j                  dd"gdd#g«      «      \  }}}t        |d$d%g«       t        |d&dg«       t        |j                  d«       t        g d'¢ddg«      \  }}}t        |dg«       t        |dg«       t        |ddg«       t        ddd(g«      \  }}}t        |dg«       t        |d)g«       t        |j                  d«       t        dg d*¢«      \  }}}t        |ddg«       t        |ddg«       t        |j                  d«       t        dg d+¢«      \  }}}t        |ddg«       t        |d#dg«       t        |j                  d«       t        g d,¢g d'¢«      \  }}}t        |d-d.g«       t        |ddg«       t        |dg«       t        d/dgg d'¢«      \  }}}t        |d0d1g«       t        |ddg«       t        |j                  d«       t        g d¢g d'¢«      \  }}}t        |d2d3g«       t        |ddg«       t        |d4dg«       t        g d5¢g d6¢«      \  }}}| j                  ||g d7¢g d8¢d¬«       t        |j                  d«       y )9N)rK   rI   rI   rL   )rK   y       À      ð¿r³  rÛ  )y       À      @y      @      @y      À      (À)r’   rK   rK   rj   )rK   rL   rK   )rK   r“   g'Â†§WÊÖ?y	Šcîì¿à-� øÀy	Šcîì¿à-� ø@y      à?*©ÐDØÔ?y      à?*©ÐDØÔ¿rG   r±  g�Å�1w@rK   r“   )rK   r‚  rI   rL   rF   r   r�   rÜ  )rG   r‚  rF   rÝ  )rK   rj  rð  rG   )rL   r§  rð  rû  g      ø¿ç      ø?r]  )r]  rF   rð  r“   )g
×£p=
×?g¸…ëQ¸Î?çš™™™™™Ù?)rû  çUUUUUUÕ¿r÷  r^  r¡  g«ªªªªª
ÀgUUUUUU@rÚ  ©rK   r§  rK   rÛ  r’   )rK   r“   r¡  )rK   g      è¿rŠ  )rK   rI   rL   rj  r  rI   r§  r‘   ièÿÿÿra  rM   rH  )rK   r   r   r   r   r“   )yoð…ÉTÁÐ?cÙ=yXÈ?yoð…ÉTÁÐ?cÙ=yXÈ¿rö  yjMóŽ£?%uš¾¿yjMóŽ£?%uš¾?)yÙÎ÷Sãé¿s×òAÏâ?yÙÎ÷Sãé¿s×òAÏâ¿rQ  y-²�ï§ÆÓ?8gDioî?y-²�ï§ÆÓ?8gDioî¿)r7   rË  r   r
   rÙ   rv   Úpolymulrà  s       rY   Útest_residuez_generalz2TestPartialFractionExpansion.test_residuez_generalv  s´  € Üš<Ò)FÓG‰ˆˆ1ˆaØ×#Ñ# A qÒ*GÚ$.ô	0ä˜A ˜tÔ$äš9¢oÓ6‰ˆˆ1ˆaØ×#Ñ# A qØ%6Ð8IÐ$JØ%2°MÐ$BØ,-ð 	$ô 	/ô 	˜A ˜x°Õ3ä˜A˜r˜7¢JÓ/‰ˆˆ1ˆaÜ˜A  A˜wÔ'Ü˜A  1˜vÔ&Ü�Q—V‘V˜QÔäš9¢lÓ3‰ˆˆ1ˆaØ×#Ñ# A qª*²lÔCÜ�Q—V‘V˜QÔäš?ªKÓ8‰ˆˆ1ˆaÜ˜A  T˜{Ô+Ü˜A  A˜wÔ'Ü˜A  R˜yÔ)ä˜B˜4¢Ó1‰ˆˆ1ˆaØ×#Ñ# A qÚ$5Ò7Hô	Jä�Q—V‘V˜QÔä˜A˜q˜6¤2§:¡:¨q°$¨i¸!¸S¸Ó#BÓC‰ˆˆ1ˆaÜ˜A  t˜}Ô-Ü˜A  s˜|Ô,Ü�Q—V‘V˜QÔäš:¨¨2 wÓ/‰ˆˆ1ˆaÜ˜A ˜sÔ#Ü˜A ˜sÔ#Ü˜A  2˜wÔ'ä˜1˜q #˜hÓ'‰ˆˆ1ˆaÜ˜A ˜sÔ#Ü˜A ˜tÔ$Ü�Q—V‘V˜QÔä˜1šmÓ,‰ˆˆ1ˆaÜ˜A  1˜vÔ&Ü˜A  S˜zÔ*Ü�Q—V‘V˜QÔä˜1Ò.Ó/‰ˆˆ1ˆaÜ˜A  A˜wÔ'Ü˜A  c˜{Ô+Ü�Q—V‘V˜QÔäš9¢jÓ1‰ˆˆ1ˆaÜ˜A  Q˜xÔ(Ü˜A  1˜vÔ&Ü˜A ˜sÔ#ä˜A˜q˜6¢:Ó.‰ˆˆ1ˆaÜ˜A  A˜wÔ'Ü˜A  1˜vÔ&Ü�Q—V‘V˜QÔäš<ªÓ4‰ˆˆ1ˆaÜ˜A  R˜yÔ)Ü˜A  1˜vÔ&Ü˜A  A˜wÔ'äš9Ò&9Ó:‰ˆˆ1ˆaØ×#Ñ# A qò%Nò%Nà,-ð 	$ô 	/ô 	�Q—V‘V˜QÕr[   c                 ó|  — t        g d¢g d¢«      \  }}}t        g d¢g d¢«      \  }}}t        g d¢g d¢«      \  }}}	t        g d¢g d¢«      \  }
}}t        ||«       t        ||«       t        ||
«       t        ||«       t        ||«       t        ||«       t        ||«       t        ||	«       t        ||«       y )Nr×  rØ  )rH   rF   r§  rƒ   r   )rð  r   r‘   rF   r   )rH   rF   r§  rƒ   r   r   )rð  r   r‘   rF   r   r   r   )r7   r   rã  s                rY   Útest_residuez_trailing_zerosz9TestPartialFractionExpansion.test_residuez_trailing_zerosÇ  sª   € ô šmª]Ó;‰
ˆˆB�ÜÒ.²Ó>‰
ˆˆB�ÜšmÒ-=Ó>‰
ˆˆB�ÜÒ1Ò3IÓJ‰
ˆˆB�Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Ô#Ü˜B Õ#r[   c                 ó(  — t        ddgg d¢«      \  }}}t        |ddg«       t        |ddg«       t        |j                  d«       t        dd«      \  }}}t        |j                  d«       t        |j                  d«       t        |j                  d«       t	        j
                  t        d¬«      5  t        dd«       d d d «       t	        j
                  t        d¬«      5  t        dg d	¢«       d d d «       y # 1 sw Y   Œ<xY w# 1 sw Y   y xY w)
Nr   rÙ  r§  rð  rK   rò  r  z6First coefficient of determinant `a` must be non-zero.rÊ  )r7   r   r
   rÙ   r  r	   r¤   rà  s       rY   Útest_residuez_degeneratez5TestPartialFractionExpansion.test_residuez_degenerateØ  så   € Ü˜A˜q˜6¢9Ó-‰ˆˆ1ˆaÜ˜A  1˜vÔ&Ü˜A  B˜xÔ(Ü�Q—V‘V˜QÔä˜1˜a“.‰ˆˆ1ˆaÜ�Q—V‘V˜QÔÜ�Q—V‘V˜QÔÜ�Q—V‘V˜QÔä�]‰]œ:Ð-GÔHñ 	Ü�Q˜ŒN÷	ô �]‰]œ:ð"0ô1ñ 	&ô �QšÔ%÷	&ð 	&÷	ð 	ú÷	&ð 	&ús   Â4C<Ã$DÃ<DÄDc                 óÞ   — g d¢}g d¢}g }g d¢}g d¢}dD ]V  }t        ||||¬«      \  }}t        ||«       t        ||«       t        ||||¬«      \  }}t        ||«       t        ||«       ŒX y )N)rý  çUUUUUUÅ¿gÁ¿)r   r§  r‚  )r   rK   rF   )rK   rƒ   rM   r   ©Úavgr¶  rÑ  r¸  r  r¹  ©Úrtype©r*   r   r+   )	rU   r‘  rç  re  Ú
b_expectedÚ
a_expectedr  rW   rV   s	            rY   Ú*test_inverse_unique_roots_different_rtypeszGTestPartialFractionExpansion.test_inverse_unique_roots_different_rtypesë  s}   € â%ˆÚˆØˆÚˆ
Ú"ˆ
ð Iò 	+ˆEÜ˜!˜Q ¨Ô/‰DˆAˆqÜ˜A˜zÔ*Ü˜A˜zÔ*ä˜1˜a ¨%Ô0‰DˆAˆqÜ˜A˜zÔ*Ü˜A˜zÕ*ñ	+r[   c                 óî   — g d¢}g d¢}g }g d¢}g d¢}g d¢}dD ]Z  }t        ||||¬«      \  }}	t        ||d¬	«       t        |	|«       t        ||||¬«      \  }}	t        ||d¬	«       t        |	|«       Œ\ y )
N©g333333Ã?g9Žã8ŽãÈ¿r   glÁlÁ¦?©r   r§  r§  r‚  )r   r   rK   rF   )r   gUUUUUUå¿gUUUUUUý?rF   )rK   r  r-  rû   r   r  r  r�  rû  r  )
rU   r‘  rç  re  r  Úb_expected_zr  r  rW   rV   s
             rY   Ú,test_inverse_repeated_roots_different_rtypeszITestPartialFractionExpansion.test_inverse_repeated_roots_different_rtypesþ  sƒ   € Ú-ˆÚˆØˆÚ!ˆ
Ú,ˆÚ&ˆ
àHò 	+ˆEÜ˜!˜Q ¨Ô/‰DˆAˆqÜ˜A˜z°Õ6Ü˜A˜zÔ*ä˜1˜a ¨%Ô0‰DˆAˆqÜ˜A˜|°%Õ8Ü˜A˜zÕ*ñ	+r[   c                 ó  — g d¢}g d¢}g }t        j                  t        d¬«      5  t        |||d¬«       d d d «       t        j                  t        d¬«      5  t	        |||d¬«       d d d «       y # 1 sw Y   Œ=xY w# 1 sw Y   y xY w)Nr
  r  z`rtype` must be one ofr  r·  r  )r  r	   r¤   r*   r+   rà  s       rY   Útest_inverse_bad_rtypez3TestPartialFractionExpansion.test_inverse_bad_rtype  sz   € Ú-ˆÚˆØˆÜ�]‰]œ:Ð-EÔFñ 	,Ü�1�a˜ (Õ+÷	,ä�]‰]œ:Ð-EÔFñ 	-Ü�A�q˜! 8Õ,÷	-ð 	-÷	,ð 	,ú÷	-ð 	-ús   ¦A2ÁA>Á2A;Á>Bc                 ól   — dg}dg}dg}t        |||«      \  }}t        |dg«       t        |ddg«       y )NrK   rL   r   rQ  g       À)r+   r   )rU   r‘  rç  re  rW   rV   s         rY   Ú test_invresz_one_coefficient_bugz=TestPartialFractionExpansion.test_invresz_one_coefficient_bug  sC   € àˆCˆØˆCˆØˆCˆÜ�q˜!˜QÓ‰ˆˆ1Ü˜˜C˜5Ô!Ü˜˜C ˜;Õ'r[   c                 óæ  — t        dgdgg «      \  }}t        |dg«       t        |ddg«       t        g d¢g d¢g «      \  }}t        |g d¢«       t        |g d¢«       t        ddgdd	gg d
¢«      \  }}t        |g d¢«       t        |g d¢«       t        g d¢g d¢g «      \  }}t        |g d¢«       t        |g d¢«       t        ddgddgddg«      \  }}t        |g d¢«       t        |g d¢«       y )NrK   r“   ©rß  rL   ù      à?      À©rK   rÜ   rg   ©y      @      Ày      !À      Ð?y      @      
@©rK   y       À      ø¿y      à?       @y      à?      à¿rû  rß  r£  rJ   )rK   ù      ð¿      ð¿ù      ð?       Àr  rM   ©rK   ù      À      ð¿rG   ©r“   rL   r’   rÕ  rG   r§  ©r“   r´   r´   rF   rF   rF   )y      @      ð¿y      <À      0@y      D@      OÀy      Y@      8@y     @rÀ     `k@y      h@     ÀpÀ©rK   y      (À       @y     €J@      4Ày      XÀ      Q@y      ;@      RÀy      [@      KÀy     @TÀ      [@r’   rL   )rK   r   rð  ri   rø  )r*   r   ©rU   rW   rV   s      rY   Útest_invresz(TestPartialFractionExpansion.test_invres!  sõ   € Ü�q�c˜A˜3 Ó#‰ˆˆ1Ü˜A ˜sÔ#Ü˜A  2˜wÔ'äÒ+Ò->ÀÓC‰ˆˆ1Ü˜AÒDÔEÜ˜AÒCÔDä�s˜A�h ¨Ð 0²)Ó<‰ˆˆ1Ü˜AÒAÔBÜ˜AšÔ/äÒ0Ú3°Ró9‰ˆˆ1ä˜Aò  9ô 	:ä˜Aò  7ô 	8ô �r˜2�h  A ¨¨A¨Ó/‰ˆˆ1Ü˜AÒ1Ô2Ü˜AšzÕ*r[   c                 óæ  — t        dgdgg «      \  }}t        |dg«       t        |ddg«       t        g d¢g d¢g «      \  }}t        |g d¢«       t        |g d¢«       t        ddgdd	gg d
¢«      \  }}t        |g d¢«       t        |g d¢«       t        g d¢g d¢g «      \  }}t        |g d¢«       t        |g d¢«       t        ddgddgddg«      \  }}t        |g d¢«       t        |g d¢«       y )NrK   r“   r  r  r  r  rû  rß  r£  rJ   )g      @r  r  y      ð¿      ÀrR   r  r  r  )rI   y      IÀ      &@y      Y@      RÀy      T@      M@y      vÀ     €l@y     @m@     �rÀr  r’   rL   )r’   rK   rŒ  rL   rø  )r+   r   r  s      rY   Útest_invreszz)TestPartialFractionExpansion.test_invresz9  sô   € Ü˜�s˜Q˜C Ó$‰ˆˆ1Ü˜A ˜sÔ#Ü˜A  2˜wÔ'äÒ,Ò.?ÀÓD‰ˆˆ1Ü˜AÒDÔEÜ˜AÒCÔDä˜˜Q�x &¨&Ð!1²9Ó=‰ˆˆ1Ü˜AÒBÔCÜ˜AšÔ/äÒ1Ú4°bó:‰ˆˆ1ä˜Aò  9ô 	:ä˜Aò  7ô 	8ô ˜˜B�x ! Q ¨!¨Q¨Ó0‰ˆˆ1Ü˜Aš~Ô.Ü˜AšzÕ*r[   c                 ó´   — t        ddd«      \  }}t        |ddg«       t        |ddg«       t        ddd«      \  }}t        |ddg«       t        |ddg«       y )NrK   r   r“   rL   )r*   r   r+   r  s      rY   Útest_inverse_scalar_argumentsz:TestPartialFractionExpansion.test_inverse_scalar_argumentsQ  s]   € Ü�a˜˜A‹‰ˆˆ1Ü˜A  1˜vÔ&Ü˜A  2˜wÔ'ä�q˜!˜QÓ‰ˆˆ1Ü˜A  2˜wÔ'Ü˜A  2˜wÕ'r[   N)rƒ   )r§   r¨   r©   rÁ  rË  rÏ  rÕ  rá  rð  ró  rú  rü  rþ  r  r  r  r  r   r"  r$  rª   r[   rY   rÃ  rÃ  í  se   „ Øò	Dó ð	Dò?ò&.òB'òH$ò òO òb$ò"&ò&+ò&+ò"-ò(ò+ò0+ó0(r[   rÃ  c                   ó`   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestVectorstrengthc                 ó
  — t        j                  dg«      }d}d}d}t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       t        |dt         j                  z  |z  «       y )Nrû  r€  rQ  r  r   rL   ©rv   r   r,   r
   r–  r   r  ©rU   ÚeventsÚperiodÚtarg_strengthÚ
targ_phaseÚstrengthÚphases          rY   Útest_single_1dperiodz'TestVectorstrength.test_single_1dperiod]  sm   € Ü—‘˜2˜$“ˆØˆØˆØˆ
ä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÔ4Ü˜E 1¤r§u¡u¡9¨zÑ#9Õ:r[   c                 ó@  — t        j                  dg«      }g d¢}dgdz  }t        j                  g d¢«      }t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       t        |dt         j                  z  |z  «       y )Nrû  )rK   rL   r€  rQ  rF   )rû  r¡  r  rK   rL   )rv   r   r,   r
   r–  r   r   r  r)  s          rY   Útest_single_2dperiodz'TestVectorstrength.test_single_2dperiodj  s|   € Ü—‘˜2˜$“ˆÚˆØ˜˜q™ˆÜ—X‘XšmÓ,ˆ
ä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü! (¨MÔ:Ü˜E 1¤r§u¡u¡9¨zÑ#9Õ:r[   c                 ó  — t        j                  g d¢«      }d}d}d}t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       t        |dt         j                  z  |z  «       y )N©r¡  r¡  r¡  r¡  r¡  r¡  rL   rQ  rŠ  r   r(  r)  s          rY   Útest_equal_1dperiodz&TestVectorstrength.test_equal_1dperiodw  sm   € Ü—‘Ò8Ó9ˆØˆØˆØˆ
ä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÔ4Ü˜E 1¤r§u¡u¡9¨zÑ#9Õ:r[   c                 óB  — t        j                  g d¢«      }ddg}dgdz  }t        j                  ddg«      }t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       t        |dt         j                  z  |z  «       y )Nr4  rK   rL   rQ  r¡  rŠ  r(  r)  s          rY   Útest_equal_2dperiodz&TestVectorstrength.test_equal_2dperiod„  s„   € Ü—‘Ò8Ó9ˆØ�Q�ˆØ˜˜q™ˆÜ—X‘X˜s D˜kÓ*ˆ
ä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÔ4Ü˜E 1¤r§u¡u¡9¨zÑ#9Õ:r[   c                 ó  — t        j                  g d¢«      }d}d}d}t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       t        |dt         j                  z  |z  «       y )N©r  gš™™™™™ñ?gÍÌÌÌÌÌ @gffffff@g333333$@rK   rQ  r  r   rL   r(  r)  s          rY   Útest_spaced_1dperiodz'TestVectorstrength.test_spaced_1dperiod‘  sm   € Ü—‘Ò3Ó4ˆØˆØˆØˆ
ä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÔ4Ü˜E 1¤r§u¡u¡9¨zÑ#9Õ:r[   c                 óB  — t        j                  g d¢«      }ddg}dgdz  }t        j                  ddg«      }t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       t        |dt         j                  z  |z  «       y )Nr9  rK   rû  rQ  rL   r  rÿ  r(  r)  s          rY   Útest_spaced_2dperiodz'TestVectorstrength.test_spaced_2dperiodž  s„   € Ü—‘Ò3Ó4ˆØ�R�ˆØ˜˜q™ˆÜ—X‘X˜r 2˜hÓ'ˆ
ä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÔ4Ü˜E 1¤r§u¡u¡9¨zÑ#9Õ:r[   c                 ó  — t        j                  g d¢«      }d}d}d}t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       t        |dt         j                  z  |z  «       y )N©r¡  rû  ç      è?rK   çUUUUUUÕ?rû  r   rL   r(  r)  s          rY   Útest_partial_1dperiodz(TestVectorstrength.test_partial_1dperiod«  sl   € Ü—‘š.Ó)ˆØˆØˆØˆ
ä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÔ4Ü˜E 1¤r§u¡u¡9¨zÑ#9Õ:r[   c                 óB  — t        j                  g d¢«      }g d¢}dgdz  }t        j                  g d¢«      }t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       t        |dt         j                  z  |z  «       y )Nr>  )rQ  rQ  rQ  rQ  r@  rG   )rû  rû  rû  rû  rK   rL   r(  r)  s          rY   Útest_partial_2dperiodz(TestVectorstrength.test_partial_2dperiod¸  s|   € Ü—‘š.Ó)ˆÚ!ˆØ ˜	 A™ˆÜ—X‘XÒ.Ó/ˆ
ä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÔ4Ü˜E 1¤r§u¡u¡9¨zÑ#9Õ:r[   c                 óÈ   — t        j                  g d¢«      }d}d}t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       y )N©r   r¡  rû  r?  rQ  r   ©rv   r   r,   r
   r–  r   ©rU   r*  r+  r,  r.  r/  s         rY   Útest_opposite_1dperiodz)TestVectorstrength.test_opposite_1dperiodÅ  sQ   € Ü—‘Ò+Ó,ˆØˆØˆä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÕ4r[   c                 óØ   — t        j                  g d¢«      }dgdz  }dgdz  }t        ||«      \  }}t        |j                  d«       t        |j                  d«       t        ||«       y )NrE  rQ  rM   rü  rK   rF  rG  s         rY   Útest_opposite_2dperiodz)TestVectorstrength.test_opposite_2dperiodÐ  s]   € Ü—‘Ò+Ó,ˆØ�˜‘ˆØ˜˜r™	ˆä(¨°Ó8‰ˆ�%ä�X—]‘] AÔ&Ü�U—Z‘Z Ô#Ü˜H mÕ4r[   c                 ód   — t        j                  ddgg«      }d}t        t        t        ||«       y )NrK   rL   rQ  ©rv   r   r£   r¤   r,   ©rU   r*  r+  s      rY   Útest_2d_events_ValueErrorz,TestVectorstrength.test_2d_events_ValueErrorÛ  s)   € Ü—‘˜A˜q˜6˜(Ó#ˆØˆÜ”j¤.°&¸&ÕAr[   c                 ób   — d}t        j                  dgg«      }t        t        t        ||«       y )NrQ  rK   rL  rM  s      rY   Útest_2d_period_ValueErrorz,TestVectorstrength.test_2d_period_ValueErrorà  s&   € ØˆÜ—‘˜A˜3˜%“ˆÜ”j¤.°&¸&ÕAr[   c                 ó8   — d}d}t        t        t        ||«       y )NrQ  r   ©r£   r¤   r,   rM  s      rY   Útest_zero_period_ValueErrorz.TestVectorstrength.test_zero_period_ValueErrorå  s   € ØˆØˆÜ”j¤.°&¸&ÕAr[   c                 ó8   — d}d}t        t        t        ||«       y )NrQ  r“   rR  rM  s      rY   Útest_negative_period_ValueErrorz2TestVectorstrength.test_negative_period_ValueErrorê  s   € ØˆØˆÜ”j¤.°&¸&ÕAr[   N)r§   r¨   r©   r0  r2  r5  r7  r:  r<  rA  rC  rH  rJ  rN  rP  rS  rU  rª   r[   rY   r&  r&  [  sL   „ ò;ò;ò;ò;ò;ò;ò;ò;ò	5ò	5òBò
Bò
Bó
Br[   r&  c                 óî   — | j                   j                  dk(  rNt        j                  | j                  d   «      j                   }| j                  |«      |j                  |«      }} t        | |||«       y)z1Wrap assert_allclose while casting object arrays.rQ  r   N)rè   ré   rv   r   Úflatrê   r   )r2  rb  rß   rà   rè   s        rY   Úassert_allclose_castrX  ð  sY   € à‡|�|×Ñ˜CÒÜ—‘˜Ÿ™ Q™Ó(×.Ñ.ˆØ Ÿ-™-¨Ó.°·±¸uÓ0E�ˆÜ�F˜G T¨4Õ0r[   rQ  c                 ó@  — t        d«      t        d«      t        d«      g}t        d«      t        d«      t        d«      g}t        d«      t        d«      t        d«      g}t        j                  |«      }|j                  j                  dk(  sJ ‚t        t        j                  |t        «      t        j                  |t        «      |j                  t        «      «      }| t        u rt        ||z   g|«      }nt        |||«      }t        d„ |D «       «      sJ ‚t        |j                  t        «      |j                  t        «      «       | t
        u rddg}nt        dd«      g}t        j                  t        d¬«      5   | |d	diŽ d d d «       y # 1 sw Y   y xY w)
NrK   rL   rF   rQ  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr(  )rÕ  r   )r‘  rk   s     rY   r“  z)test_nonnumeric_dtypes.<locals>.<genexpr>  s   è ø€ Ò6¨!Œz˜!œW×%Ñ6ùs   ‚rQ  zmust be at least 1-Dr  rk   )r   rv   r   rè   ré   r$   rh  rê   r/   ro  r   r.   r  r	   r¤   )rQ  rk   rW   rV   rb  r2  rð   s          rY   Útest_nonnumeric_dtypesr[  ø  sA  € ô 
�‹”W˜Q“Z¤¨£Ð,€AÜ	�‹”W˜Q“Z¤¨£Ð,€AÜ	�‹”W˜Q“Z¤¨£Ð,€AÜ
�‰�‹€AØ�7‰7�<‰<˜3ÒÐÐÜ”b—h‘h˜q¤%Ó(¬"¯(©(°1´eÓ*<¸a¿h¹hÄu»oÓN€GØŒw�Ü˜!˜a™%˜ !Ó$‰ä˜˜A˜qÓ!ˆÜÑ6¨vÔ6Ô6Ð6Ð6Ü�F—M‘M¤%Ó(¨'¯.©.¼Ó*?Ô@àŒw�Ø�Bˆx‰ä�r˜2“Ðˆä	�‰”zÐ)?Ô	@ñ ÙˆdÐ�bÒ÷÷ ñ ús   Æ	FÆFÚfdFDc                   ón   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  d„ «       Zy	)
ÚTestSOSFiltc                 óZ  — t        j                  ddd«      j                  |«      }t        j                  ddg«      j                  |«      }t        j                  ddg«      j                  |«      }t        j                  g d¢«      j                  |«      }t	        ||«      }t        t        t	        ||«      |«      |«       t        j                  ddg«      j                  |«      }t        j                  ddg«      j                  |«      }t        j                  g d	¢«      j                  |«      }t        t        t	        ||«      |«      |«       g d
¢}g d¢}t        j                  d«      }t        j                  ||f«      }d|_	        t        ||«      }t        |g d¢«       y )Nr   rH   rI   rK   r“   rû  r^  r_  re  )rK   rK   r   r¾  r‘   )rK   rI   )rK   rL   rL   rL   rL   rL   rL   rL   )rv   rÖ  rê   r   r.   r   r/   r^  rE  r„  r   )rU   r
  rk   rW   rV   rb  r‚  rl   s           rY   Ú
test_rank1zTestSOSFilt.test_rank1  sJ  € Ü�K‰K˜˜1˜aÓ ×'Ñ'¨Ó+ˆÜ�H‰H�a˜�WÓ×$Ñ$ RÓ(ˆÜ�H‰H�c˜4�[Ó!×(Ñ(¨Ó,ˆô �h‰hÒ+Ó,×3Ñ3°BÓ7ˆÜ�Q˜‹lˆÜ!¤'¬&°°A«,¸Ó":¸CÔ@ô �H‰H�a˜�VÓ×#Ñ# BÓ'ˆä�H‰H�a˜�VÓ×#Ñ# BÓ'ˆÜ�h‰hÒ*Ó+×2Ñ2°2Ó6ˆÜ!¤'¬&°°A«,¸Ó":¸CÔ@âˆÚˆÜ�G‰G�A‹JˆÜ�n‰n˜a ˜VÓ$ˆØˆŒ	Ü�C˜‹OˆÜ˜Ò3Õ4r[   c                 ó|  — d}t        j                  dt        j                  |«      dz
  t        j                  |«      «      j                  |«      }|j	                  |«      }t        j
                  ddg«      j	                  |«      }t        j
                  ddg«      j	                  |«      }t        j
                  g d¢g d¢g d¢g d¢g|¬«      }t        j
                  g d	¢g d
¢g d¢g d¢g|¬«      }t        t        ||«      |d¬«      }t        ||«       t        t        ||«      |d¬«      }t        ||«       y )Nru  r   rK   r“   rû  rv  rw  r  r{  r|  r}  r~  rú  )	rv   rÖ  rM  rw   rê   r   r/   r.   r   )	rU   r
  r„  rk   rW   rV   rx  r  rl   s	            rY   Ú
test_rank2zTestSOSFilt.test_rank2.  sû   € ØˆÜ�K‰K˜œ2Ÿ7™7 5›>¨AÑ-¬r¯w©w°u«~Ó>×FÑFÀuÓMˆØ�H‰H�R‹Lˆä�H‰H�a˜�WÓ×$Ñ$ RÓ(ˆÜ�H‰H�c˜3�ZÓ ×'Ñ'¨Ó+ˆä—(‘(šI¢y²)ºYÐGØ!#ô%ˆô —(‘(šI¢z²=Ú)ð+Ø24ô6ˆô ”F˜1˜a“L !¨!Ô,ˆÜ! '¨1Ô-ä”F˜1˜a“L !¨!Ô,ˆÜ! '¨1Õ-r[   c                 ó   — d}t        j                  dt        j                  |«      dz
  t        j                  |«      «      j                  |«      }t        j                  ddg«      j                  |«      }t        j                  ddg«      j                  |«      }t        t        ||«      |«      }t        |j                  d   «      D ]@  }t        |j                  d   «      D ]#  }t        |||f   t        |||||f   «      «       Œ% ŒB y )NrŽ  r   rK   r“   rû  )rv   rÖ  rM  rw   r   rê   r/   r.   rx   r„  r   r$   )	rU   r
  r„  rk   rW   rV   rl   ry   Újs	            rY   rj  zTestSOSFilt.test_rank3B  sæ   € ØˆÜ�K‰K˜œ2Ÿ7™7 5›>¨AÑ-¬r¯w©w°u«~Ó>×FÑFÀuÓMˆä�H‰H�a˜�WÓ×$Ñ$ RÓ(ˆÜ�H‰H�c˜3�ZÓ ×'Ñ'¨Ó+ˆô ”F˜1˜a“L !Ó$ˆÜ�q—w‘w˜q‘zÓ"ò 	KˆAÜ˜1Ÿ7™7 1™:Ó&ò K�Ü)¨!¨A¨q¨D©'´7¸1¸aÀÀ1ÀaÀ4ÁÓ3IÕJñKñ	Kr[   c                 ó&  — t        j                  ddd«      \  }}t        j                  ddd«      \  }}t        j                  ddd«      \  }}t        j                  t        j                  ||«      |«      }t        j                  t        j                  ||«      |«      }	t        j                  t        j
                  ||f   t        j
                  ||f   t        j
                  ||f   f«      }
t        j                  j                  d«      j                  |«      }t        ||	|d d t        j                  d«      ¬«      \  }}t        j
                  |t        ||	|dd  |¬«      d	   f   }t        |t        ||	|«      «       t        |
|d d t        j                  d
«      ¬«      \  }}t        j
                  |t        |
|dd  |¬«      d	   f   }t        ||«       t        |
«      }t        j                  d|«      }t        |
||¬«      \  }}t        |t        j                  d«      «       t        ||«       d|j                  z   |_        t!        t"        t        |
||¬«       |j%                  «       }|j                  d	   dd|j                  d   f|_        t!        t"        t        |
||d d …d d …d d …g d¢f   ¬«       t        |
||¬«      \  }}t        |d   t        j                  d«      «       t        |d d …d	d	d d …f   |«       y )NrL   r¡  Úlowr?  rü   rû   rI   rk  r   rÆ   r‘   r›  rK   r“   )r   rK   rK   r™  )r   r'   rv   r   r   Úr_rä   rë  rê   r$   rˆ  rX  r/   r1   r^  r„  r£   r¤   rë  )rU   r
  Úb1rL  Úb2rM  Úb3rN  rW   rV   r‚  rk   Úy_truerl  r®  rl   rp  Úzi_nds                     rY   Útest_initial_conditionsz#TestSOSFilt.test_initial_conditionsO  sv  € Ü—‘˜q $¨Ó.‰ˆˆBÜ—‘˜q $¨Ó.‰ˆˆBÜ—‘˜q $¨Ó.‰ˆˆBÜ�K‰KœŸ™ B¨Ó+¨RÓ0ˆÜ�K‰KœŸ™ B¨Ó+¨RÓ0ˆÜ�h‰hœŸ™˜b "˜f™¤r§u¡u¨R°¨V¡}´b·e±e¸BÀ¸F±mÐDÓEˆä�I‰I�N‰N˜2Ó×%Ñ% bÓ)ˆô ˜Q  1 S b 6¬b¯h©h°q«kÔ:‰
ˆ�Ü—‘�vœw q¨!¨Q¨r¨s¨V¸Ô;¸AÑ>Ð>Ñ?ˆÜ˜V¤W¨Q°°1Ó%5Ô6ä˜C  3 B ¬B¯H©H°VÓ,<Ô=‰	ˆˆrÜ—‘�eœW S¨!¨B¨C¨&°RÔ8¸Ñ;Ð;Ñ<ˆÜ˜V UÔ+ô ˜‹_ˆÜ�G‰G�A�r‹NˆÜ˜˜Q 2Ô&‰ˆˆ2ä˜Q¤§¡¨£
Ô+Ü˜R Ô$ð ˜1Ÿ7™7Ñ"ˆŒÜ”j¤'¨3°°bÕ9Ø—‘“	ˆØ—x‘x ‘{ A q¨"¯(©(°2©,Ð7ˆŒÜ”j¤'¨3°Øšq¢!¢Qª	Ð1Ñ2õ	4ä˜˜Q 5Ô)‰ˆˆ2Ü˜Q˜t™W¤b§g¡g¨a£jÔ1Ü˜R¢ 1 aª 
™^¨RÕ0r[   c                 óŒ  — t         j                  j                  d«      j                  ddd¬«      }|j	                  |«      }t        j                  ddd¬	«      }t        |Ž }|j                  d   }d
}t        |j                  «      }d||<   |g|z   }t        j                  |«      }t        ||||¬«      \  }	}
t        ||d d …d d…d d …f   ||¬«      \  }}t        ||d d …dd …d d …f   ||¬«      \  }}t        j                  ||f|¬«      }t        ||	dd¬«       t        ||
dd¬«       t        |«      }|d
dd
g|_        ||d d …dd
…d d …f   z  }t        ||||¬«      d   }t        |Ž \  }}t!        ||«      }d
|j"                  d
g|_        ||d d …dd
…d d …f   z  }t%        |||||¬«      d   }t        ||dd¬«       y )NéŸ   r   rH   )rL   ra  rF   rØ   rI   r¬  r„  r±  rK   rL   r…  rú  rè  r5  rÞ   )rv   rä   rå   r  rê   r   r'   r)   r„  r  rˆ  r/   rE  rX  r1   r(   r%   rÙ   r$   )rU   r
  rk   r„  r‚  Ú	nsectionsrÊ  ÚshpÚz0r&  rp  rš  r¢  r>  r£  rl   rl  rW   rV   Úy_tfs                       rY   Ú test_initial_conditions_3d_axis1z,TestSOSFilt.test_initial_conditions_3d_axis1u  sÔ  € ô �I‰I×!Ñ! #Ó&×.Ñ.¨q°!¸*Ð.ÓEˆØ�H‰H�R‹Lˆô �m‰m˜A˜t¨EÔ2ˆÜ�sˆmˆØ—I‘I˜a‘Lˆ	ð ˆô �1—7‘7‹mˆØˆˆD‰	Øˆk˜CÑˆÜ�X‰X�c‹]ˆô ˜˜a d¨rÔ2‰ˆˆBô ˜˜a¢ 2 A 2¢q ™k°¸Ô<‰ˆˆBÜ˜˜a¢ 1¡2¢q ™k°¸Ô<‰ˆˆBô �N‰N˜B ˜8¨$Ô/ˆÜ˜Q ¨°UÕ;Ü˜R ¨%°eÕ<ô ˜‹_ˆØ˜q ! QÐ'ˆŒØ�!’A�q˜�sšA�I‘,ÑˆÜ�C˜ ¨"Ô-¨aÑ0ˆä�sˆ|‰ˆˆ1Ü˜˜1ÓˆØ�r—w‘w �?ˆŒØ�!’A�q˜�sšA�I‘,ÑˆÜ�q˜!˜Q T¨bÔ1°!Ñ4ˆÜ˜Q ¨5°uÖ=r[   c                 ó’  — t        j                  d|«      }t        j                  d«      }t        j                  d«      }t        j                  t
        d¬«      5  t        |||d¬«       d d d «       d|d d …d	f<   t        j                  t
        d
¬«      5  t        |||d¬«       d d d «       y # 1 sw Y   ŒFxY w# 1 sw Y   y xY w)N)rF   ra  rF   )rG   rI   )rG   rF   rF   rL   zshould be all onesr  rK   )rl  rÊ  rQ  rF   zInvalid zi shape)rv   rV  rˆ  r  r	   r¤   r/   )rU   r
  rk   r‚  rl  s        rY   Útest_bad_zi_shapezTestSOSFilt.test_bad_zi_shape£  s¦   € ô �H‰H�Z Ó$ˆÜ�h‰h�vÓˆÜ�X‰X�lÓ#ˆÜ�]‰]œ:Ð-AÔBñ 	+Ü�C˜˜r¨Õ*÷	+àˆŠAˆqˆD‰	Ü�]‰]œ:Ð-?Ô@ñ 	+Ü�C˜˜r¨Õ*÷	+ð 	+÷	+ð 	+ú÷	+ð 	+ús   ÁB1ÂB=Â1B:Â=Cc                 óâ  — t        j                  ddd¬«      }t        |«      }t        |t	        j
                  d|«      |¬«      \  }}t        ||d¬«       t	        j                  |d d …d d	…f   j                  d
¬«      |d d …d	d …f   j                  d
¬«      z  «      }t        ||d¬«       t        |t	        j
                  d|«      |j                  «       ¬«      \  }}t        ||d¬«       y )NrI   rÿ  r‚  r±  r/  rk  r5  ré  rF   r“   rú  )
r   r'   r1   r/   rv   r^  rX  rM  r²  r  )rU   r
  r‚  rl  rl   rp  Ússr"  s           rY   Útest_sosfilt_zizTestSOSFilt.test_sosfilt_zi¯  sÂ   € Ü�m‰m˜A˜s¨5Ô1ˆÜ˜‹_ˆä˜œRŸW™W R¨›_°Ô4‰ˆˆ2Ü˜R ¨%Õ0ô �W‰W�Sš˜B˜Q˜B˜‘Z—^‘^¨�^Ó,¨s²1°a±b°5©z¯~©~À2¨~Ó/FÑFÓGˆÜ˜Q ¨Õ/ô ˜œRŸW™W R¨›_°·±³Ô=‰ˆˆ2Ü˜R ¨%Ö0r[   c                 ó  — t        j                  g d¢t        ¬«      j                  dd«      }t        j                  g d¢t        ¬«      }t	        j
                  d¬«      5  t        ||«       d d d «       y # 1 sw Y   y xY w)N)rK   rL   rF   rK   rH   rF   r  rK   rI   r¯   r
  r  )rv   r  r  rw   r  r  r/   )rU   r
  r‚  rk   s       rY   r  z"TestSOSFilt.test_dtype_deprecation¾  s`   € ô �j‰jÒ+´6Ô:×BÑBÀ1ÀaÓHˆÜ�J‰JÒ2¼&ÔAˆÜ×#Ñ#Ð*IÔJñ 	Ü�C˜ŒO÷	÷ 	ñ 	ús   Á!A7Á7B N)r§   r¨   r©   r`  rb  rj  rm  rt  rv  ry  r  r  r  r  rª   r[   rY   r^  r^    sF   „ ò5ò2.ò(Kò$1òL,>ò\
+ò1ð ‡[�[×Ññó ñr[   r^  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestDeconvolvec                 óf   — g d¢}ddg}g d¢}t        j                  ||«      \  }}t        ||«       y )N)r   rK   r   r   rK   rK   r   r   rL   rK   )	r   rL   rK   r   rL   rF   rK   r   r   )r   Ú
deconvolver   )rU   ÚoriginalÚimpulse_responseÚrecordedÚ	recoveredÚ	remainders         rY   rZ   zTestDeconvolve.test_basicÉ  s8   € â+ˆØ˜q˜6ÐÚ.ˆÜ%×0Ñ0°Ð;KÓLÑˆ	�9Ü˜	 8Õ,r[   c                 ó®   — ddgddgg}ddg}t        j                  t        d¬«      5  t        j                  ||«      \  }}d d d «       y # 1 sw Y   y xY w)Nr   zsignal must be 1-D.r  ©r  r	   r¤   r   r~  ©rU   r�  r€  Úquotientrƒ  s        rY   Útest_n_dimensional_signalz(TestDeconvolve.test_n_dimensional_signalÑ  s^   € Ø˜�F˜Q ˜FÐ#ˆØ˜q˜6ÐÜ�]‰]œ:Ð-BÔCñ 	PÜ"(×"3Ñ"3°HÐ>NÓ"OÑˆH�i÷	P÷ 	Pñ 	Púó   ¨AÁAc                 ó®   — ddg}ddgddgg}t        j                  t        d¬«      5  t        j                  ||«      \  }}d d d «       y # 1 sw Y   y xY w)Nr   zdivisor must be 1-D.r  r…  r†  s        rY   Útest_n_dimensional_divisorz)TestDeconvolve.test_n_dimensional_divisor×  s^   € Ø�q�6ˆØ ˜F Q¨ FÐ+ÐÜ�]‰]œ:Ð-CÔDñ 	PÜ"(×"3Ñ"3°HÐ>NÓ"OÑˆH�i÷	P÷ 	Pñ 	Púr‰  N)r§   r¨   r©   rZ   rˆ  r‹  rª   r[   rY   r|  r|  Ç  s   „ ò-òPóPr[   r|  c                   ó  — e Zd Zd„ Zd„ Zej                  j                  dddg«      ej                  j                  dg d¢«      d„ «       «       Zd	„ Z	ej                  j                  d
 e
j                  ddg«      ddgg«      d„ «       Zy)ÚTestDetrendc                 ób   — t        t        g d¢«      «      }t        g d¢«      }t        ||«       y )NrJ   )r   r   r   )r4   r   r   )rU   Ú	detrendedÚdetrended_exacts      rY   rZ   zTestDetrend.test_basicà  s%   € ÜœE¢)Ó,Ó-ˆ	Ü¢	Ó*ˆÜ! )¨_Õ=r[   c                 ój   — t        g d¢«      }t        |d¬«      }t        |d¬«      }t        ||«       y )N)rK   ç333333ó?rõ  gš™™™™™ù?g333333@F)Úoverwrite_dataT)r   r4   r   )rU   rk   Ú
copy_arrayÚinplaces       rY   Ú	test_copyzTestDetrend.test_copyå  s/   € ÜÒ)Ó*ˆÜ˜Q¨uÔ5ˆ
Ü˜!¨DÔ1ˆÜ! *¨gÕ6r[   ré   Úlinearr  rÊ  rÉ  c                 ó¢   — t        j                  d«      j                  ddd«      }t        |||¬«      }|j                  |j                  k(  sJ ‚y )NéÒ   rH   rI   rƒ   )rX  rÊ  )rv   r   rw   r4   r„  )rU   rÊ  ré   r£  r�  s        rY   r›  zTestDetrend.test_axisë  sE   € ô �y‰y˜Ó×'Ñ'¨¨1¨aÓ0ˆÜ˜D t°$Ô7ˆ	Ø�‰ $§*¡*Ò,Ð,Ñ,r[   c                 ó&  — g d¢g d¢z   }t        |dd¬«      }t        |dd¬«       t        j                  |«      d d d …d f   }t        |ddd	¬
«      }t        |dd¬«       t	        t
        «      5  t        |dd¬«       d d d «       y # 1 sw Y   y xY w)NrÉ  )rH   r   r‚  rj  r—  rF   )rX  Úbpr   r�  rû  rK   )rX  r›  rÊ  )r4   r   rv   r  r£   r¤   )rU   r£  r�  s      rY   Útest_bpzTestDetrend.test_bpò  sˆ   € Úš?Ñ*ˆÜ˜D x°AÔ6ˆ	Ü˜	 1¨5Õ1ô �z‰z˜$Ó ¢a¨ Ñ.ˆä˜D x°A¸AÔ>ˆ	Ü˜	 1¨5Õ1ô œ:Ó&ñ 	/Ü�D˜x¨AÕ.÷	/÷ 	/ñ 	/ús   Á/BÂBr›  r   rL   c                 óÈ   — t         j                  j                  d«      }|j                  d«      }t	        ||¬«      }t        j
                  g d¢«      }t        ||d¬«       y )Ni90  rM   )r›  )
g¢3   À¼g¢3   °¼gÿ_ìòêr¼¿g�b	6±Å¿gq üç­]½?g=~¹›D°?g@âzI Ö?gØñòƒÙÕ¢¿gˆ»Ý?Ô…”¿g1ï
ÛàÈ¿r�  rû  )rv   rä   rå   rë  r4   r   r   )rU   r›  rñ   rk   rV  Úres_scipy_191s         rY   Útest_detrend_array_bpz!TestDetrend.test_detrend_array_bp  sV   € ô �i‰i×#Ñ# EÓ*ˆØ�H‰H�R‹Lˆô �a˜BÔˆÜŸ™ò "Oó Pˆô 	˜˜]°Ö7r[   N)r§   r¨   r©   rZ   r–  r  r  rr  r›  rœ  rv   r   rŸ  rª   r[   rY   r�  r�  Þ  s‘   „ ò>ò
7ð ‡[�[×Ñ˜V h°
Ð%;Ó<Ø‡[�[×Ñ˜V¢YÓ/ñ-ó 0ó =ð-ò
/ð ‡[�[×Ñ˜T H B§H¡H¨a°¨VÓ$4°q¸!°fÐ#=Ó>ñ8ó ?ñ8r[   r�  c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestUniqueRootsc                 ó”   — g d¢}t        |«      \  }}t        ||d¬«       t        |t        j                  t        |«      «      «       y )N)rX  r^  rý  r’  rù  ra  r±  ©r5   r   r
   rv   r^  r:  ©rU   rç  rÓ  rÔ  s       rY   Útest_real_no_repeatz#TestUniqueRoots.test_real_no_repeat  s7   € Ú(ˆÜ+¨A›Ñˆ�Ü˜F A¨rÕ2Ü�\¤2§7¡7¬3¨q«6£?Õ3r[   c                 ó&  — g d¢}t        |dd¬«      \  }}t        |g d¢d¬«       t        |g d¢«       t        |dd	¬«      \  }}t        |g d
¢d¬«       t        |g d¢«       t        |dd¬«      \  }}t        |g d¢d¬«       t        |g d¢«       y )N)rX  çffffffî¿ç{®Gázì¿çš™™™™™é¿rû  rQ  çÍÌÌÌÌÌð?r  rÑ  ©Útolr  )rX  r¨  rû  rQ  ra  r±  ©rL   rL   rK   rL   r  )r§  r©  rû  rª  r  )g333333ï¿g
×£p=
ë¿rû  gffffffð?©r5   r   r
   r¤  s       rY   Útest_real_repeatz TestUniqueRoots.test_real_repeat  s…   € Ú6ˆä+¨A°4¸uÔEÑˆ�Ü˜FÒ$;ÀRÕHÜ�\¢<Ô0ä+¨A°4¸uÔEÑˆ�Ü˜FÒ$<ÀbÕIÜ�\¢<Ô0ä+¨A°4¸uÔEÑˆ�Ü˜FÒ$@È"ÕMÜ�\¢<Õ0r[   c                 ó”   — g d¢}t        |«      \  }}t        ||d¬«       t        |t        j                  t        |«      «      «       y )N)rX  r’   ù      à?      à?r  rx  ra  r±  r£  r¤  s       rY   Útest_complex_no_repeatz&TestUniqueRoots.test_complex_no_repeat&  s7   € Ú=ˆÜ+¨A›Ñˆ�Ü˜F A¨rÕ2Ü�\¤2§7¡7¬3¨q«6£?Õ3r[   c                 ó&  — g d¢}t        |dd¬«      \  }}t        |g d¢d¬«       t        |g d¢«       t        |dd	¬«      \  }}t        |g d
¢d¬«       t        |g d¢«       t        |dd¬«      \  }}t        |g d¢d¬«       t        |g d¢«       y )N)rX  ù      ð¿š™™™™™©?ùffffffî¿333333Ã?ùÍÌÌÌÌÌì¿333333Ã?rü  r±  ùÍÌÌÌÌÌÜ?š™™™™™á?r  rÑ  r«  )rX  rµ  rü  r·  ra  r±  r­  r  )r´  r¶  rü  r±  r  )y      ð¿š™™™™™™?yš™™™™™í¿333333Ã?rü  yffffffÞ?ÍÌÌÌÌÌà?r®  r¤  s       rY   Útest_complex_repeatz#TestUniqueRoots.test_complex_repeat,  s—   € ò'ˆô  ,¨A°4¸uÔEÑˆ�Ü˜FÒ$LØ$&õ	(ä�\¢<Ô0ä+¨A°4¸uÔEÑˆ�Ü˜FÚJØ$&õ	(ô 	�\¢<Ô0ä+¨A°4¸uÔEÑˆ�ÜØÒHØõ	ô 	�\¢<Õ0r[   c                 óN  — t        j                  t        j                  t        j                  d«      t        j                  d«      «      «      }g d¢}t	        |«      \  }}t        j
                  |«      }t        t        j
                  |«      |d¬«       t        |g d¢«       y )NrH   )y¨ô—›wãé¿^Zu#Ïâ¿y§ô—›wãé¿_Zu#Ïâ?yNé/7ïÆÓ? UDoî¿yPé/7ïÆÓ?ÿTDoî?rƒ   r±  )rL   rL   rL   rL   )rv   r>  r   r^  r5   Úsortr   r
   )rU   rç  Ú
true_rootsrÓ  rÔ  s        rY   Útest_gh_4915zTestUniqueRoots.test_gh_4915A  si   € Ü�H‰H”R—[‘[¤§¡¨£¬R¯W©W°Q«ZÓ8Ó9ˆÚKˆ
ä+¨A›Ñˆ�Ü—‘˜“ˆäœBŸG™G F›O¨ZÀÕCÜ�\¢<Õ0r[   c                 óÀ   — t        g d¢«      \  }}t        |ddgd¬«       t        |ddg«       t        g d¢d	¬
«      \  }}t        |ddgd¬«       t        |ddg«       y )N)rQ  r’   rQ  rQ  r’   ra  r±  rL   rK   )rK   g_p‰   ð?ù•Ö&è.>      ð?r  )r¬  r¾  r®  rÒ  s      rY   Útest_complex_roots_extraz(TestUniqueRoots.test_complex_roots_extraK  sa   € Ü+Ò,<Ó=Ñˆ�Ü˜F S¨$ K¸Õ<Ü�\ A q 6Ô*ä+Ò,DÈ#ÔNÑˆ�Ü˜F S¨+Ð$6ÀÕCÜ�\ A q 6Õ*r[   c                 ó  — t         j                  j                  d«      dt         j                  j                  d«      z  z   }t        |d«      \  }}t	        |t        j
                  |«      gd¬«       t        |dg«       y )Nr  r’   rL   ra  r±  )rv   rä   rë  r5   r   rÑ  r
   r¤  s       rY   Útest_single_unique_rootz'TestUniqueRoots.test_single_unique_rootT  s^   € Ü�I‰I�N‰N˜3Ó "¤r§y¡y§~¡~°cÓ':Ñ":Ñ:ˆÜ+¨A¨qÓ1Ñˆ�Ü˜F¤R§V¡V¨A£Y K¸Õ<Ü�\ C 5Õ)r[   N)
r§   r¨   r©   r¥  r¯  r²  r¸  r¼  r¿  rÁ  rª   r[   rY   r¡  r¡    s%   „ ò4ò1ò4ò1ò*1ò+ó*r[   r¡  c                  ó¶   — t        j                  t        j                  dt        j                  ¬«      dd«      } | j
                  t        j                  k(  sJ ‚y )Nr‰  r  rI   rG   )r   rÍ  rv   r   rÕ   rè   )r2  s    rY   Útest_gh_22684rÃ  [  s;   € Ü×!Ñ!¤"§)¡)¨D¼¿¹Ô"EÀqÈ!ÓL€FØ�<‰<œ2Ÿ<™<Ò'Ð'Ñ'r[   r(  )r   r   )�r  Úconcurrent.futuresr   r   r²  r   Ú	itertoolsr   Úmathr   r  r	   r£   Únumpy.testingr
   r   r   r   r   r   r   r   Únumpyr   r   rv   Úscipyr   rà  rf  r   Úscipy.optimizer   r   r   Úscipy.signalr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   Úscipy.signal.windowsr8   Úscipy.signal._signaltoolsr9   r:   r;   Úscipy.signal._upfirdnr<   Ú
scipy._libr=   Úscipy._lib._array_apir?   Úscipy._lib._utilr@   rA   rB   rD   r¬   r  rt  r“  r  r  r"  r$  r&  rG  r\  r¯  r4  r¼  r6  rF  rK  rè  rì  r  rX  rî  rñ  rô  r÷  rú  rÿ  r  Ú_pmfr	  rr  r§  r¨  r©  rª  r«  rÓ   rÔ   ÚparamrY  r  r8  rM  rP  ÚcsinglerT  rZ  rR  ro  rw  r  rª  rÇ  rÒ  Ú	fail_slowrÛ  r  rÝ  râ  rë  rí  rH  r[  r`  rÃ  r&  rX  r[  r^  r|  r�  r¡  rÃ  rª   r[   rY   ú<module>rÖ     s�  ðÛ 
ç ?Ý Ý Ý ã Ý *÷÷ ó ÷
  Û å Ý %ß 6Ý ÷÷ ÷ ÷ ÷ ÷ ÷ ÷ ñ õ &÷4ñ 4å 0Ý !Ý 1ß >Ñ >÷eOñ eOôPu�=ô u÷pLñ LôD?"�_ô ?"÷DjLñ jLòX3òò

Cò÷
E!ñ E!÷PN"ñ N"÷b-ñ -÷DLñ Lò C€Ø �>Ñ !€÷U,ñ U,÷p*ñ *÷>&ñ &÷U(ñ U(ôpÐ/ô ôÐ/ô ð ‡�×ÑÐ8Ó9ôÐ$5ó ó :ðôÐ 1ô ôÐ!2ô ð ‡�×ÑÐ8Ó9ôÐ&7ó ó :ðð ‡�×ÑÐ8Ó9ôÐ/ó ó :ðð ‡�×ÑÐ8Ó9ôÐ.ó ó :ðð
 ‡�×ÑÐ8Ó9ñFó :ðFð ‡{�{×!Ñ!Ð">Ó?€òKð
 ‡�×Ñ˜ §¡¨"¯'©'°2·9±9¸b¿h¹hØ (¨'°2·<±<ÀÇÁØ "§
¡
¨B¯J©JØ , §¡¨R¯]©]À$Ô GØ , §¡¨W¸DÔ Að	 Có ÷w"ð w"óðw"÷t2ñ 2ðj ‡�×Ñ˜Ò!:Ó;Ø‡�×Ñ˜ D¨% =Ó1Ø‡�×Ñ˜Ò'KÓLñ0ó Mó 2ó <ð0ò22ð
 ‡�×Ñ˜ §
¢
¨B¯JªJØ , §¡¨R¯^ª^À4Ô Hð Jó K÷\=ð \=óKð\=÷~$=ñ $=÷NDñ D÷2]%ñ ]%ô@L�lô Lò)óX4ð@ ‡�×Ò�rÓñDó ðDð( ‡�×Òñ!ó ð!ð ‡�×ÑÐ8Ó9ñLó :ðLð ‡�×Ò�rÓñ@ó ð@÷>q"ñ q"÷hYEñ YE÷xFñ F÷.uQñ uQ÷pk(ñ k(÷\RBñ RBój1ð ‡�×ÑÐ8Ó9Ø‡�×Ñ˜ '¨7Ð!3Ó4ñó 5ó :ðð. ‡�×Ñ˜˜vÓ&÷rð ró 'ðr÷jPñ P÷./8ñ /8÷dH*ñ H*óV(r[   