Ë
    ýÿæiæV  ã                   ó”  — d dl Zd dlZd dlmZ d dlmZ d dlmc m	Z
 d dlmZmZmZmZ d dlmZ d dlmZ d dlmZ ej.                  j0                  gZ ej4                  d«      Zej9                  ej.                  j;                   eej<                  «       ed«      k(  xr  e«       d	ej<                  › �¬
«      «        ej>                  ddg¬«      d„ «       Z  ej>                  di gdi gdi gdi gdi gdi gddd igdi gddd igg	¬«      d„ «       Z!ej>                  d„ «       Z" e
jF                  d«      ej.                  jI                  d«       G d„ d«      «       «       Z% e
jF                  d«       G d„ d«      «       Z& e
jF                  d«      d„ «       Z' e
jF                  d«      d„ «       Z( e
jF                  d«      ej.                  jR                  ej.                  jI                  d«       G d „ d!«      «       «       «       Z* e
jF                  d«      d"„ «       Z+ G d#„ d$e«      Z, e
jF                  d«       G d%„ d&«      «       Z-y)'é    N)Úis_platform_arm)ÚNumbaUtilError)Ú	DataFrameÚSeriesÚoption_contextÚto_datetime)ÚBaseIndexer)ÚVersionÚnumbaz0.61z&Segfaults on ARM platforms with numba )ÚreasonÚsingleÚtable)Úparamsc                 ó   — | j                   S )z3method keyword in rolling/expanding/ewm constructor©Úparam©Úrequests    ús/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/pandas/tests/window/test_numba.pyÚmethodr      s   € ð �=‰=Ðó    ÚsumÚmeanÚmedianÚmaxÚminÚvarÚddofÚstdc                 ó   — | j                   S ©Nr   r   s    r   Ú$arithmetic_numba_supported_operatorsr"   #   s   € ð �=‰=Ðr   c                  óh   — t        dgdz  dgdz  z   dgdz  z   t        j                  d«      dœ«      S )	Né   é   é   é   é   é   é(   ©ÚAÚB)r   ÚnpÚarange© r   r   Ú
roll_framer1   4   s6   € ä˜A˜3 ™8 q c¨B¡hÑ.°!°°q±Ñ8¼r¿y¹yÈ»}ÑMÓNÐNr   Úignorec                   ód  — e Zd Zej                  j                  dddg«      d„ «       Zd„ Zd„ Zej                  j                  d e	 e
j                  d«      «       e	dd	d	d	e
j                  e
j                  d
dddg
dd	d	d	e
j                  e
j                  d	dddg
e
j                  e
j                  ddd	dddddg
g«      j                   e ed«      d¬«       eddde
j                  ddddg«       eddde
j                  ddddg«      g«      d„ «       Zej                  j                  d e	 e
j                  d«      «       e ed«      d¬«      g«      d„ «       Zej                  j                  dddg«      d„ «       Zej                  j                  dddddœgdi gg«      d„ «       Zd„ Zy)Ú
TestEngineÚjitTFc                 ó:  — d„ }|rdd l }|j                  |«      }|||dœ}	d}
t        t        d«      «      }|j	                  d||¬«      j                  ||
d|	d	¬
«      }|j	                  d||¬«      j                  |d|
d	¬«      }t        j                  ||«       y )Nc                 óN   — d}|D ]  }||z  }Œ	 t        j                  | «      |z   S ©Nr   ©r.   r   )ÚxÚargsÚarg_sumÚargs       r   Úfz0TestEngine.test_numba_vs_cython_apply.<locals>.f?   s-   € ØˆGÛ�Ø˜3‘‘ð ä—7‘7˜1“: Ñ'Ð'r   r   ©ÚnogilÚparallelÚnopython©r&   é
   r&   )ÚcenterÚstepr   T)r;   ÚengineÚengine_kwargsÚrawÚcython)rG   r;   rI   ©r   r5   r   ÚrangeÚrollingÚapplyÚtmÚassert_series_equal)Úselfr5   r@   rA   rB   rE   rF   r>   r   rH   r;   ÚsÚresultÚexpecteds                 r   Útest_numba_vs_cython_applyz%TestEngine.test_numba_vs_cython_apply=   s¬   € ò	(ñ Ûà—	‘	˜!“ˆAà"'°XÈ8ÑTˆØˆä”5˜“9ÓˆØ—‘˜1 V°$�Ó7×=Ñ=Ø�D ¸È4ð >ó 
ˆð —9‘9˜Q v°D�9Ó9×?Ñ?Ø�h T¨tð @ó 
ˆô 	×Ñ˜v xÕ0r   c                 óœ  — dd„}t        t        d«      «      }|j                  d«      j                  |ddddi¬«      }|j                  d«      j	                  «       dz   }t        j                  ||«       |j                  d«      j                  |ddd	¬
«      }t        j                  ||«       |j                  «       j                  |ddddi¬«      }|j                  «       j	                  «       dz   }t        j                  ||«       |j                  «       j                  |ddd	¬
«      }t        j                  ||«       |j                  d«      j                  d«      j                  |ddddi¬«      }|j                  d«      j                  d«      j	                  «       dz   }t        j                  ||«       |j                  d«      j                  d«      j                  |ddd	¬
«      }t        j                  ||«       |j                  d«      j                  «       j                  |ddddi¬«      }|j                  d«      j                  «       j	                  «       dz   }t        j                  ||«       |j                  d«      j                  «       j                  |ddd	¬
«      }t        j                  ||«       y )Nc                 ó(   — | j                  «       |z   S r!   ©r   )ÚsrÚas     r   Úfuncz5TestEngine.test_apply_numba_with_kwargs.<locals>.funcY   s   € Ø—6‘6“8˜a‘<Ðr   rD   é   r   TrZ   r$   )rG   rI   Úkwargs©r$   )rG   rI   r;   r,   )r   )	r   rL   rM   rN   r   rO   Úassert_frame_equalÚ	expandingÚgroupby)rQ   r1   r[   ÚdatarS   rT   s         r   Útest_apply_numba_with_kwargsz'TestEngine.test_apply_numba_with_kwargsV   sw  € ó	 ô œ˜r›Ó#ˆà—‘˜a“×&Ñ& t°GÀÈsÐTUÈhÐ&ÓWˆØ—<‘< “?×&Ñ&Ó(¨1Ñ,ˆÜ
×Ñ˜f hÔ/à—‘˜a“×&Ñ& t°GÀÈDÐ&ÓQˆÜ
×Ñ˜f hÔ/ð —‘Ó!×'Ñ'¨°WÀ$ÐPSÐUVÈxÐ'ÓXˆØ—>‘>Ó#×'Ñ'Ó)¨AÑ-ˆÜ
×Ñ˜f hÔ/à—‘Ó!×'Ñ'¨°WÀ$ÈTÐ'ÓRˆÜ
×Ñ˜f hÔ/ð ×Ñ˜sÓ#ß‰W�Q‹Zß‰U�4 ¨T¸3À¸(ˆUÓCð 	ð
 ×%Ñ% cÓ*×2Ñ2°1Ó5×9Ñ9Ó;¸aÑ?ˆÜ
×Ñ˜f hÔ/ð ×Ñ˜sÓ#ß‰W�Q‹Zß‰U�4 ¨T¸ˆUÓ=ð 	ô
 	×Ñ˜f hÔ/ð ×Ñ˜sÓ#ß‰Y‹[ß‰U�4 ¨T¸3À¸(ˆUÓCð 	ð
 ×%Ñ% cÓ*×4Ñ4Ó6×:Ñ:Ó<¸qÑ@ˆÜ
×Ñ˜f hÔ/ð ×Ñ˜sÓ#ß‰Y‹[ß‰U�4 ¨T¸ˆUÓ=ð 	ô
 	×Ñ˜f hÕ/r   c                 óN  — d„ }t        ddgddgddgdd	gg«      }|j                  dd
