
    d%                        d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlmZ d Zej                            dg d          d             Zd Zej                            d	d
dg          d             Zd Zd Zd Zd Zd Zd Zej                            ddddigddgg          d             Zd Z d Z!d Z"d Z#d Z$d Z%ej                            dg d          d              Z&d! Z'd" Z(d# Z)dS )$    N)		DataFrameIndex
MultiIndexSeries	Timestampconcat
date_rangeisnanotna)offsetsc                     t          j                    5  t          j        ddt                     | t	          j        |                                                    cd d d            S # 1 swxY w Y   d S )Nignorez.*(empty slice|0 for slice).*)messagecategory)warningscatch_warningsfilterwarningsRuntimeWarningnpisfinitemeanxs    Z/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/window/test_apply.pyfr      s     
	 	"	" ( (3#	
 	
 	
 	

 Q %%''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   AA))A-0A-bad_raw)N   r   c                     t          j        t          d          5  t          t	          d                                        d                              t          |            d d d            d S # 1 swxY w Y   d S )Nz'raw parameter must be `True` or `False`match   r   raw)pytestraises
ValueErrorr   rangerollingapplylen)r   s    r   test_rolling_apply_invalid_rawr+   "   s    	z)R	S	S	S < <uQxx  ##))#7);;;< < < < < < < < < < < < < < < < < <s   A
A33A7:A7c                    | \  }}t          g d          }|                    d                              t          j        ||          }|                                                                sJ |                    dd                              t          j        ||          }t          g dt                    }t          j	        ||           d S )N)r      r!      
   enginer#   r   min_periods)r   r!      r/   dtype)
r   r(   r)   r   sumr
   allfloattmassert_almost_equal)engine_and_rawr1   r#   valsresultexpecteds         r    test_rolling_apply_out_of_boundsr@   (   s     KFC,,,D\\"##BF6s#CCF;;==\\"!\,,2226&c2RRFmmm5111H68,,,,,    windowr-   2sc                 N   t          t          j                            d          t          j                            ddd          dt          ddd          	          fd
}                    |                               |d          }j        dd          	                              }t          j        ||           t          j        t                    5                      |                               |d           d d d            d S # 1 swxY w Y   d S )N   r   r/   )sizeAB20130101speriodsfreq)indexc                 n    | j         d         j         d         k    rt          j        S | j        d         S )Nr   )rO   r   naniloc)r   dfs    r   r   z1test_rolling_apply_with_pandas_objects.<locals>.f@   s-    71:!$$6MvbzrA   Fr"   r-   T)r   r   randomrandnrandintr	   r(   r)   rS   reindex_liker:   assert_frame_equalexternal_error_raisedAttributeError)rB   r   r>   r?   rT   s       @r   &test_rolling_apply_with_pandas_objectsr\   6   sd    
iooa  ry'8'8BQ'8'G'GHHQS999
 
 
B    
 ZZ%%aU%33Fwqrr{''++H&(+++		!.	1	1 . .


6   ---. . . . . . . . . . . . . . . . . .s   "+DD!Dc                 &   | \  }}t          g d          }|                    d|                              d ||          }t          j        ||           t          g d          }|                    dd	|
                              d ||          }t          g d          d d |         }t          j        ||           |                    dd	|
                              t
          ||          }t          j        ||           d S )Nfloat64r5   r/   )stepc                 *    |                                  S N)r   r   s    r   <lambda>z$test_rolling_apply.<locals>.<lambda>R   s    !&&(( rA   r0   )NNNr-   r   r3   r_   c                      t          |           S ra   )r*   r   s    r   rb   z$test_rolling_apply.<locals>.<lambda>Y   s    #a&& rA   )      ?       @rf   )r   r(   r)   r:   assert_series_equalr*   )r<   r_   r1   r#   r?   r>   rK   s          r   test_rolling_applyrh   M   s,    KFCb	***Hbt,,226s 3  F 68,,, 	!!!""AYYqadY3399S :  F ooo&&vvv.H68,,,YYqadY3399#fRU9VVF68,,,,,rA   c                    | \  }}t          t          ddd          t          d          d                              d          dz  }|                    d	          }|                    d
	          }|                    d ||          }|                    d ||          }t          j        ||           d S )NrJ   rE   rK   rL   rG   rH   r-   r   )rB   1sc                     dS Nr    r   s    r   rb   z test_all_apply.<locals>.<lambda>n   s    q rA   r0   c                     dS rl   rm   r   s    r   rb   z test_all_apply.<locals>.<lambda>o   s    ! rA   )r   r	   r'   	set_indexr(   r)   r:   rY   )r<   r1   r#   rT   errr>   r?   s           r   test_all_applyrr   b   s     KFC 	Z===E!HHMM	
 	

)C..
	  
1		B


