
    4iV                        S SK rS SKrS SKJr  S SKJr  S SKJs  J	r
  S SKJrJrJrJr  S SKJr  S SKJr  S SKJr  \R.                  R0                  /r\R4                  " S5      r\R9                  \R.                  R;                  \" \R<                  5      \" S5      :H  =(       a    \" 5       S	\R<                   3S
95        \R>                  " SS/S9S 5       r \R>                  " S0 /S0 /S0 /S0 /S0 /S0 /SSS 0/S0 /SSS 0//	S9S 5       r!\R>                  S 5       r"\
RF                  " S5      \R.                  RI                  S5       " S S5      5       5       r%\
RF                  " S5       " S S5      5       r&\
RF                  " S5      S 5       r'\
RF                  " S5      S 5       r(\
RF                  " S5      \R.                  RR                  \R.                  RI                  S5       " S  S!5      5       5       5       r*\
RF                  " S5      S" 5       r+ " S# S$\5      r,\
RF                  " S5       " S% S&5      5       r-g)'    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                     U R                   $ )z3method keyword in rolling/expanding/ewm constructorparamrequests    `/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/window/test_numba.pymethodr      s     ==    summeanmedianmaxminvarddofstdc                     U R                   $ Nr   r   s    r   $arithmetic_numba_supported_operatorsr"   #   s     ==r   c                  j    [        S/S-  S/S-  -   S/S-  -   [        R                  " S5      S.5      $ )	N                  (   AB)r   nparange r   r   
roll_framer1   4   s6    A38qcBh.!q8ryy}MNNr   ignorec                   `   \ rS rSr\R
                  R                  SSS/5      S 5       rS rS r	\R
                  R                  S\
" \R                  " S	5      5      \
" S	S
S
S
\R                  \R                  SSSS/
S	S
S
S
\R                  \R                  S
SSS/
\R                  \R                  S	SS
S	S	S	S	S	/
/5      R                  \" \" S	5      SS9\" SSS\R                  SSSS/5      \" SSS\R                  SSSS/5      /5      S 5       r\R
                  R                  S\
" \R                  " S	5      5      \" \" S	5      SS9/5      S 5       r\R
                  R                  SSS/5      S 5       r\R
                  R                  SSSSS./S0 //5      S 5       rS rSrg) 
TestEngine9   jitTFc                 $   S nU(       a  SS K nUR                  U5      nX#US.n	Sn
[        [        S5      5      nUR	                  SXVS9R                  XzSU	S	S
9nUR	                  SXVS9R                  USU
S	S9n[        R                  " X5        g )Nc                 R    SnU H  nX#-  nM	     [         R                  " U 5      U-   $ Nr   r.   r   )xargsarg_sumargs       r   f0TestEngine.test_numba_vs_cython_apply.<locals>.f?   s+    G 771:''r   r   nogilparallelnopythonr&   
   r&   )centerstepr   T)r<   engineengine_kwargsrawcython)rI   r<   rK   r   r6   r   rangerollingapplytmassert_series_equal)selfr6   rB   rC   rD   rG   rH   r?   r   rJ   r<   sresultexpecteds                 r   test_numba_vs_cython_apply%TestEngine.test_numba_vs_cython_apply=   s    	( 		!A"'8T591V7==4 > 
 99Qv99??hTt @ 
 	v0r   c                 n   SS jn[        [        S5      5      nUR                  S5      R                  USSSS0S9nUR                  S5      R	                  5       S-   n[
        R                  " XE5        UR                  S5      R                  USSS	S
9n[
        R                  " XE5        UR                  5       R                  USSSS0S9nUR                  5       R	                  5       S-   n[
        R                  " XE5        UR                  5       R                  USSS	S
9n[
        R                  " XE5        UR                  S5      R                  S5      R                  USSSS0S9nUR                  S5      R                  S5      R	                  5       S-   n[
        R                  " XE5        UR                  S5      R                  S5      R                  USSS	S
9n[
        R                  " XE5        UR                  S5      R                  5       R                  USSSS0S9nUR                  S5      R                  5       R	                  5       S-   n[
        R                  " XE5        UR                  S5      R                  5       R                  USSS	S
9n[
        R                  " XE5        g )Nc                 (    U R                  5       U-   $ r!   r   )sras     r   func5TestEngine.test_apply_numba_with_kwargs.<locals>.funcY   s    668a<r   rF      r   Tr]   r$   )rI   rK   kwargsr$   )rI   rK   r<   r,   )r   )	r   rN   rO   rP   r   rQ   assert_frame_equal	expandinggroupby)rS   r1   r^   datarU   rV   s         r   test_apply_numba_with_kwargs'TestEngine.test_apply_numba_with_kwargsV   sg   	  r#a&&tGsTUh&W<<?&&(1,
f/a&&tGD&Q
f/ !''W$PSUVx'X>>#'')A-
f/!''W$T'R
f/ s#WQZU4T3(UC 	
 %%c*221599;a?
f/ s#WQZU4TU= 	
 	f/ s#Y[U4T3(UC 	
 %%c*446::<q@
f/ s#Y[U4TU= 	
 	f/r   c                 B   S n[        SS/SS/SS/SS	//5      nUR                  SS
SS9R                  USSS9n[        [        R                  [        R                  /[        R                  [        R                  /SS/SS	//5      n[
        R                  " X45        g )Nc                 .    [        U 5      S:X  d   eU S   $ )Nr(   )lenr;   s    r   last_row3TestEngine.test_numba_min_periods.<locals>.last_row   s    q6Q;;R5Lr   r$   r&   r(      r`         r)   r   r   min_periodsTr   rK   rI   )r   rO   rP   r.   nanrQ   rc   )rS   rn   dfrU   rV   s        r   test_numba_min_periods!TestEngine.test_numba_min_periods   s    	 AAAA78Ag1=CC$w D 
 rvvrvv.0@1a&1a&QR