d¬«      j                  |dd¬«      }t        t        j                  t        j                  gt        j                  t        j                  gddgdd	gg«      }t        j                  ||«       y )Nc                 ó,   — t        | «      dk(  sJ ‚| d   S )Nr(   éÿÿÿÿ)Úlen©r:   s    r   Úlast_rowz3TestEngine.test_numba_min_periods.<locals>.last_row�   s   € Ü�q“6˜Q’;Ð�;Ø�R‘5ˆLr   r$   r&   r(   é   r\   é   é   r)   r   ©r   Úmin_periodsTr   ©rI   rG   )r   rM   rN   r.   ÚnanrO   r_   )rQ   ri   ÚdfrS   rT   s        r   Útest_numba_min_periodsz!TestEngine.test_numba_min_periodsŽ   sŸ   € ò	ô ˜˜A˜  A ¨¨A¨°°A°Ð7Ó8ˆà—‘˜A g¸1�Ó=×CÑCØ˜$ wð Dó 
ˆô œrŸv™v¤r§v¡vÐ.´·±¼¿¹Ð0@À1ÀaÀ&È1ÈaÈ&ÐQÓRˆÜ
×Ñ˜f hÕ/r   rb   r\   rl   rj   r(   rk   Úfoo©Únamer%   rD   r$   r&   c                 ó¾   — |\  }}|||dœ}	|j                  d|¬«      }
 t        |
|«      dd|	dœ|¤Ž} t        |
|«      dddi|¤Ž}t        j                  ||«       y )	Nr?   r(   ©rF   r   ©rG   rH   rG   rJ   r0   )rM   ÚgetattrrO   Úassert_equal)rQ   rb   r@   rA   rB   r"   rF   r   r]   rH   ÚrollrS   rT   s                r   Ú$test_numba_vs_cython_rolling_methodsz/TestEngine.test_numba_vs_cython_rolling_methods�   s{   € ð2 >‰ˆ�à"'°XÈ8ÑTˆà�|‰|˜A Dˆ|Ó)ˆØ&”˜˜vÓ&ð 
Ø¨-ñ
Ø;Añ
ˆð )”7˜4 Ó(ÑC°ÐC¸FÑCˆÜ
�‰˜ Õ)r   c                 óô   — |\  }}|||dœ}t        t        j                  d«      «      }|j                  «       }	 t	        |	|«      dd|dœ|¤Ž}
 t	        |	|«      dddi|¤Ž}t        j                  |