$
AWW[[SW99FxxFx<<H&(+++++rA   c                    | \  }}t          dt          d          i          }t          d          t          d          t          d          t          d          t          d          g|_        d }|                    d	d
                              |||          }|                                }d|d<   t          j        ||           |                    dd
                              |||          }|                                }d|d<   t          j        ||           |                    dd
                              |||          }|                                }d|d<   t          j        ||           d S )NrI   rE   z20130101 09:00:00z20130101 09:00:02z20130101 09:00:03z20130101 09:00:05z20130101 09:00:06c                     dS rl   rm   r   s    r   rb   z#test_ragged_apply.<locals>.<lambda>   s    ! rA   rj   r   rB   r3   r0   re   rC   5s)	r   r'   r   rO   r(   r)   copyr:   rY   )r<   r1   r#   rT   r   r>   r?   s          r   test_ragged_applyrx   s   sr    KFC	Cq?	#	#B%&&%&&%&&%&&%&&BH 	AZZtZ3399!FPS9TTFwwyyHHSM&(+++ZZtZ3399!FPS9TTFwwyyHHSM&(+++ZZtZ3399!FPS9TTFwwyyHHSM&(+++++rA   c                      t          j        t          d          5  t          t	          d                                        d                              d d           d d d            d S # 1 swxY w Y   d S )Nz)engine must be either 'numba' or 'cython'r   r   c                     | S ra   rm   r   s    r   rb   z%test_invalid_engine.<locals>.<lambda>       A rA   foo)r1   r$   r%   r&   r   r'   r(   r)   rm   rA   r   test_invalid_enginer~      s    	z)T	U	U	U E EuQxx  ##))++e)DDDE E E E E E E E E E E E E E E E E Es   AA//A36A3c                      t          j        t          d          5  t          t	          d                                        d                              d dddi           d d d            d S # 1 swxY w Y   d S )	Nz+cython engine does not accept engine_kwargsr   r   c                     | S ra   rm   r   s    r   rb   z3test_invalid_engine_kwargs_cython.<locals>.<lambda>   s    a rA   cythonnopythonF)r1   engine_kwargsr}   rm   rA   r   !test_invalid_engine_kwargs_cythonr      s    	z)V	W	W	W 
 
uQxx  ##))KU8K 	* 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   A	A22A69A6c                      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 )Nz.raw must be `True` when using the numba enginer   r   c                     | S ra   rm   r   s    r   rb   z(test_invalid_raw_numba.<locals>.<lambda>   r{   rA   Fnumba)r#   r1   r}   rm   rA   r   test_invalid_raw_numbar      s    	J
 
 
 R R 	uQxx  ##))++5)QQQR R R R R R R R R R R R R R R R R Rs   AA00A47A4args_kwargsparr/   )r/   c                 J   d }t          ddgddgd          }t          ddg          }t          ddgddgg|	          }|                    d                              || d
         | d                   }t	          j        ||           t          j        ddgdd g          }t          ddg|d          }|	                    d          d                             d          }|                    || d
         | d                   }t	          j
        ||           d S )Nc                 0    t          j        | |z             S ra   )r   r7   )r   r   s     r   numpysumz0test_rolling_apply_args_kwargs.<locals>.numpysum   s    va#grA   r   r-   )grar   r   g      &@g      (@)columnsr   )argskwargs)r   r   )r   r   )names)rO   name)r   r   r(   r)   r:   rY   r   from_tuplesr   groupbyrg   )r   r   rT   idxr?   r>   midx
gb_rollings           r   test_rolling_apply_args_kwargsr      s6      
1a&1v..	/	/B
s

C4,t5sCCCHZZ]]  A{ST~ VVF&(+++!66"24,GGGDtTl$S999HD!!#&..q11Jh[^KPQNSSF68,,,,,rA   c                    t          t          j                            d                    }t          j        |d d<   t          j        |dd <   |                    dd                              t          |           }t          j	        |j
        d         t          j        |dd                              |                    dd	                              t          |           }t          |j
        d
                   sJ t          |j
        d                   rJ t          |j
        d                   rJ t          |j
        d                   sJ t          t          j                            d                    }|                    dd                              t          |           }t          |j
        d                   sJ t          |j
        d                   sJ |                    dd                              t          |           }|                    dd                              t          |           }t          j	        ||           d S )N2   r/      r2   r"   rQ               irE   r!   r.   r   r   )r   r   rU   rV   NaNr(   r)   r   r:   r;   rS   r   r
   r   )r#   objr>   obj2result0result1s         r   	test_nansr      s    
$$
%
%CvCHCI[[[,,221#2>>F6;r?BGC3K,@,@AAA [[[,,221#2>>FB     FKO$$$$$FKO$$$$$B     ")//"%%&&D\\"!\,,221#2>>FAQ     kk"!k,,221#2>>Gkk"!k,,221#2>>G7G,,,,,rA   c                 (   t          t          j                            d                    }t          j        |d d<   t          j        |dd <   |                    ddd                              t          |           }t          |t          t          j        gd	z            g                              dd
                              t          |           j	        d	d          
                    d          }t          j        ||           d S )Nr   r/   r   r   r   T)r3   centerr"   	   r2   )drop)r   r   rU   rV   r   r(   r)   r   r   rS   reset_indexr:   rg   )r#   r   r>   r?   s       r   test_centerr      s    