f/r   rf   r`   rr   rp   r(   rq   foonamer%   rF   r$   r&   c                     Uu  pxX#US.n	UR                  SUS9n
[        X5      " SSU	S.UD6n[        X5      " SSS0UD6n[        R                  " X5        g )	NrA   r(   rH   r   rI   rJ   rI   rL   r0   )rO   getattrrQ   assert_equal)rS   rf   rB   rC   rD   r"   rH   r   ra   rJ   rollrU   rV   s                r   $test_numba_vs_cython_rolling_methods/TestEngine.test_numba_vs_cython_rolling_methods   sm    2 >"'8T||AD|)& 
-
;A
 4(CCFC
)r   c                     Uu  pgX#US.n[        [        R                  " S5      5      nUR                  5       n	[	        X5      " SSUS.UD6n
[	        X5      " SSS0UD6n[
        R                  " X5        g )NrA   r`   r   r   rI   rL   r0   )r   r.   eyerd   r   rQ   r   )rS   rf   rB   rC   rD   r"   r   ra   rJ   expandrU   rV   s               r   &test_numba_vs_cython_expanding_methods1TestEngine.test_numba_vs_cython_expanding_methods   sy     >"'8T#!( 
-
;A
 6*E(EfE
)r   c                    S nS nU(       a&  SS K nUR                  U5      nUR                  U5      nX#US.n	[        [        S5      5      R	                  SUS9n
U
R                  USU	S	S
9nU
R                  USS	S9n[        R                  " X5        U
R                  USU	S	S
9nU
R                  USS	S9n[        R                  " X5        U
R                  USU	S	S
9nU
R                  USS	S9n[        R                  " X5        g )Nc                 4    [         R                  " U 5      S-   $ )Nrp   r:   rm   s    r   func_1+TestEngine.test_cache_apply.<locals>.func_1   s    771:>!r   c                 4    [         R                  " U 5      S-  $ )Nr`   )r.   r   rm   s    r   func_2+TestEngine.test_cache_apply.<locals>.func_2   s    66!9q= r   r   rA   rF   r&   r~   r   T)rI   rJ   rK   rL   rI   rK   rM   )rS   r6   rB   rC   rD   rH   r   r   r   rJ   r   rU   rV   s                r   test_cache_applyTestEngine.test_cache_apply   s   	"	! YYv&FYYv&F"'8TeBi (((67-T  
 ::fX4:@
v07-T  
 ::fX4:@
v07-T  
 ::fX4:@
v0r   zwindow,window_kwargsrO   r   )windowrt   rd   c                 V   S nXSUS.n[        S/ SQ05      n	[        X5      " SSU0UD6R                  USSUSS	9n
[        S/ S
Q05      n[        R                  " X5        [        X5      " SSU0UD6R                  USSUSS	9n
[        S/ SQ05      n[        R                  " X5        g )Nc                 4    [         R                  " U 5      U-   $ r!   r.   r   )valuesr;   s     r   add,TestEngine.test_dont_cache_args.<locals>.add  s    66&>A%%r   rD   rB   rC   valuer   r   r   r   Tr   rb   )rK   rI   rJ   r<         ?r   r   rE          @r   r   r0   )r   r   rP   rQ   rc   )rS   r   window_kwargsrB   rC   rD   r   r   rJ   rw   rU   rV   s               r   test_dont_cache_argsTestEngine.test_dont_cache_args   s    	& &.8T+,$DFDmDJJT'T K 
 g78
f/$DFDmDJJT'T K 
 g78
f/r   c                 x  ^^^ SmSmSmUUU4S jnTTTS.n[        S/ SQ05      nUR                  S5      R                  USSUS	9n[        S/ S
Q05      n[        R                  " XE5        SmTTTS.nUR                  S5      R                  USSUS	9n[        S/ SQ05      n[        R                  " XE5        g )NFTc                    > TT-   T-   $ r!   r0   )r;   rB   rD   rC   s    r   r^   6TestEngine.test_dont_cache_engine_kwargs.<locals>.func  s    8#h..r   r   r   r   r$   r   )rK   rI   rJ   r   r   r   rO   rP   rQ   rc   )	rS   r^   rJ   rw   rU   rV   rB   rD   rC   s	         @@@r   test_dont_cache_engine_kwargs(TestEngine.test_dont_cache_engine_kwargs  s     	/ &.8T+,A$$d7- % 
 g78
f/%-8TA$$d7- % 
 g78
f/r   r0   N)__name__
__module____qualname____firstlineno__pytestmarkparametrizerW   rg   rx   r   r.   r   rv   infTr   rN   r   r   r   r   r   __static_attributes__r0   r   r   r4   r4   9   s    [[UT5M21 31060p0 [[bffQi 1aAq!<1aAq!<VVRVVQ1aAq!< a58%(BB1a34BBAq!45	
 *! *( [[266!9%veAhU'CD** [[UT5M2!1 3!1F [[1Q78"	
00,0r   r4   c                      \ rS rSr\R
                  R                  SS S /SS/S9\R
                  R                  SS	S
/5      S 5       5       r\R
                  R                  SS S /SS/S9\R
                  R                  SS	S
/5      S 5       5       r\R
                  R                  SSS/5      \R
                  R                  SS	S
/5      S 5       5       r	\R
                  R                  SSS/5      S 5       r
Srg)TestEWMi/  grouperc                     U $ r!   r0   rm   s    r   <lambda>TestEWM.<lambda>2      ar   c                 $    U R                  S5      $ Nr,   re   rm   s    r   r   r   2      199S>r   Nonere   )idsr   r   r   c                     [        / SQ[        S5      S.5      n[        R                  " [        SS9   [        U" U5      R                  SS9U5      " SS	9  S S S 5        g ! , (       d  f       g = f)
Nr]   br]   r   rp   r+   zengine must be eithermatchr   comrz   rI   r   rN   r   raises
ValueErrorr   ewmrS   r   r   rw   s       r   test_invalid_engineTestEWM.test_invalid_engine1  sR    
 1aAB]]:-DEGBKOOO,f5UC FEEs   $A  
A.c                     U $ r!   r0   rm   s    r   r   r   ;  r   r   c                 $    U R                  S5      $ r   r   rm   s    r   r   r   ;  r   r   c                     [        / SQ[        S5      S.5      n[        R                  " [        SS9   [        U" U5      R                  SS9U5      " SS	S
0S9  S S S 5        g ! , (       d  f       g = f)Nr   rp   r+   zcython engine does notr   r   r   rL   rD   Tr   r   r   s       r   test_invalid_engine_kwargs"TestEWM.test_invalid_engine_kwargs:  s\    
 1aAB]]:-EFGBKOOO,f5
D/A GFFs   'A##
A1c                    [        S[        S5      05      nUS:X  a  S nO
/ SQUS'   S nUS:X  a  S	nU" U5      R                  S
XvS9n	X4US.n
[        X5      " SU
S9n[        X5      " SS9n[        R
                  " X5        g )Nr-   rp   r   c                     U $ r!   r0   rm   s    r   r   .TestEWM.test_cython_vs_numba.<locals>.<lambda>L      r   r   r,   c                 $    U R                  S5      $ r   r   rm   s    r   r   r   O      		#r   r   Tr   )r   adjust	ignore_narA   r   r   rL   r   )r   rN   r   r   rQ   rc   )rS   r   r   rB   rC   rD   r   r   rw   r   rJ   rU   rV   s                r   test_cython_vs_numbaTestEWM.test_cython_vs_numbaE  s    
 U1X'f!G*BsG.GU?Fbkoo#foJ"'8T%WMR3'x8
f/r   c                 
   [        S/ SQ05      nUS:X  a  S nO
S n/ SQUS'   Sn[        / S	Q5      nU" U5      R                  US
XXS9n	X#US.n
U	R                  SU
S9nU	R                  SS9n[        R
                  " X5        g )Nr-   )r   r   r$   r$   r&   r&   r   c                     U $ r!   r0   rm   s    r   r   4TestEWM.test_cython_vs_numba_times.<locals>.<lambda>`  r   r   c                 $    U R                  S5      $ r   r   rm   s    r   r   r   b  r   r   )r]   r   r]   r   r   r]   r,   z23 days)
2020-01-01r   z
2020-01-02z
2020-01-10z
2020-02-23z
2020-01-03T)halflifer   r   timesrA   r   r   rL   r   )r   r   r   r   rQ   rc   )rS   r   rB   rC   rD   r   rw   r   r   r   rJ   rU   rV   s                r   test_cython_vs_numba_times"TestEWM.test_cython_vs_numba_timesZ  s     /01f!G.G4BsG	
 bkoodi  
 #(8TF8888,
f/r   r0   N)r   r   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                  ,   S n [        [        S5      5      n[        SS5         UR                  S5      R	                  U S SS9nS S S 5        UR                  S5      R	                  U SSS9n[
        R                  " UW5        g ! , (       d  f       NF= f)Nc                 4    [         R                  " U 5      S-   $ )Nr&   r:   rm   s    r   r?   !test_use_global_config.<locals>.f~  s    wwqzA~r   rF   zcompute.use_numbaTr&   r   r   )r   rN   r   rO   rP   rQ   rR   )r?   rT   rU   rV   s       r   test_use_global_configr   |  s~     	uRyA	+T	21##Ad#= 
3yy|!!!G!>H8V, 
3	2s   !B
Bc            
      n   [         R                  " [        SS9   [        [	        S5      5      R                  S5      R                  S SS0SSS9  S S S 5        [         R                  " [        S	S9   [        [	        S5      5      R                  S5      R                  S
 SS0SSS9  S S S 5        [        R                  " [        [	        S5      [        S9S-   [        [	        S5      5      R                  S5      R                  S SS0SSS95        g ! , (       d  f       N= f! , (       d  f       N= f)Nz&got an unexpected keyword argument 'a'r   r$   c                     U $ r!   r0   rm   s    r   r   .test_invalid_kwargs_nopython.<locals>.<lambda>  s    ar   r]   r   T)ra   rI   rK   z-numba does not support keyword-only argumentsc                    U $ r!   r0   r;   r]   s     r   r   r     s    Ar   dtypec                 &    X-   R                  5       $ r!   r[   r   s     r   r   r     s    QUKKMr   )r   r   	TypeErrorr   rN   rO   rP   r   rQ   rR   floatr0   r   r   test_invalid_kwargs_nopythonr     s    	y(P	QuQx  #))ad 	* 	
 
R 
M
 	uQx  #))sAhwD 	* 	

 uQxu%)uQx		)3(7PT	U	 
R	Q
 
s   7D27D&
D#&
D4c                   *   \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	\R                  " S
5      \R                   " S5      \R                   " S5      /5      \R                  R                  SSS/5      S 5       5       rSrg)TestTableMethodi  c                     S n[         R                  " [        SS9   [        [	        S5      5      R                  SSS9R                  USSS	9  S S S 5        g ! , (       d  f       g = f)
Nc                 2    [         R                  " U SS9S-   $ Nr   axisr$   r   rm   s    r   r?   7TestTableMethod.test_table_series_valueerror.<locals>.f      66!!$q((r   z1method='table' not applicable for Series objects.r   r$   r   r   r   Tr   )r   r   r   r   rN   rO   rP   )rS   r?   s     r   test_table_series_valueerror,TestTableMethod.test_table_series_valueerror  s`    	) ]]Q
 58$$Qw$7=='t > 
 
 
s   2A
A&c                    Uu  pgXUS.n[        [        R                  " S5      5      n	U	R                  SSSUS9n
US;   a:  [        R
                  " [        U S3S	9   [        X5      " SUS
S.UD6  S S S 5        g U	R                  SSSUS9n[        X5      " SUS
S.UD6n[        X5      " SUS
S.UD6n[        R                  " X5        g ! , (       d  f       g = f)NrA   r(   r&   r   r   r   rt   rH   r   r    not supportedr   r   rJ   rI   r   r0   )
r   r.   r   rO   r   r   NotImplementedErrorr   rQ   rc   )rS   rB   rC   rD   r"   rH   r   ra   rJ   rw   
roll_tableroll_singlerU   rV   s                 r   !test_table_method_rolling_methods1TestTableMethod.test_table_method_rolling_methods  s     >"'8Trvvay!ZZ'qtZL
^#2VHN:ST
+ "/CI UT
 **QxQT*RKZ0 +G?EF {3 +G?EH !!&3 UTs   C
Cc                    XUS.nS n[        [        R                  " S5      5      nUR                  SSSUS9R	                  USUS	S
9nUR                  SSSUS9R	                  USUS	S
9n	[
        R                  " X5        g )NrA   c                 2    [         R                  " U SS9S-   $ r   r   rm   s    r   r?   :TestTableMethod.test_table_method_rolling_apply.<locals>.f  r   r   r(   r&   r   r   r  Tr   rK   rJ   rI   r   )r   r.   r   rO   rP   rQ   rc   )
rS   rB   rC   rD   rH   rJ   r?   rw   rU   rV   s
             r   test_table_method_rolling_apply/TestTableMethod.test_table_method_rolling_apply  s    "'8T	) rvvay!Ag14HNN4}W O 
 ::aad:KQQ4}W R 
 	f/r   c                 b   S n[        / SQ/ SQS.5      nUR                  SSSS9S	S
/   R                  USSS9n[        / SQ/ SQS.5      n[        R                  " X45        UR                  SSSS9S
S	/   R                  USSS9n[        / SQ/ SQS.5      n[        R                  " X45        g )Nc                 P    [         R                  " U S S 2S4   U S S 2S4   -
  5      $ )Nr   r$   )r.   nanmeanrm   s    r   r?   DTestTableMethod.test_table_method_rolling_apply_col_order.<locals>.f  s&    ::a1g!Q$/00r   )r$   r&   r(   rp   r`   rq   )rq   rr   r)   r`   rq   rr   )r]   r   r(   r   r   rs   r]   r   Tr   ru   )r  r  gh˹WUg4F먪rk   )r`   r`   r`   gh˹WU@g4F먪@r$   )r   r]   )r   rO   rP   rQ   assert_almost_equal)rS   r?   rw   rU   rV   s        r   )test_table_method_rolling_apply_col_order9TestTableMethod.test_table_method_rolling_apply_col_order  s    	1 ''
 Ag1=sCjIOO4 P 
 99
 	v0Ag1=sCjIOO4 P 
 33
 	v0r   c                     S n[        / SQ/ SQ/ SQ/ SQ/5      nUR                  SSSUS	9R                  US
SS9n[        / SQ/ SQ/ SQ/ SQ/5      S S U2   n[        R                  " XE5        g )Nc                     [         R                  " SU R                  S   45      nU S S 2S S24   U S S 2S4   -  R                  SS9U S S 2S4   R                  5       -  US S 2S S24'   U$ )Nr$   r&   r   r   )r.   onesshaper   )r;   arrs     r   weighted_meanNTestTableMethod.test_table_method_rolling_weighted_mean.<locals>.weighted_mean  sl    ''1aggaj/*CArrE(Qq!tW,11q19AadGKKMIC2A2JJr   )r$   r&   g333333?)r&   r(   g?)r(   rp   g?)rp   r`   gffffff?r&   r   r   r  Tr   ru   )r   r   r   )g?r   r   )gk}
@gk}@r   )g1?rr   r   r   )rS   rH   r!  rw   rU   rV   s         r   'test_table_method_rolling_weighted_mean7TestTableMethod.test_table_method_rolling_weighted_mean  s    	
 [+{KLAg14HNNtG O 
 )"	
 D& 	f/r   c                     XUS.nS n[        [        R                  " S5      5      nUR                  SS9R	                  USUSS9nUR                  S	S9R	                  USUSS9n[
        R                  " Xx5        g )
NrA   c                 2    [         R                  " U SS9S-   $ r   r   rm   s    r   r?   <TestTableMethod.test_table_method_expanding_apply.<locals>.f  r   r   r(   r   r  Tr   r  r   )r   r.   r   rd   rP   rQ   rc   )	rS   rB   rC   rD   rJ   r?   rw   rU   rV   s	            r   !test_table_method_expanding_apply1TestTableMethod.test_table_method_expanding_apply  s    "'8T	) rvvay!W-334}W 4 
 <<x<0664}W 7 
 	f/r   c                    Uu  pVXUS.n[        [        R                  " S5      5      nUR                  SS9n	US;   a:  [        R
                  " [        U S3S9   [        X5      " SUSS	.UD6  S S S 5        g UR                  S
S9n
[        X5      " SUSS	.UD6n[        X5      " SUSS	.UD6n[        R                  " X5        g ! , (       d  f       g = f)NrA   r(   r   r  r  r  r   r   r  r   r0   )
r   r.   r   rd   r   r   r	  r   rQ   rc   )rS   rB   rC   rD   r"   r   ra   rJ   rw   expand_tableexpand_singlerU   rV   s                r   #test_table_method_expanding_methods3TestTableMethod.test_table_method_expanding_methods  s     >"'8Trvvay!||7|3^#2VHN:ST- "/CI UT
 LLL9M\2 +G?EF }5 +G?EH !!&3 UTs   C
Crf   r(   )r&   r(   )r(   r&   r   r   r   c                     X4US.n[        U5      n[        UR                  SSS9U5      " USS9n[        UR                  SSS9U5      " USS9n	[        R                  " X5        g )NrA   r$   r   )r   r   r   r  r   )r   r   r   rQ   rc   )
rS   rf   r   rB   rC   rD   rJ   rw   rU   rV   s
             r   test_table_method_ewm%TestTableMethod.test_table_method_ewm4  so     #(8Tt_Ag6?'
 266a696B'
 	f/r   r0   N)r   r   r   r   r  r  r  r  r#  r(  r-  r   r   r   r.   r   r  r0  r   r0   r   r   r   r     s    
	4:01@0(040 [[VbffQi"''&/%RS[[X70 8 T0r   r   c                      [        S/ SQ05      n [        R                  " S5         U R                  R	                  S5      R                  [        R                  SSS9  S S S 5        g ! , (       d  f       g = f)Ncol1)r$   r&   r(   rp   r`   Fr&   Tr   ru   )r   rQ   assert_produces_warningr3  rO   rP   r.   prod)rw   s    r   test_npfunc_no_warningsr6  D  sQ    	FO,	-B		#	#E	*
  d7 C 
+	*	*s   9A((
A6c                   4   ^  \ rS rSrU 4S jr SS jrSrU =r$ )PrescribedWindowIndexeriK  c                 :   > Xl         X l        [        TU ]  5         g r!   )_start_endsuper__init__)rS   startend	__class__s      r   r=   PrescribedWindowIndexer.__init__L  s    	r   c                     Uc  [        U R                  5      n[        R                  " U R                  SU5      n[        R                  " U R                  SU5      nXg4$ r9   )rl   r:  r.   clipr;  )rS   
num_valuesrt   rG   closedrH   r>  r?  s           r   get_window_bounds)PrescribedWindowIndexer.get_window_boundsQ  sL     T[[)JQ
3ggdiiJ/zr   )r;  r:  )NNNNN)r   r   r   r   r=  rF  r   __classcell__)r@  s   @r   r8  r8  K  s     QU r   r8  c            
           \ rS rSr\R
                  R                  SSS/ SQ4SS/ SQ4SS/ SQ4SS/ SQ4/5      S	 5       rS
 rSr	g)TestMinMaxNumbai[  zis_max, has_nan, exp_listTF)
      @      @r   rL  r   rL        @      @       @      "@)
rK        @r   rQ  r   rQ  rM  rN  rN  rP  )
rK  r   r   r   r           rR  rR  rN  rR  )
rK  r   r   r   r   r   rM  rM  rN  r   c                    / SQn[        / SQ/ SQ/ SQS.5      nU(       a  [        R                  UR                  US4'   [	        USS9nUR
                  R                  [        UR                  R                  5       UR                  R                  5       5      5      nU(       a  UR                  SS	9nOUR                  SS	9n[        R                  " X5        g )
N)r   r`   r)   )
rL  rQ  rK  r   r   rR  rM  rN  rO  rP  )
r&   r   r(   r   rp   r   r`   r`   rr   r(   )
r(   rp   rp   r`   r`   rq   rr   r)   	   rF   rf   r>  r?  rf   r{   r   r   )r   r.   rv   locr   rf   rO   r8  r>  to_numpyr?  r   r   rQ   rR   )	rS   is_maxhas_nanexp_listnan_idxrw   rV   rrU   s	            r   test_minmaxTestMinMaxNumba.test_minmax]  s     J76
 &(ffBFF7F?#(0GGOO#BHH$5$5$79JK
 UU'U*FUU'U*F
v0r   c                 z   [         R                  " [        S5      [         R                  S9nUS-   nUS   US'   US   S-
  US'   [	        US-  XS.5      nUR
                  R                  [        X5      5      n[        R                  " [        SS	9   UR                  S
S9  S S S 5        g ! , (       d  f       g = f)Nr`   r   r$   r&   r(   r   rU  z5Start/End ordering requirement is violated at index 3r   r   r   )r.   arrayrN   int64r   rf   rO   r8  r   r   r   r   )rS   r>  r?  rw   r\  s        r   test_wrong_order TestMinMaxNumba.test_wrong_order|  s    q2aiQA8a<aeHIGGOO3E?@]]U
 EEE!
 
 
s   B,,
B:r0   N)
r   r   r   r   r   r   r   r]  rb  r   r0   r   r   rJ  rJ  [  s\    [[#5LM4KLEMNDLM		
11,"r   rJ  ).numpyr.   r   pandas.compatr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   pandas._testing_testingrQ   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   r6  r8  rJ  r0   r   r   <module>rz     s     ) ( ) )   + 'kk$$%
G$ 
  
KK!!"gfo5K/:K78I8I7JK   '*+ ,
 			2						
 O O wH%p0 p0 & p0f wI0 I0 I0X w- - w ( wH%`0 `0 &  `0F wD Dk   w," ," ,"r   