|«       y )Nr?   r\   r   rx   rG   rJ   r0   )r   r.   Úeyer`   ry   rO   rz   )rQ   rb   r@   rA   rB   r"   r   r]   rH   ÚexpandrS   rT   s               r   Ú&test_numba_vs_cython_expanding_methodsz1TestEngine.test_numba_vs_cython_expanding_methodsÁ   s‡   € ð >‰ˆ�à"'°XÈ8ÑTˆäœŸ™ ›Ó#ˆØ—‘Ó!ˆØ(”˜ Ó(ð 
Ø¨-ñ
Ø;Añ
ˆð +”7˜6 6Ó*ÑE°(ÐE¸fÑEˆÜ
�‰˜ Õ)r   c                 ó0  — d„ }d„ }|r&dd l }|j                  |«      }|j                  |«      }|||dœ}	t        t        d«      «      j	                  d|¬«      }
|
j                  |d|	d	¬
«      }|
j                  |dd	¬«      }t        j                  ||«       |
j                  |d|	d	¬
«      }|
j                  |dd	¬«      }t        j                  ||«       |
j                  |d|	d	¬
«      }|
j                  |dd	¬«      }t        j                  ||«       y )Nc                 ó2   — t        j                  | «      dz   S )Nrj   r9   rh   s    r   Úfunc_1z+TestEngine.test_cache_apply.<locals>.func_1Ö   s   € Ü—7‘7˜1“: ‘>Ð!r   c                 ó2   — t        j                  | «      dz  S )Nr\   )r.   r   rh   s    r   Úfunc_2z+TestEngine.test_cache_apply.<locals>.func_2Ù   s   € Ü—6‘6˜!“9˜q‘=Ð r   r   r?   rD   r&   rw   r   T)rG   rH   rI   rJ   ©rG   rI   rK   )rQ   r5   r@   rA   rB   rF   rƒ   r…   r   rH   r{   rS   rT   s                r   Útest_cache_applyzTestEngine.test_cache_applyÓ   s   € ò	"ò	!ñ Ûà—Y‘Y˜vÓ&ˆFØ—Y‘Y˜vÓ&ˆFà"'°XÈ8ÑTˆä”e˜B“iÓ ×(Ñ(¨°Ð(Ó6ˆØ—‘Ø˜7°-ÀTð ó 
ˆð —:‘:˜f¨X¸4�:Ó@ˆÜ
×Ñ˜v xÔ0à—‘Ø˜7°-ÀTð ó 
ˆð —:‘:˜f¨X¸4�:Ó@ˆÜ
×Ñ˜v xÔ0à—‘Ø˜7°-ÀTð ó 
ˆð —:‘:˜f¨X¸4�:Ó@ˆÜ
×Ñ˜v xÕ0r   zwindow,window_kwargsrM   r   )Úwindowrn   r`   c                 óh  — d„ }|||dœ}t        dg d¢i«      }	 t        |	|«      dd|i|¤Žj                  |dd|d¬	«      }
t        dg d
¢i«      }t        j                  |
|«        t        |	|«      dd|i|¤Žj                  |dd|d¬	«      }
t        dg d¢i«      }t        j                  |
|«       y )Nc                 ó2   — t        j                  | «      |z   S r!   ©r.   r   )Úvaluesr:   s     r   Úaddz,TestEngine.test_dont_cache_args.<locals>.add  s   € Ü—6‘6˜&“> AÑ%Ð%r   ©rB   r@   rA   Úvalue©r   r   r   r   Tr   r^   )rI   rG   rH   r;   ©ç      ð?r’   r’   rC   ©ç       @r”   r”   r0   )r   ry   rN   rO   r_   )rQ   rˆ   Úwindow_kwargsr@   rA   rB   r   r�   rH   rq   rS   rT   s               r   Útest_dont_cache_argszTestEngine.test_dont_cache_args÷   sÔ   € ò	&ð &.¸È8ÑTˆÜ˜¢Ð+Ó,ˆØ$”˜˜VÓ$ÑD¨FÐD°mÑD×JÑJØ�T '¸ÈTð Kó 
ˆô ˜g¢Ð7Ó8ˆÜ
×Ñ˜f hÔ/à$”˜˜VÓ$ÑD¨FÐD°mÑD×JÑJØ�T '¸ÈTð Kó 
ˆô ˜g¢Ð7Ó8ˆÜ
×Ñ˜f hÕ/r   c                 ó‚  ‡‡‡— dŠdŠdŠˆˆˆfd„}‰‰‰dœ}t        dg d¢i«      }|j                  d«      j                  |dd|¬	«      }t        dg d
¢i«      }t        j                  ||«       dŠ‰‰‰dœ}|j                  d«      j                  |dd|¬	«      }t        dg d¢i«      }t        j                  ||«       y )NFTc                 ó   •— ‰‰z   ‰z   S r!   r0   )r:   r@   rB   rA   s    €€€r   r[   z6TestEngine.test_dont_cache_engine_kwargs.<locals>.func  s   ø€ Ø˜8Ñ# hÑ.Ð.r   rŽ   r�   r�   r$   r   )rI   rG   rH   r“   r‘   ©r   rM   rN   rO   r_   )	rQ   r[   rH   rq   rS   rT   r@   rB   rA   s	         @@@r   Útest_dont_cache_engine_kwargsz(TestEngine.test_dont_cache_engine_kwargs  sÕ   ú€ ð ˆØˆØˆö	/ð &.¸È8ÑTˆÜ˜¢Ð+Ó,ˆØ—‘˜A“×$Ñ$Ø�d 7¸-ð %ó 
ˆô ˜g¢Ð7Ó8ˆÜ
×Ñ˜f hÔ/àˆØ%-¸È8ÑTˆØ—‘˜A“×$Ñ$Ø�d 7¸-ð %ó 
ˆô ˜g¢Ð7Ó8ˆÜ
×Ñ˜f hÕ/r   N)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizerU   rc   rr   r   r.   r~   rp   ÚinfÚTr   rL   r|   r€   r‡   r–   rš   r0   r   r   r4   r4   9   så  „ ð ‡[�[×Ñ˜U T¨5 MÓ2ñ1ó 3ð1ò060òp0ð ‡[�[×ÑØá�f�b—f‘f˜Q“iÓ Ùà˜˜1˜a §¡¨¯©°°A°q¸!Ð<Ø˜˜1˜a §¡¨¯©°°A°q¸!Ð<Ø—V‘V˜RŸV™V Q¨¨1¨a°°A°q¸!Ð<ðó÷ ‰aÙ‘5˜“8 %Ô(Ù�B˜˜B §¡¨¨1¨a°Ð3Ó4Ù�B˜˜B §¡¨¨A¨q°!Ð4Ó5ð	
óñ *ó!ð *ð( ‡[�[×ÑØ‘˜6˜2Ÿ6™6 !›9Ó%¡v©e°A«h¸UÔ'CÐDóñ*óð*ð ‡[�[×Ñ˜U T¨5 MÓ2ñ!1ó 3ð!1ðF ‡[�[×ÑØà 1°QÑ7Ð8Ø˜"Ðð	
óñ0óð0ó,0r   r4   c                   ó
  — e Zd Zej                  j                  dd„ d„ gddg¬«      ej                  j                  ddd	g«      d
„ «       «       Zej                  j                  dd„ d„ gddg¬«      ej                  j                  ddd	g«      d„ «       «       Zej                  j                  dddg«      ej                  j                  ddd	g«      d„ «       «       Zej                  j                  dddg«      d„ «       Z	y)ÚTestEWMÚgrouperc                 ó   — | S r!   r0   rh   s    r   Ú<lambda>zTestEWM.<lambda>2  ó   € ™ar   c                 ó$   — | j                  d«      S ©Nr,   ©ra   rh   s    r   r§   zTestEWM.<lambda>2  ó   € ¨1¯9©9°S¬>r   ÚNonera   )Úidsr   r   r   c                 óè   — t        g d¢t        d«      dœ«      }t        j                  t        d¬«      5   t         ||«      j                  d¬«      |«      d¬	«       d d d «       y # 1 sw Y   y xY w)
N©rZ   ÚbrZ   r±   rj   r+   zengine must be either©Úmatchr’   ©Úcomrs   ©rG   ©r   rL   rž   ÚraisesÚ
ValueErrorry   Úewm©rQ   r¥   r   rq   s       r   Útest_invalid_enginezTestEWM.test_invalid_engine1  sT   € ô
 Ò1¼¸a»ÑAÓBˆÜ�]‰]œ:Ð-DÖEØ5ŒG‘G˜B“K—O‘O¨�OÓ,¨fÓ5¸UÕC÷ F×EÑEús   µ*A(Á(A1c                 ó   — | S r!   r0   rh   s    r   r§   zTestEWM.<lambda>;  r¨   r   c                 ó$   — | j                  d«      S rª   r«   rh   s    r   r§   zTestEWM.<lambda>;  r¬   r   c                 óî   — t        g d¢t        d«      dœ«      }t        j                  t        d¬«      5   t         ||«      j                  d¬«      |«      dd	d
i¬«       d d d «       y # 1 sw Y   y xY w)Nr°   rj   r+   zcython engine does notr²   r’   r´   rJ   rB   Trx   r·   r»   s       r   Útest_invalid_engine_kwargsz"TestEWM.test_invalid_engine_kwargs:  s^   € ô
 Ò1¼¸a»ÑAÓBˆÜ�]‰]œ:Ð-EÖFØ5ŒG‘G˜B“K—O‘O¨�OÓ,¨fÓ5Ø°
¸DÐ/Aõ÷ G×FÑFús   µ-A+Á+A4c                 ó  — t        dt        d«      i«      }|dk(  rd„ }n
g d¢|d<   d„ }|dk(  rd	} ||«      j                  d
||¬«      }	|||dœ}
 t        |	|«      d|
