
    PiV                        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        j        gZ ej        d          Ze                    ej                             eej                   ed          k    o	 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
j#        d          ej        $                    d           G d d                                  Z% e
j#        d           G d d                      Z& e
j#        d          d             Z' e
j#        d          d             Z( e
j#        d          ej        j)        ej        $                    d           G d  d!                                              Z* e
j#        d          d"             Z+ G d# d$e          Z, e
j#        d           G d% d&                      Z-dS )'    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    r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/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                  n    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   s<    A38qcBh.!q8ry}}MMNNNr   ignorec                   N   e Zd Zej                            dddg          d             Zd Zd Ze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                            d e	 e
j        d                     e ed          d          g          d             Zej                            dddg          d             Zej                            dddddgdi gg          d             Zd ZdS )
TestEnginejitTFc                 r   d }|rdd l }|                    |          }|||d}	d}
t          t          d                    }|                    d||                              ||
d|	d	
          }|                    d||                              |d|
d	          }t          j        ||           d S )Nc                 H    d}|D ]}||z  }t          j        |           |z   S Nr   r.   r   )xargsarg_sumargs       r   fz0TestEngine.test_numba_vs_cython_apply.<locals>.f?   s4    G  371::''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    	( 	( 	(  	LLL		!A"'X8TT5991V$77==D4 > 
 
 99QvD999??hTt @ 
 
 	vx00000r   c                    dd}t          t          d                    }|                    d                              |ddddi	          }|                    d                                          dz   }t          j        ||           |                    d                              |ddd
          }t          j        ||           |                                                    |ddddi	          }|                                                                dz   }t          j        ||           |                                                    |ddd
          }t          j        ||           |                    d                              d                              |ddddi	          }|                    d                              d                                          dz   }t          j        ||           |                    d                              d                              |ddd
          }t          j        ||           |                    d                                                              |ddddi	          }|                    d                                                                          dz   }t          j        ||           |                    d                                                              |ddd
          }t          j        ||           d S )Nr   c                 0    |                                  |z   S r!   r   )sras     r   funcz5TestEngine.test_apply_numba_with_kwargs.<locals>.funcY   s    6688a<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   s   	  	  	  	  r##a&&tGsTUh&WW<<??&&((1,
fh///a&&tGD&QQ
fh/// !!''W$PSUVx'XX>>##''))A-
fh///!!''W$T'RR
fh/// s##WQZZU4T3(UCC 	
 %%c**2215599;;a?
fh/// s##WQZZU4TU== 	
 	fh/// s##Y[[U4T3(UCC 	
 %%c**4466::<<q@
fh/// s##Y[[U4TU== 	
 	fh/////r   c                 N   d }t          ddgddgddgdd	gg          }|                    dd
d                              |dd          }t          t          j        t          j        gt          j        t          j        gddgdd	gg          }t          j        ||           d S )Nc                 <    t          |           dk    sJ | d         S )Nr(   )lenr:   s    r   last_rowz3TestEngine.test_numba_min_periods.<locals>.last_row   s    q66Q;;;;R5Lr   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8Ag1==CC$w D 
 
 rvrv.0@1a&1a&QRR
fh/////r   rb   r\   rl   rj   r(   rk   foonamer%   rD   r$   r&   c                     |\  }}|||d}	|                     d|          }
 t          |
|          dd|	d|} t          |
|          dddi|}t          j        ||           d S )	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 >"'X8TT||AD|))&v&& 
-
 
;A
 
 )74((CCCFCC
)))))r   c                    |\  }}|||d}t          t          j        d                    }|                                }	 t	          |	|          dd|d|}
 t	          |	|          dddi|}t          j        |
|           d S )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     >"'X8TT##!!((( 
-
 