$$
%
%CvCHCI[[D[99??s?KKFVRVHqL))*++		$	$	qc			abb	 
$		  68,,,,,rA   c                    |                     d                              t          |           }t          |t                    sJ t          j        |j        d         t          j	        |dd                               d S )Nr   r"   rQ   )
r(   r)   r   
isinstancer   r:   r;   rS   r   r   )r#   seriesr>   s      r   test_seriesr      sm    ^^B%%aS%11Fff%%%%%6;r?BGF344L,A,ABBBBBrA   c                 @   |                     d                              t          |           }t          |t                    sJ t          j        |j        dd d f         |j        dd d d f                             t          j	        d|           d           d S )	Nr   r"   rQ   r   r   )axisr#   Fcheck_names)
r(   r)   r   r   r   r:   rg   rS   r   r   )r#   framer>   s      r   
test_framer      s    ]]2$$QC$00Ffi(((((BE
3447!!"'s!;;     rA   c                    d}d}|d d d                              d                                          }|                    ||                              t          |           }|j        d         }|dt          j                    z  z
  }|d d d                             ||          }t          j
        |d         t          j        |                     d S )	N   r/   r-   rI   ru   r"   rQ   r   )resampler   r(   r)   r   rO   r   BDaytruncater:   r;   r   )	r#   r   winminpserseries_result	last_date	prev_datetrunc_seriess	            r   test_time_rule_seriesr      s    
CD
1+

s
#
#
(
(
*
*CKKsK==CCA3COOM#B'IB//I##A#;''	9==L=,bgl.C.CDDDDDrA   c                    d}d}|d d d                              d                                          }|                    ||                              t          |           }|j        d         }|dt          j                    z  z
  }|d d d                             ||          }t          j
        |                    |          |                    t          j        |           d	
           d S )Nr   r/   r-   rI   ru   r"   rQ   r   Fr   )r   r   r(   r)   r   rO   r   r   r   r:   rg   xsr   )	r#   r   r   r   frmframe_resultr   r   trunc_frames	            r   test_time_rule_framer      s    
CD
!*

c
"
"
'
'
)
)C;;ct;<<BB1#BNNL"2&IB//I!*%%i;;K	"""'s++     rA   r   )r   c   d   c                    |                     t          |          dz   ||                              t          |           }|                     t          |          ||                              t          |           }t	          |          }t          j        |t	          |                     | }t          j        ||         ||                    d S )Nr   rc   r"   )r(   r*   r)   r   r
   r:   rg   r;   )r#   r   r   r_   r>   r?   nan_masks          r   test_min_periodsr     s    ^^CKK!OD^IIOO	s P  F ~~c&kkt$~GGMM	s N  H F||H8T(^^444yH6(+Xh-?@@@@@rA   c                    d t          d          D             }d}|                    t          |j                  |z                                 d|                              t          |                               d                              |j                  }|                    d|d	                              t          |           }t          j	        ||           d S )
Nc                     g | ]}d |d	S r   drm   .0r   s     r   
<listcomp>z.test_center_reindex_series.<locals>.<listcomp>!       &&&qQ&&&rA      r/   r   ru   r"   TrB   r3   r   )
r'   reindexlistrO   r(   r)   r   shiftr:   rg   )r#   r   rK   r   	series_xp	series_rss         r   test_center_reindex_seriesr     s    &&E"II&&&AD 	tFL))A-..		-	-	qc			s			  bd4HHNN	s O  I 9i00000rA   c                    d t          d          D             }d}|                    t          |j                  |z                                 d|                              t          |                               d                              |j                  }|                    d|d	                              t          |           }t          j	        ||           d S )
Nc                     g | ]}d |d	S r   rm   r   s     r   r   z-test_center_reindex_frame.<locals>.<listcomp>3  r   rA   r   r/   r   ru   r"   r   Tr   )
r'   r   r   rO   r(   r)   r   r   r:   rY   )r#   r   rK   r   frame_xpframe_rss         r   test_center_reindex_framer   1  s    &&E"II&&&AD 	d5;''!+,,		-	-	qc			s			  }}BD}FFLLQTWLXXH(H-----rA   c                     t          ddg          }|                    dd                              t          j        |           }t          ddg          }t          j        ||           d S )Nr   r-   )rB   r   r"   re   rf   )r   r(   r)   r   r7   r:   rY   )r#   rT   r>   r?   s       r   
test_axis1r   A  sg    	Aq6		BZZqqZ))//C/@@F#s$$H&(+++++rA   )*r   numpyr   r$   pandasr   r   r   r   r   r   r	   r
   r   pandas._testing_testingr:   pandas.tseriesr   r   markparametrizer+   r@   r\   rh   rr   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   rm   rA   r   <module>r      s        
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       " " " " " "	( 	( 	( LLL11< < 21<
- - - At9--. . .-.,- - -*, , ,", , ,:E E E

 
 
R R R $)<udm(LMM- - NM-,- - -4- - - C C C  	E 	E 	E    ..A A /.A1 1 1$. . . , , , , ,rA   