¬«      } t        |	|«      d¬«      }t	        j
                  ||«       y )Nr-   rj   r­   c                 ó   — | S r!   r0   rh   s    r   r§   z.TestEWM.test_cython_vs_numba.<locals>.<lambda>L  ó   € ¡r   r°   r,   c                 ó$   — | j                  d«      S rª   r«   rh   s    r   r§   z.TestEWM.test_cython_vs_numba.<locals>.<lambda>O  ó   €  §	¡	¨#¤r   r   Tr’   )rµ   ÚadjustÚ	ignore_nar?   r   rx   rJ   r¶   )r   rL   rº   ry   rO   r_   )rQ   r¥   r   r@   rA   rB   rÇ   rÆ   rq   rº   rH   rS   rT   s                r   Útest_cython_vs_numbazTestEWM.test_cython_vs_numbaE  s™   € ô
 ˜œU 1›X�Ó'ˆØ�fÒÙ!‰Gâ*ˆBˆs‰GÙ.ˆGØ�UŠ?ØˆFÙ�b‹k�o‰o #¨fÀ	ˆoÓJˆà"'°XÈ8ÑTˆØ%”˜˜fÓ%¨WÀMÔRˆØ'”7˜3 Ó'¨xÔ8ˆä
×Ñ˜f hÕ/r   c                 ó  — t        dg d¢i«      }|dk(  rd„ }n
d„ }g d¢|d<   d}t        g d	¢«      } ||«      j                  |d
||¬«      }	|||dœ}
|	j                  d|
¬«      }|	j                  d¬«      }t	        j
                  ||«       y )Nr-   )r   r   r$   r$   r&   r&   r­   c                 ó   — | S r!   r0   rh   s    r   r§   z4TestEWM.test_cython_vs_numba_times.<locals>.<lambda>`  rÃ   r   c                 ó$   — | j                  d«      S rª   r«   rh   s    r   r§   z4TestEWM.test_cython_vs_numba_times.<locals>.<lambda>b  rÅ   r   )rZ   r±   rZ   r±   r±   rZ   r,   z23 days)ú
2020-01-01rÌ   z
2020-01-02z
2020-01-10z
2020-02-23z
2020-01-03T)ÚhalfliferÆ   rÇ   Útimesr?   r   rx   rJ   r¶   )r   r   rº   r   rO   r_   )rQ   r¥   r@   rA   rB   rÇ   rq   rÍ   rÎ   rº   rH   rS   rT   s                r   Útest_cython_vs_numba_timesz"TestEWM.test_cython_vs_numba_timesZ  s¥   € ô ˜Ò/Ð0Ó1ˆØ�fÒÙ!‰Gá.ˆGÚ4ˆBˆs‰GàˆÜòó	
ˆñ �b‹k�o‰oØ d°iÀuð ó 
ˆð #(°XÈ8ÑTˆà—‘ ¸�ÓFˆØ—8‘8 8�8Ó,ˆä
×Ñ˜f hÕ/r   N)
r›   rœ   r�   rž   rŸ   r    r¼   rÀ   rÈ   rÏ   r0   r   r   r¤   r¤   /  s%  „ à‡[�[×ÑØ‘KÑ!9Ð:ÀÈÐ@Sð ó ð ‡[�[×Ñ˜X¨° Ó7ñDó 8óðDð
 ‡[�[×ÑØ‘KÑ!9Ð:ÀÈÐ@Sð ó ð ‡[�[×Ñ˜X¨° Ó7ñó 8óðð ‡[�[×Ñ˜Y¨°Ð(;Ó<Ø‡[�[×Ñ˜X¨° Ó7ñ0ó 8ó =ð0ð& ‡[�[×Ñ˜Y¨°Ð(;Ó<ñ0ó =ñ0r   r¤   c                  ó,  — d„ } t        t        d«      «      }t        dd«      5  |j                  d«      j	                  | d d¬«      }d d d «       |j                  d«      j	                  | dd¬«      }t        j                  |«       y # 1 sw Y   ŒCxY w)Nc                 ó2   — t        j                  | «      dz   S )Nr&   r9   rh   s    r   r>   z!test_use_global_config.<locals>.f~  s   € Ü�w‰w�q‹z˜A‰~Ðr   rD   zcompute.use_numbaTr&   r†   r   )r   rL   r   rM   rN   rO   rP   )r>   rR   rS   rT   s       r   Útest_use_global_configrÒ   |  s~   € òô 	Œu�R‹yÓ€AÜ	Ð+¨TÕ	2Ø—‘˜1“×#Ñ# A¨d¸Ð#Ó=ˆ÷ 
3à�y‰y˜‹|×!Ñ! !¨G¸Ð!Ó>€HÜ×Ñ˜8 VÕ,÷ 
3Ð	2ús   ¤$B
Â
Bc            	      óx  — t        j                  t        d¬«      5  t        t	        d«      «      j                  d«      j                  d„ ddidd¬«       d d d «       t        j                  t        d	¬«      5  t        t	        d«      «      j                  d«      j                  d
„ ddidd¬«       d d d «       t        j                  t        t	        d«      t        ¬«      dz   t        t	        d«      «      j                  d«      j                  d„ ddidd¬«      «       y # 1 sw Y   ŒÏxY w# 1 sw Y   Œ~xY w)Nz&got an unexpected keyword argument 'a'r²   r$   c                 ó   — | S r!   r0   rh   s    r   r§   z.test_invalid_kwargs_nopython.<locals>.<lambda>Œ  s   € ‘ar   rZ   r   T)r]   rG   rI   z-numba does not support keyword-only argumentsc                ó   — | S r!   r0   ©r:   rZ   s     r   r§   z.test_invalid_kwargs_nopython.<locals>.<lambda>’  s   € ™Ar   ©Údtypec                 ó(   — | |z   j                  «       S r!   rX   rÖ   s     r   r§   z.test_invalid_kwargs_nopython.<locals>.<lambda>™  s   € ˜Q ™UŸK™KœMr   )rž   r¸   Ú	TypeErrorr   rL   rM   rN   r   rO   rP   Úfloatr0   r   r   Útest_invalid_kwargs_nopythonrÜ   ˆ  sÿ   € ä	�‰”yÐ(PÖ	QÜŒu�Q‹xÓ× Ñ  Ó#×)Ñ)Ù  a °¸dð 	*ô 	
÷ 
Rô 
�‰ÜÐMö
ô 	Œu�Q‹xÓ× Ñ  Ó#×)Ñ)Ù s¨A h°wÀDð 	*ô 	
÷
ô ×ÑÜŒu�Q‹xœuÔ%¨Ñ)ÜŒu�Q‹xÓß	‰�‹ß	‰Ñ)°3¸°(À7ÐPTˆÓ	Uõ	÷ 
RÐ	Qú÷
ð 
ús   œ:D$Á9:D0Ä$D-Ä0D9c                   ó"  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  d ej                  d	«       ej                  d
«       ej                  d«      g«      e
j                  j                  dddg«      d„ «       «       Zy)ÚTestTableMethodc                 óØ   — d„ }t        j                  t        d¬«      5  t        t	        d«      «      j                  dd¬«      j                  |dd¬	«       d d d «       y # 1 sw Y   y xY w)
Nc                 ó6   — t        j                  | d¬«      dz   S ©Nr   ©Úaxisr$   r‹   rh   s    r   r>   z7TestTableMethod.test_table_series_valueerror.<locals>.f£  ó   € Ü—6‘6˜! !Ô$ qÑ(Ð(r   z1method='table' not applicable for Series objects.r²   r$   r   ©r   r   Tr†   )rž   r¸   r¹   r   rL   rM   rN   )rQ   r>   s     r   Útest_table_series_valueerrorz,TestTableMethod.test_table_series_valueerror¢  s`   € ò	)ô �]‰]ÜÐQö
ô ”5˜“8Ó×$Ñ$ Q¨wÐ$Ó7×=Ñ=Ø˜' tð >ô ÷
÷ 
ñ 
ús   Ÿ8A Á A)c                 óÄ  — |\  }}|||dœ}t        t        j                  d«      «      }	|	j                  ddd|¬«      }
|dv r=t	        j
                  t        |› d�¬	«      5   t        |