;A
 
 +766**EE(EfEE
)))))r   c                    d }d }|r.dd l }|                    |          }|                    |          }|||d}	t          t          d                                        d|          }
|
                    |d|	d	
          }|
                    |dd	          }t          j        ||           |
                    |d|	d	
          }|
                    |dd	          }t          j        ||           |
                    |d|	d	
          }|
                    |dd	          }t          j        ||           d S )Nc                 0    t          j        |           dz   S )Nrj   r9   rh   s    r   func_1z+TestEngine.test_cache_apply.<locals>.func_1   s    71::>!r   c                 0    t          j        |           dz  S )Nr\   )r.   r   rh   s    r   func_2z+TestEngine.test_cache_apply.<locals>.func_2   s    6!99q= 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   sw   	" 	" 	"	! 	! 	!  	'LLLYYv&&FYYv&&F"'X8TTeBii  (((667-T  
 
 ::fX4:@@
vx0007-T  
 
 ::fX4:@@
vx0007-T  
 
 ::fX4:@@
vx00000r   zwindow,window_kwargsrM   r   )windowrn   r`   c                    d }|||d}t          dg di          }	 t          |	|          dd|i|                    |dd|d	          }
t          dg d
i          }t          j        |
|            t          |	|          dd|i|                    |dd|d	          }
t          dg di          }t          j        |
|           d S )Nc                 0    t          j        |           |z   S r!   r.   r   )valuesr:   s     r   addz,TestEngine.test_dont_cache_args.<locals>.add  s    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T+,,$V$$DDFDmDDJJT'T K 
 
 g788
fh///$V$$DDFDmDDJJT'T K 
 
 g788
fh/////r   c                    dddfd}d}t          dg di          }|                    d                              |dd|	          }t          dg d
i          }t          j        ||           dd}|                    d                              |dd|	          }t          dg di          }t          j        ||           d S )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T+,,A$$d7- % 
 
 g788
fh///%-8TTA$$d7- % 
 
 g788
fh/////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   sr        [UT5M221 1 321060 60 60p0 0 0 [IfbfQii  I1aAq!<1aAq!<VRVQ1aAq!<  F5588%(((FBB1a344FBBAq!455	
  * *!  *( [626!99%%vveeAhhU'C'C'CD * * * [UT5M22!1 !1 32!1F [1Q778"	
 0 0 0,0 0 0 0 0r   r4   c                   (   e Zd Zej                            dd d gddg          ej                            ddd	g          d
                         Zej                            dd d gddg          ej                            ddd	g          d                         Zej                            dddg          ej                            ddd	g          d                         Zej                            dddg          d             Z	dS )TestEWMgrouperc                     | S r!   r0   rh   s    r   <lambda>zTestEWM.<lambda>2      a r   c                 ,    |                      d          S Nr,   ra   rh   s    r   r   zTestEWM.<lambda>2      199S>> r   Nonera   )idsr   r   r   c                    t          g dt          d          d          }t          j        t          d          5   t           ||                              d          |          d	           d d d            d S # 1 swxY w Y   d S )
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  s    
 111aAABB]:-DEEE 	D 	D5GGGBKKOOO,,f55UCCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   8BB	Bc                     | S r!   r0   rh   s    r   r   zTestEWM.<lambda>;  r   r   c                 ,    |                      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           ||                              d          |          dd	d
i           d d d            d S # 1 swxY w Y   d S )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11aAABB]:-EFFF 	 	5GGGBKKOOO,,f55
D/A   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ;BB	B	c                 \   t          dt          d          i          }|dk    rd }n
g d|d<   d }|dk    rd	} ||                              d
||          }	|||d}
 t          |	|          d|
          } t          |	|          d          }t	          j        ||           d S )Nr-   rj   r   c                     | S r!   r0   rh   s    r   r   z.TestEWM.test_cython_vs_numba.<locals>.<lambda>L       r   r   r,   c                 ,    |                      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    
 U1XX''f!kGG***BsG..GU??Fgbkkoo#f	oJJ"'X8TT%f%%WMRRR'73''x888
fh/////r   c                 N   t          dg di          }|dk    rd }n
d }g d|d<   d}t          g d	          } ||                              |d
||          }	|||d}
|	                    d|
          }|	                    d          }t	          j        ||           d S )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                 ,    |                      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1f!kGG..G444BsG  	
 	
 gbkkoodiu  
 
 #(X8TTFF8888,,
fh/////r   N)
r   r   r   r   r   r   r   r   r   r   r0   r   r   r   r   /  sz       [KK!9!9:@S    [X77D D 87 D
 [KK!9!9:@S    [X77  87  [Y(;<<[X770 0 87 =<0& [Y(;<<0 0 =<0 0 0r   r   c                  j   d } t          t          d                    }t          dd          5  |                    d                              | d d          }d d d            n# 1 swxY w Y   |                    d                              | dd          }t          j        ||           d S )Nc                 0    t          j        |           dz   S )Nr&   r9   rh   s    r   r>   z!test_use_global_config.<locals>.f~  s    wqzzA~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       	uRyyA	+T	2	2 > >1##Ad#==> > > > > > > > > > > > > > >yy||!!!G!>>H8V,,,,,s   ,A((A,/A,c            	         t          j        t          d          5  t          t	          d                                        d                              d ddidd           d d d            n# 1 swxY w Y   t          j        t          d	          5  t          t	          d                                        d                              d
 ddidd           d d d            n# 1 swxY w Y   t          j	        t          t	          d          t                    dz   t          t	          d                                        d                              d ddidd                     d S )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    a r   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    A r   dtypec                 0    | |z                                    S r!   rX   r   s     r   r   z.test_invalid_kwargs_nopython.<locals>.<lambda>  s    QUKKMM r   )r   r   	TypeErrorr   rL   rM   rN   r   rO   rP   floatr0   r   r   test_invalid_kwargs_nopythonr     s   	y(P	Q	Q	Q 
 
uQxx  ##))Kad 	* 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
M
 
 
 
 
 	uQxx  ##))sAhwD 	* 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 uQxxu%%%)uQxx		))3(7PT	U	U	    s%   A
A22A69A6A
C..C25C2c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            d ej        d	           ej        d
           ej        d          g          e
j                            dddg          d                         ZdS )TestTableMethodc                    d }t          j        t          d          5  t          t	          d                                        dd                              |dd	           d d d            d S # 1 swxY w Y   d S )
Nc                 4    t          j        | d          dz   S Nr   axisr$   r   rh   s    r   r>   z7TestTableMethod.test_table_series_valueerror.<locals>.f      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88$$Qw$77=='t >   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA44A8;A8c                    |\  }}|||d}t          t          j        d                    }	|	                    ddd|          }
|dv rRt	          j        t          | d	          5   t          |
|          d|d
d| d d d            d S # 1 swxY w Y   d S |	                    ddd|          } t          |
|          d|d
d|} t          ||          d|d
d|}t          j	        ||           d S )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    >"'X8TTrvayy!!ZZ'qtZLL
^##2V:S:S:STTT  +
F++ "/ CI                   
 **QxQT*RRK0WZ00 +G ?E F 4w{F33 +G ?E H !&(33333s   (BBBc                 D   |||d}d }t          t          j        d                    }|                    ddd|                              |d|d	
          }|                    ddd|                              |d|d	
          }	t          j        ||	           d S )Nr?   c                 4    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    "'X8TT	) 	) 	) rvayy!!Ag14HHNN4}W O 
 
 ::aad:KKQQ4}W R 
 
 	fh/////r   c                    d }t          g dg dd          }|                    ddd          d	d
g                             |dd          }t          g dg dd          }t          j        ||           |                    ddd          d
d	g                             |dd          }t          g dg dd          }t          j        ||           d S )Nc                 X    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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g4F먪rf   )r\   r\   r\   gh˹WU@g4F먪@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  sD   	1 	1 	1 '''''' 
 
 Ag1==sCjIOO4 P 
 
 999999 
 
 	vx000Ag1==sCjIOO4 P 
 
 333333 
 
 	vx00000r   c                    d }t          g dg dg dg dg          }|                    ddd|	                              |d
d          }t          g dg dg dg dg          d d |         }t          j        ||           d S )Nc                     t          j        d| j        d         f          }| d d d df         | d d df         z                      d          | d d df                                         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  s    '1agaj/**CAAArrE(Qqqq!tW,11q199AaaadGKKMMIC2A2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   )gk}
@gk}@r   )g1?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LAg14HHNNtG O 
 
 )))"""	
 
 &D& 	fh/////r   c                 8   |||d}d }t          t          j        d                    }|                    d                              |d|d          }|                    d	                              |d|d          }t          j        ||           d S )
Nr?   c                 4    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    "'X8TT	) 	) 	) rvayy!!W--334}W 4 
 
 <<x<00664}W 7 
 
 	fh/////r   c                    |\  }}|||d}t          t          j        d                    }|                    d          }	|dv rRt	          j        t          | d          5   t          |	|          d|dd	| d d d            d S # 1 swxY w Y   d S |                    d
          }
 t          |	|          d|dd	|} t          |
|          d|dd	|}t          j	        ||           d S )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    >"'X8TTrvayy!!||7|33^##2V:S:S:STTT  -f-- "/ CI                   
 LLL99M2W\622 +G ?E F 6w}f55 +G ?E H !&(33333s   %BBBrb   r(   )r&   r(   )r(   r&   r   r   r   c                    |||d}t          |          } t          |                    dd          |          |d          } t          |                    dd          |          |d          }	t          j        ||	           d S )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  s     #(X8TTt__?Ag66??'
 
 
 C7266a6996BB'
 
 
 	fh/////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 4 4:0 0 01 1 1@0 0 0(0 0 04 4 40 [VfbfQii'"'&//%RSS[X770 0 87 TS0 0 0r   r   c                      t          dg di          } t          j        d          5  | j                            d                              t          j        dd           d d d            d S # 1 swxY w Y   d S )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  s    	FOOO,	-	-B		#E	*	* D D
  d7 CCCD D D D D D D D D D D D D D D D D Ds   ;A00A47A4c                   (     e Zd Z fdZ	 ddZ xZS )PrescribedWindowIndexerc                 d    || _         || _        t                                                       d S r!   )_start_endsuper__init__)rQ   startend	__class__s      r   r  z PrescribedWindowIndexer.__init__L  s-    	r   Nc                     |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  sM     T[))JQ
33gdiJ//czr   )NNNNN)r   r   r   r  r  __classcell__)r  s   @r   r  r  K  sS             QU       r   r  c            
           e Zd Ze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d
S )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                            t          |j        	                                |j
        	                                                    }|r|                    d	          }n|                    d	          }t          j        ||           d S )
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JJ777666 
 
  	-&(fBF7F?#(000GOO#BH$5$5$7$79J9JKK
 
  	+UU'U**FFUU'U**F
vx00000r   c                    t          j        t          d          t           j                  }|dz   }|d         |d<   |d         dz
  |d<   t	          |dz  ||d          }|j                            t          ||                    }t          j	        t          d	          5  |                    d
           d d d            d S # 1 swxY w Y   d S )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22aiQA8a<aeCHHIIGOO3E3??@@]U
 
 
 	" 	" EEE!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   %C		CCN)r   r   r   r   r   r   r3  r7  r0   r   r   r   r   [  s        [#5LLLM4KKKLEMMMNDLLLM		
 1 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     s9        ) ) ) ) ) ) ( ( ( ( ( ( ) ) ) ) ) ) ) ) )                  + + + + + + ' ' ' ' ' 'k$%
G$$ 
  
K!""ggfoo5K//:K:KK8IKK      '*+++  ,+
 			2						
     O O O wH%%p0 p0 p0 p0 p0 p0 p0 &% p0f wI0 I0 I0 I0 I0 I0 I0 I0X w- - - w  ( wH%%`0 `0 `0 `0 `0 `0 `0 &%  `0F wD D D    k     w," ," ," ," ," ," ," ," ," ,"r   