|«      d|d
dœ|¤Ž d d d «       y |	j                  ddd|¬«      } t        |
|«      d|d
dœ|¤Ž} t        ||«      d|d
dœ|¤Ž}t        j                  ||«       y # 1 sw Y   y xY w)Nr?   r(   r&   r   r   ©r   rn   rF   ©r   r   ú not supportedr²   r   ©rH   rG   r   r0   )
r   r.   r~   rM   rž   r¸   ÚNotImplementedErrorry   rO   r_   )rQ   r@   rA   rB   r"   rF   r   r]   rH   rq   Ú
roll_tableÚroll_singlerS   rT   s                 r   Ú!test_table_method_rolling_methodsz1TestTableMethod.test_table_method_rolling_methods­  s  € ð >‰ˆ�à"'°XÈ8ÑTˆä”r—v‘v˜a“yÓ!ˆØ—Z‘Z ¨'¸qÀt�ZÓLˆ
Ø�^Ñ#Ü—‘Ô2¸V¸HÀNÐ:SÖTØ+”˜
 FÓ+ð Ø"/¸ñØCIò÷ UÐTð
 Ÿ*™* Q¨xÀQÈT˜*ÓRˆKØ0”W˜Z¨Ó0ð Ø+°GñØ?EñˆFð 4”w˜{¨FÓ3ð Ø+°GñØ?EñˆHô ×!Ñ! &¨(Õ3÷ UÐTús   Á!CÃCc                 ó  — |||dœ}d„ }t        t        j                  d«      «      }|j                  ddd|¬«      j	                  |d|d	¬
«      }|j                  ddd|¬«      j	                  |d|d	¬
«      }	t        j                  ||	«       y )Nr?   c                 ó6   — t        j                  | d¬«      dz   S rá   r‹   rh   s    r   r>   z:TestTableMethod.test_table_method_rolling_apply.<locals>.fÍ  rä   r   r(   r&   r   r   rè   Tr   ©rI   rH   rG   r   )r   r.   r~   rM   rN   rO   r_   )
rQ   r@   rA   rB   rF   rH   r>   rq   rS   rT   s
             r   Útest_table_method_rolling_applyz/TestTableMethod.test_table_method_rolling_applyÊ  s›   € Ø"'°XÈ8ÑTˆò	)ô ”r—v‘v˜a“yÓ!ˆØ—‘˜A g¸1À4�ÓH×NÑNØ�4 }¸Wð Oó 
ˆð —:‘:˜a¨¸aÀd�:ÓK×QÑQØ�4 }¸Wð Ró 
ˆô 	×Ñ˜f hÕ/r   c                 óz  — d„ }t        g d¢g d¢dœ«      }|j                  ddd¬«      d	d
g   j                  |dd¬«      }t        g d¢g d¢dœ«      }t        j                  ||«       |j                  ddd¬«      d
d	g   j                  |dd¬«      }t        g d¢g d¢dœ«      }t        j                  ||«       y )Nc                 óN   — t        j                  | d d …df   | d d …df   z
  «      S )Nr   r$   )r.   Únanmeanrh   s    r   r>   zDTestTableMethod.test_table_method_rolling_apply_col_order.<locals>.fÛ  s&   € Ü—:‘:˜a¢ 1 ™g¨ª!¨Q¨$©Ñ/Ó0Ð0r   )r$   r&   r(   rj   r\   rk   )rk   rl   r)   r\   rk   rl   )rZ   r±   r(   r   r   rm   rZ   r±   Tr   ro   )éûÿÿÿr÷   r÷   ghË¹WUÀg˜4Fë¨ªÀrf   )r\   r\   r\   ghË¹WU@g˜4Fë¨ª@r$   )r±   rZ   )r   rM   rN   rO   Úassert_almost_equal)rQ   r>   rq   rS   rT   s        r   Ú)test_table_method_rolling_apply_col_orderz9TestTableMethod.test_table_method_rolling_apply_col_orderÙ  sÜ   € ò	1ô â'Ú'ñó
ˆð —‘˜A g¸1�Ó=¸sÀC¸jÑI×OÑOØ�4 ð Pó 
ˆô â9Ú9ñó
ˆô 	×Ñ˜v xÔ0Ø—‘˜A g¸1�Ó=¸sÀC¸jÑI×OÑOØ�4 ð Pó 
ˆô â3Ú3ñó
ˆô 	×Ñ˜v xÕ0r   c                 óì   — d„ }t        g d¢g d¢g d¢g d¢g«      }|j                  ddd|¬	«      j                  |d
d¬«      }t        g d¢g d¢g d¢g d¢g«      d d |…   }t        j                  ||«       y )Nc                 óÚ   — t        j                  d| j                  d   f«      }| d d …d d…f   | d d …df   z  j                  d¬«      | d d …df   j                  «       z  |d d …d d…f<   |S )Nr$   r&   r   râ   )r.   ÚonesÚshaper   )r:   Úarrs     r   Úweighted_meanzNTestTableMethod.test_table_method_rolling_weighted_mean.<locals>.weighted_meanú  sl   € Ü—'‘'˜1˜aŸg™g a™j˜/Ó*ˆCØšA˜r ˜r˜E™( Q¢q¨! t¡WÑ,×1Ñ1°qÐ1Ó9¸AºaÀ¸d¹G¿K¹K»MÑIˆC’�2�A�2�‰JØˆJr   )r$   r&   g333333ã?)r&   r(   gš™™™™™Ù?)r(   rj   gš™™™™™É?)rj   r\   gffffffæ?r&   r   r   rè   Tr   ro   )r’   r”   r’   )gÍÌÌÌÌÌü?r”   r’   )g©kí}ªª
@g©kí}ªª@r’   )g“‹1°Žãø?rl   r’   r™   )rQ   rF   rÿ   rq   rS   rT   s         r   Ú'test_table_method_rolling_weighted_meanz7TestTableMethod.test_table_method_rolling_weighted_meanù  s‡   € ò	ô
 š¢[²+º{ÐKÓLˆØ—‘˜A g¸1À4�ÓH×NÑNØ˜t¨Gð Oó 
ˆô âÚÚ)Ú"ð	ó
ñ ˆDˆ&ñˆô 	×Ñ˜f hÕ/r   c                 ó  — |||dœ}d„ }t        t        j                  d«      «      }|j                  d¬«      j	                  |d|d¬«      }|j                  d	¬«      j	                  |d|d¬«      }t        j                  ||«       y )
Nr?   c                 ó6   — t        j                  | d¬«      dz   S rá   r‹   rh   s    r   r>   z<TestTableMethod.test_table_method_expanding_apply.<locals>.f  rä   r   r(   r   rå   Tr   rò   r   )r   r.   r~   r`   rN   rO   r_   )	rQ   r@   rA   rB   rH   r>   rq   rS   rT   s	            r   Ú!test_table_method_expanding_applyz1TestTableMethod.test_table_method_expanding_apply  s�   € Ø"'°XÈ8ÑTˆò	)ô ”r—v‘v˜a“yÓ!ˆØ—‘ W�Ó-×3Ñ3Ø�4 }¸Wð 4ó 
ˆð —<‘< x�<Ó0×6Ñ6Ø�4 }¸Wð 7ó 
ˆô 	×Ñ˜f hÕ/r   c                 ó¸  — |\  }}|||dœ}t        t        j                  d«      «      }|j                  d¬«      }	|dv r=t	        j
                  t        |› d�¬«      5   t        |	|«      d|dd	œ|¤Ž d d d «       y |j                  d
¬«      }
 t        |	|«      d|dd	œ|¤Ž} t        |
|«      d|dd	œ|¤Ž}t        j                  ||«       y # 1 sw Y   y xY w)Nr?   r(   r   rå   ré   rê   r²   r   rë   r   r0   )
r   r.   r~   r`   rž   r¸   rì   ry   rO   r_   )rQ   r@   rA   rB   r"   r   r]   rH   rq   Úexpand_tableÚexpand_singlerS   rT   s                r   Ú#test_table_method_expanding_methodsz3TestTableMethod.test_table_method_expanding_methods  sÿ   € ð >‰ˆ�à"'°XÈ8ÑTˆä”r—v‘v˜a“yÓ!ˆØ—|‘|¨7�|Ó3ˆØ�^Ñ#Ü—‘Ô2¸V¸HÀNÐ:SÖTØ-”˜ fÓ-ð Ø"/¸ñØCIò÷ UÐTð
 ŸL™L°˜LÓ9ˆMØ2”W˜\¨6Ó2ð Ø+°GñØ?EñˆFð 6”w˜}¨fÓ5ð Ø+°GñØ?EñˆHô ×!Ñ! &¨(Õ3÷ UÐTús   ÁCÃCrb   r(   )r&   r(   )r(   r&   r   r   r   c                 óæ   — |||dœ}t        |«      } t        |j                  dd¬«      |«      |d¬«      } t        |j                  dd¬«      |«      |d¬«      }	t        j                  ||	«       y )Nr?   r$   r   )rµ   r   r   rë   r   )r   ry   rº   rO   r_   )
rQ   rb   r   r@   rA   rB   rH   rq   rS   rT   s
             r   Útest_table_method_ewmz%TestTableMethod.test_table_method_ewm4  sx   € ð #(°XÈ8ÑTˆä�t‹_ˆà?”˜Ÿ™ A¨g˜Ó6¸Ó?Ø'°ô
ˆð C”7˜2Ÿ6™6 a°˜6Ó9¸6ÓBØ'°ô
ˆô 	×Ñ˜f hÕ/r   N)r›   rœ   r�   ræ   rï   ró   rù   r   r  r  rž   rŸ   r    r.   r~   rü   r	  r0   r   r   rÞ   rÞ   �  sŽ   „ ò
	ò4ò:0ò1ò@0ò(0ò4ð0 ‡[�[×Ñ˜V f b§f¡f¨Q£i°°·±¸³À'À"Ç'Á'È&Ã/Ð%RÓSØ‡[�[×Ñ˜X¨° Ó7ñ0ó 8ó Tñ0r   rÞ   c                  óì   — t        dg d¢i«      } t        j                  d«      5  | j                  j	                  d«      j                  t        j                  dd¬«       d d d «       y # 1 sw Y   y xY w)NÚcol1)r$   r&   r(   rj   r\   Fr&   Tr   ro   )r   rO   Úassert_produces_warningr  rM   rN   r.   Úprod)rq   s    r   Útest_npfunc_no_warningsr  D  sQ   € ä	�FšOÐ,Ó	-€BÜ	×	#Ñ	# EÕ	*Ø
�‰�‰˜Ó× Ñ ¤§¡¨d¸7Ð ÔC÷ 
+×	*Ñ	*ús   ¥<A*Á*A3c                   ó(   ‡ — e Zd Zˆ fd„Z	 dd„Zˆ xZS )ÚPrescribedWindowIndexerc                 ó>   •— || _         || _        t        ‰| �  «        y r!   )Ú_startÚ_endÚsuperÚ__init__)rQ   ÚstartÚendÚ	__class__s      €r   r  z PrescribedWindowIndexer.__init__L  s   ø€ ØˆŒØˆŒ	Ü‰ÑÕr   c                 ó¼   — |€t        | j                  «      }t        j                  | j                  d|«      }t        j                  | j                  d|«      }||fS r8   )rg   r  r.   Úclipr  )rQ   Ú
num_valuesrn   rE   ÚclosedrF   r  r  s           r   Úget_window_boundsz)PrescribedWindowIndexer.get_window_boundsQ  sN   € ð ÐÜ˜TŸ[™[Ó)ˆJÜ—‘˜Ÿ™ Q¨
Ó3ˆÜ�g‰g�d—i‘i  JÓ/ˆØ�cˆzÐr   )NNNNN)r›   rœ   r�   r  r  Ú__classcell__)r  s   @r   r  r  K  s   ø„ ôð QU÷r   r  c            
       ó†   — e Zd Zej                  j                  dddg d¢fddg d¢fddg d¢fddg d¢fg«      d„ «       Zd	„ Zy
)ÚTestMinMaxNumbazis_max, has_nan, exp_listTF)
ç      @ç      @r”   r"  r’   r"  ç      @ç      @ç       @ç      "@)
r!  ç      @r”   r'  r’   r'  r#  r$  r$  r&  )
r!  r”   r”   r’   r’   ç        r(  r(  r$  r(  )
r!  r”   r”   r’   r’   r’   r#  r#  r$  r’   c                 ó¶  — g d¢}t        g d¢g d¢g d¢dœ«      }|rt        j                  |j                  |df<   t	        |d¬«      }|j
                  j                  t        |j                  j                  «       |j                  j                  «       «      «      }|r|j                  d¬	«      }n|j                  d¬	«      }t        j                  ||«       y )
N)r   r\   r)   )
r"  r'  r!  r”   r’   r(  r#  r$  r%  r&  )
r&   r   r(   r   rj   r   r\   r\   rl   r(   )
r(   rj   rj   r\   r\   rk   rl   r)   é	   rD   ©rb   r  r  rb   rt   r   r¶   )r   r.   rp   Úlocr   rb   rM   r  r  Úto_numpyr  r   r   rO   rP   )	rQ   Úis_maxÚhas_nanÚexp_listÚnan_idxrq   rT   ÚrrS   s	            r   Útest_minmaxzTestMinMaxNumba.test_minmax]  s±   € ò ˆÜâJÚ7Ú6ñó
ˆñ Ü&(§f¡fˆB�F‰F�7˜F�?Ñ#Ü˜(¨Ô0ˆØ�G‰G�O‰OÜ# B§H¡H×$5Ñ$5Ó$7¸¿¹¿¹Ó9JÓKó
ˆñ Ø—U‘U '�UÓ*‰Fà—U‘U '�UÓ*ˆFä
×Ñ˜v xÕ0r   c                 ó‚  — t        j                  t        d«      t         j                  ¬«      }|dz   }|d   |d<   |d   dz
  |d<   t	        |dz  ||dœ«      }|j
                  j                  t        ||«      «      }t        j                  t        d¬	«      5  |j                  d
¬«       d d d «       y # 1 sw Y   y xY w)Nr\   r×   r$   r&   r(   r’   r+  z5Start/End ordering requirement is violated at index 3r²   r   r¶   )r.   ÚarrayrL   Úint64r   rb   rM   r  rž   r¸   r¹   r   )rQ   r  r  rq   r2  s        r   Útest_wrong_orderz TestMinMaxNumba.test_wrong_order|  s¢   € Ü—‘œ˜q›¬¯©Ô2ˆØ�a‰iˆØ�Q‘ˆˆA‰Ø˜‘8˜a‘<ˆˆa‰ä ¨¡°eÀCÑHÓIˆà�G‰G�O‰OÔ3°E¸3Ó?Ó@ˆÜ�]‰]ÜÐUö
ð �E‰E˜ˆEÔ!÷
÷ 
ñ 
ús   ÂB5Â5B>N)r›   rœ   r�   rž   rŸ   r    r3  r7  r0   r   r   r   r   [  s\   „ à‡[�[×ÑØ#à�5ÒLÐMØ�4ÒKÐLØ�EÒMÐNØ�DÒLÐMð		
óñ1óð1ó,"r   r   ).Únumpyr.   rž   Úpandas.compatr   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   r   r   r   Úpandas._testingÚ_testingrO   Úpandas.api.indexersr	   Úpandas.util.versionr
   rŸ   Ú
single_cpuÚ
pytestmarkÚimportorskipr   ÚappendÚskipifÚ__version__Úfixturer   r"   r1   Ú
skip_if_noÚfilterwarningsr4   r¤   rÒ   rÜ   ÚslowrÞ   r  r  r   r0   r   r   Ú<module>rN     s—  ðÛ Û å )Ý (ß )Ð )÷ó õ Ý +Ý 'à�k‰k×$Ñ$Ð%€
àˆ×Ñ˜GÓ$€Ø 
× Ñ Ø
‡K�K×ÑÙ�×!Ñ!Ó"¡g¨f£oÑ5ÒK¹/Ó:KØ7¸×8IÑ8IÐ7JÐKð ó ôð €‡�˜ 'Ð*Ô+ñó ,ðð
 €‡�à	�ˆØ	�ˆØ	�2ˆØ	�ˆØ	�ˆØ	�ˆØ	�˜�ÐØ	�ˆØ	�˜�Ðð
ôñóðð ‡�ñOó ðOð €‡�ˆwÓØ‡�×Ñ˜HÓ%÷p0ð p0ó &ó ðp0ðf €‡�ˆwÓ÷I0ð I0ó ðI0ðX €‡�ˆwÓñ-ó ð-ð €‡�ˆwÓñó ðð( €‡�ˆwÓØ‡�×ÑØ‡�×Ñ˜HÓ%÷`0ð `0ó &ó ó ð`0ðF €‡�ˆwÓñDó ðDô˜kô ð  €‡�ˆwÓ÷,"ð ,"ó ñ,"r   