
    Mhn                     N   S SK rS SKrS SKrS SKJrJrJrJrJ	r	J
r
  S SKJr  S r\R                  R!                  SSS/5      S 5       r\R                  R!                  SS S	/5      S
 5       r\R                  R!                  SSS/5      S 5       r\R                  R!                  SSS/5      \R                  R!                  S\" SSS\R(                  /S.5      \" SS/0\" S/SS9S94\" S\R(                  /S.\S9\" SS/0\" S/SS9S94/5      S 5       5       rS rS rS rS rS rS rS rS rS rS r S  r!\R                  R!                  S!S"/\	" S#S$S%9S&/S'.S"/\	" S#S$S%9S&/S'.S"/\	" S#S$S%9S&/S'.4/ S(Q\	" S)S*S%9\	" S#S$S%9\	" S+S,S%9// S-QS'.S"S./\	" S)S*S%9\	" S#S$S%9/S&S//S'.S"S./\	" S+S,S%9\	" S#S$S%9/S0S//S'.4/5      S1 5       r"\R                  R!                  S2S\	" S3S4S%9S/S\	" S5S4S%9S6//5      S7 5       r#\R                  R!                  S8\RH                  " S9S:/S;S9\RH                  " S&S//S<S9\RJ                  " S=S>/5      \RL                  " S&S//S?S@9/5      \R                  R!                  SA/ SBQ5      SC 5       5       r'SD r(\R                  R!                  SESFS	S /4SFS / 4SFS&S S//4SFSG/ SHQ4SIS	S&/4SIS / 4SIS&S&S//4SISG/ SHQ4/5      \R                  R!                  SJS/ S"/S./S"S.//5      \R                  R!                  SKS9S:/5      SL 5       5       5       r)\R                  R!                  SMSFS	S /4SFS / 4SFS&S S//4SFSG/ SHQ4SIS	S&/4SIS / 4SIS&S&S//4SISG/ SHQ4/5      SN 5       r*SO r+SP r,SQ r-\R                  R!                  SR/ SSQ5      ST 5       r.\R                  R!                  SR/ SSQ5      SU 5       r/SV r0SW r1\R                  R!                  S/ SXQ5      SY 5       r2\R                  R!                  SZ\3" SS0S/5      / S[Q/\3" SS\5      / S]Q/\3" SS/5      \3" S\S5      // S^Q/S S&\3" S\S5      // S^Q//5      S_ 5       r4S` r5Sa r6Sb r7Sc r8Sd r9Se r:\R                  R!                  SfSS/ SgQ\;" Sh5      4SS&S S0/\;" Si5      4SSj/ SgQ\;" Sh5      4SS	/ SkQ\;" Sl5      4S&S/ SmQ\;" Sn5      4S&S	S&/\;" S.5      4S	SS/So/\;" Sp5      4S	S/So/\;" Sq5      4/5      \R                  R!                  SSrS/5      Ss 5       5       r<\R                  R{                  St5      Su 5       r>Sv r?\R                  R!                  SwS6S6/S6Sx/45      \R                  R!                  SR/ SyQ5      Sz 5       5       r@\R                  R!                  S{\	" S|5      \	" S}5      4S~/5      S 5       rAg)    N)	DataFrameIndex
MultiIndexSeries	Timestampisnac                 "   U R                  S5      nUR                  5       nU R                  SS// SQ4   n[        SS/SS9Ul        UR                  5       n[        R                  " X#5        UR                  S5      nU R                  SS/   n[        R                  " XC5        UR                  5       nU R                  SS	// SQ4   n[        SS/SS9Ul        [        R                  " XS5        UR                  S
5      nU R                  SS	/   n[        R                  " XC5        UR                  S5      nU R                  SS/   n[        R                  " XC5        US   R                  5         US   R                  5         US   R                  S5        U R                  5       n [        R                  U R                  U S   S:H  S4'   U R                  S5      n[        US   R                  5       S   5      (       d   e[        US   R                  5       S   5      (       d   e[        US   R                  S5      R                  S   5      (       d   e[        S[        R                  /SS/SS//SS/S9n U R                  S5      nUR                  5       nU R                  SS/   R!                  S5      n[        R                  " Xs5        U R                  SS/   nUR                  SSS9n[        R                  " Xs5        g )NA   r   )BCDbarfooname            r         columnsanydropna)groupbyfirstlocr   index
sort_indextmassert_frame_equalnthlastiloccopynpnanr   r   	set_index)dfgroupedr    expectedr&   r'   gresults           W/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_nth.pytest_first_last_nthr3      s   jjoGMMOEvvq!fo-.HE5>4HN""$H%*
++a.Cvvq!f~H#(<<>Dvvq!fo-.HE5>4HN$)
++b/Cww1vH#(
++a.Cww1vH#( CLCLCLQ	B$&FFBFF2c7eS !jjoG""$U+,,,,!!#E*++++  #((+,,,, 
QK!Q!Q03*	EB


3AWWYFww1v((-H&+ww1vHUU1UU#F&+    methodr    r'   c                 &   [        / SQSSSU/S.5      R                  S5      n[        X 5      " 5       nU S:X  a  SS/nOSS/n[        R                  " XCS   R
                  S	9n[        SS/SS
9n[        SU0US9n[        R                  " X65        g )Nr   r   r   r   r   r   r   abr9   r    r:   dtyper   r"   )	r   r   getattrr*   arrayr<   r   r$   r%   )r5   nulls_fixturegroupsr1   valuesidxr/   s          r2   test_first_last_with_na_objectrD   B   s     \Aq-0HIJRRSVWFV$&FQQXXf3K$5$56F
AS
!C#vc2H&+r4   r"   r   c                     [        / SQSSSU/S.5      nUR                  S5      nUR                  U 5      nU S:X  a  UR                  SS/   OUR                  SS/   n[        R
                  " XE5        g )Nr7   r   r   r   r8   r9   r   r   r   r&   r(   r$   r%   )r"   r@   r-   rA   r1   r/   s         r2   test_nth_with_na_objectrG   T   sj     
Q1m,DE	FBZZ_FZZF"'1*rww1v"''1a&/H&+r4   c                     [         R                  " S/S /S.5      nUR                  SSS9n[        X 5      " 5       n[        R
                  " X15        g )Nr9   idvaluerJ   Fas_index)r   	from_dictr   r>   r$   r%   )r5   r-   rA   r1   s       r2   test_first_last_with_NonerO   ^   sJ     
		SETF;	<BZZuZ-FV$&F&%r4   zdf, expectedr9   r   rI   rK   rJ   r   r=   r;   c                 p    [        UR                  S5      U 5      " 5       n[        R                  " X25        g )NrJ   )r>   r   r$   r%   )r5   r-   r/   r1   s       r2   "test_first_last_with_None_expandedrQ   i   s*      RZZ%v.0F&+r4   c            
         [        / SQ/ SQ[        R                  R                  S5      R	                  S5      [        R
                  " [        R                  R                  S5      R	                  S5      SS9S.5      n SU S	'   S
U S'   U R                  S5      nUR                  5       nU R                  S
S// SQ4   n[        SS/SS9Ul
        UR                  5       n[        R                  " X#5        UR                  5       nU R                  SS// SQ4   n[        SS/SS9Ul
        UR                  5       n[        R                  " XC5        UR                  S
5      nU R                   SS/   n[        R                  " XS5        g )N)r   r   r   r   r   r   r   r   )onerS   twothreerT   rT   rS   rU   r      float32r;   r
   r   r   r   TEr   Fr
   r   )r   r   r   rY   rZ   r   r   r   r   r   r   )r   r*   randomdefault_rngstandard_normalr?   r   r    r!   r   r"   r#   r$   r%   r'   r&   r(   )r-   r.   r    r/   r'   r&   s         r2   test_first_last_nth_dtypesr^   }   sM   	IM&&q)99!<"))//2BB1EYW		

B BsGBsG jjoGMMOEvvq!f778HE5>4HN""$H%*<<>Dvvq!f778HE5>4HN""$H$)
++a.Cww1vH#(r4   c                      [        [        S5      5      n U R                  S5        [        [        S5      U SS9nUR                  S:X  d   eUR                  SS9R                  5       nUR                  S:X  d   eg )	N
   	      IntCol)datar"   r   int64r   level)listrangeappendr   r<   r   r    )rC   serfs      r2   test_first_last_nth_dtypes2rm      si    
uRy/CJJqM
eBis
:C99!""$A77gr4   c                  (   [        S/[        S /[        S9S.5      n U R                  S5      nU R	                  S5      R
                  n[        R                  " UR
                  R                  5       U5        [        R                  " UR
                  R                  5       U5        U R
                  n[        R                  " UR
                  R                  S5      U5        [        R                  " UR
                  R                  S5      U5        g )Nr
   r;   )rd   nansrd   r   r   )r   r   objectr   r,   ro   r$   assert_series_equalr    r'   r&   )r-   r.   r/   s      r2   test_first_last_nth_nan_dtyperr      s    	SE64&+GH	IBjj G||F#((H7<<--/:7<<,,.9wwH7<<++B/:7<<++A.9r4   c                  2   [        [        S5      SS/[        S5      SS/SSS/S	S
S/05      n U R                  S5      R                  5       n[        / SQ/[	        [        S5      [        S5      S	/5      [	        S/SS9S9n[
        R                  " X5        g )Nz2012-01-01 00:00:00r9   r:   z2012-01-02 00:00:00cdr   eaaaarl   r0   )r9   rt   rl   z
2012-01-01z
2012-01-02r   r   r"   )r   r   r   r    r   r$   r%   )testr1   r/   s      r2   test_first_strings_timestampsrz      s    +,sCj+,sCjS#JS#J		
D \\&!'')F	y.	,0GPQSE'H
 &+r4   c                     [        S[        R                  /SS/SS//SS/S9n U R                  S5      n[        R
                  " UR                  S5      U R                  SS	/   5        [        R
                  " UR                  S5      U R                  S/   5        [        R
                  " UR                  S	5      U R                  /    5        [        R
                  " UR                  S
5      U R                  SS	/   5        [        R
                  " UR                  S5      U R                  S/   5        [        R
                  " UR                  S5      U R                  /    5        [        R                  " UR                  R                  S5      U R                  R                  SS	/   5        [        R                  " UR                  R                  S5      U R                  R                  S/   5        [        R
                  " US/   R                  S5      U S/   R                  SS	/   5        [        R
                  " UR                  SSS9U R                  SS	/   5        [        R
                  " UR                  S
SS9U R                  SS	/   5        [        R
                  " UR                  SSS9U R                  S S 5        [        R
                  " UR                  S	SS9U R                  S S 5        g )Nr   r   r   r   r
   r   r   r   r   r   r   r   r   )r   r*   r+   r   r$   r%   r&   r(   r!   rq   r   r-   gbs     r2   test_nthr      s+   	QK!Q!Q03*	EB	CB"&&)RWWaV_5"&&)RWWaS\2"&&)RVVBZ0"&&*bggq!fo6"&&*bggqcl3"&&*bffRj124488A;		1a&(9:24488A;		1#7"cU)--*BuINNAq6,BC"&&5&1277Aq6?C"&&E&2BGGQFOD"&&5&12772A;?"&&5&12772A;?r4   c                     [        SSSSSS.SSSSSS.SSS	S
SS.SSSSSS.S.5      R                  SS/5      n U R                  SSS9R                  S5      nU R                  S/   n[
        R                  " X5        U R                  SSS9R                  S5      nU R                  /    n[
        R                  " X5        g )Ngreenredr   r   r   r   r   hameggsporkgI|?goB!gHk:!4gn2d?gC8fٓ?gW?gV,gN'r?gGĔH"g(	?)colorfoodrT   rS   r   r   r   F)rg   rM   r   r   r   )r   r,   r   r&   r(   r$   r%   r!   r-   r1   r/   s      r2   	test_nth2r      s     
 W5UK&V&I%(&&& '&'&	

& i&!"' * ZZa%Z044Q7Fwwt}H&+ZZa%Z044Q7FvvbzH&+r4   c                     [        [        R                  R                  S5      R	                  SSS5      SS9n U S   nU S   nUR                  U5      R                  5       nUR                  U5      R                  S 5      n[        R                  " XCS	S
9  UR                  S:X  d   eUR                  S:X  d   eXS:H     R                  S   nUR                  S   U:X  d   eUR                  S   U:X  d   e[        R                  " [        SS9   UR                  US	S9R                  SSS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r`   )d   r   re   r;   r   c                      U R                   S   $ )Nr   )r(   )xs    r2   <lambda>test_nth3.<locals>.<lambda>  s    q	r4   F)check_nameszFor a DataFramematch)sortTr   )r   r*   r[   r\   integersr   r    applyr$   rq   r   r(   pytestraises
ValueErrorr&   )r-   rk   r   r/   	expected2vs         r2   	test_nth3r      s$    
299((+44QHEW	UB
Q%C	AB{{2$$&HB%%&9:I9EB==A>>Q 	!G!A==q   >>!!!!	z):	;BU#''$'7 
<	;	;s   D;;
E	c                     [        S[        R                  /SS/SS//SS/S9n U R                  S5      nUR                  R                  SS	S
9nU R                  R                  SS/   n[        R                  " X#5        g )Nr   r   r   r   r
   r   r   r   allr   r   )	r   r*   r+   r   r   r&   r(   r$   rq   )r-   r   r1   r/   s       r2   	test_nth4r     sp    	QK!Q!Q03*	EB	CBTTXXaX&Fttyy!Q H6,r4   c                     [        S[        R                  /SS/SS/SS/SS//SS/S	9n U R                  S5      n[        R
                  " UR                  S
5      U R                  S
S/   5        [        R
                  " UR                  S
/5      U R                  S
S/   5        [        R
                  " UR                  S
S/5      U R                  / SQ   5        [        R
                  " UR                  S
S/5      U R                  / SQ   5        [        R
                  " UR                  / SQ5      U R                  / SQ   5        [        R
                  " UR                  / SQ5      U R                  / SQ   5        [        R
                  " UR                  S/5      U R                  S/   5        [        R
                  " UR                  SS/5      U R                  /    5        g )Nr   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%   r&   r(   r!   r~   s     r2   	test_nth5r     sc   	QK!Q!Q!Q!Q@3PS*	UB	CB"&&)RWWaV_5"&&!+rww1v7"&&!Q."'',*?@"&&!R/277<+@A"&&+RWW_-EF"&&,bggo.FG"&&!+rwws|4"&&!Q."&&*5r4   c                 z   [         R                  " SSSU S9n[        SUSS/S9nUR                  R                  UR                  R
                  /nUR                  US	S
9R                  / SQ5      n[         R                  " / SQ5      R                  U 5      n[        SSS/US9n[        R                  " XF5        g )Nz4/1/2014z	6/30/2014r   )startendfrequnitr   r9   r:   r"   r   FrL   )r   r   r|   r   )z2014/4/1z2014/4/4z	2014/4/29z	2014/4/30z2014/5/1z2014/5/6z	2014/5/29z	2014/5/30z2014/6/2z2014/6/5z	2014/6/27z	2014/6/30rx   )pd
date_ranger   r"   yearmonthr   r&   to_datetimeas_unitr$   r%   )r   business_datesr-   keyr1   expected_datesr/   s          r2   test_nth_bdaysr   *  s    ]]k$N 
1NS#J	?B88=="((..
)CZZeZ,00@F^^	
 gdm   S#JnEH&+r4   c                     U R                  SS/5      nUR                  S5      nU R                  / SQ   n[        R                  " X#5        g )Nr
   r   r   r   r   r   r   )r   r&   r(   r$   r%   three_groupr.   r1   r/   s       r2   test_nth_multi_grouperr   F  sC     !!3*-G[[^F-H&+r4   z#data, expected_first, expected_lastr
   z2012-02-01 14:00:00z
US/Centraltzr   rJ   timer   )r
   r   r
   z2012-01-01 13:00:00zAmerica/New_Yorkz2012-03-01 12:00:00zEurope/Londonr   r   r   r   r   r   c                 *   [        U 5      nUR                  SSS9R                  5       n[        U5      n/ SQn[        R                  " XF   XV   5        UR                  SSS9S   R                  5       n[        R                  " XESS/   5        UR                  SSS9R                  5       n[        U5      n/ SQn[        R                  " XF   XV   5        UR                  SSS9S   R                  5       n[        R                  " XESS/   5        g )NrJ   FrL   r   r   )r   r   r    r$   r%   r'   )rd   expected_firstexpected_lastr-   r1   r/   colss          r2   test_first_last_tzr   O  s    l 
4BZZuZ-335F(H D&,7ZZuZ-f5;;=F&D&>":;ZZuZ-224F'H D&,7ZZuZ-f5::<F&D&>":;r4   zmethod, ts, alphaz
2013-01-01
US/Easternz
2013-01-02r:   c           	         [        [        S5      5      R                  S5      n[        R                  " SSSUS9n[        / SQUUS.5      n[        UR                  S	5      U 5      " 5       n[        [        R                  " US
/UR                  S9U[        SSS9/S.[        SS/S	S9S9nUS   R                  R                  U5      US'   [        R                  " Xx5        g )Nabccategory20130101r   r   )periodsr   r   r   r   r   )groupcategory_string
datetimetzr   rt   r;   z
2013-01-03r   )r   r   r   r   r   r=   r   )r   rh   astyper   r   r   r>   r   Categoricalr<   r   r   dtr   r$   r%   )	r5   tsalphar   r   dtir-   r1   r/   s	            r2   test_first_last_tz_multi_columnr     s     T%[)00<O
--
A,T
JC	.	

B RZZ(&13F!~~O$9$9  y,GH		
 QF)H &l366>>tDH\&+r4   rB   TFbooleanInt64z
2020-01-01z
2020-02-01r   )r   function)r    r'   minmaxc                 2   [        SS/U S.5      nUR                  S5      n[        SS/SS9n[        U SUS9n[        SU 0US9n[	        US   U5      " 5       n[
        R                  " Xu5        UR                  SU05      n[
        R                  " X5        g )	Nr   r   r8   r9   r   r:   )r   r"   r=   )	r   r   r   r   r>   r$   rq   aggr%   )	rB   r   r-   r.   rC   expected_seriesexpected_frameresult_seriesresult_frames	            r2   +test_first_last_extension_array_keeps_dtyper     s     
!Qf-	.BjjoG
AS
!CV#S9OV}C8NGCL(35M=:;;X/L,7r4   c                      [        / SQ/ SQ/ SQS.5      n U R                  SS/5      nUR                  S5      nU R                  / SQ   n[        R
                  " X#5        g )	N)r   r   r   r   r   r   r   r   r   r   r   )rS   rS   rS   rT   rS   rS   rS   rT   rT   rT   rS   )dullr   shinyr   r   r   r   r   r   r   r   r
   r   r   r
   r   r   r   rF   r   s       r2    test_nth_multi_index_as_expectedr     sd     7(	
*KV !!3*-G[[^F-H&+r4   zop, n, expected_rowsheadr   r   tailr   rM   c                     [        SS/SS/SS//SS/S9nUR                  SUS	9nUR                  U   nUb  Xc   nXs   n[        X`5      " U5      n[        R
                  " X5        g )
Nr   r   r   r   r   r
   r   r   rL   )r   r   r(   r>   r$   r%   )	opnexpected_rowsr   rM   r-   r0   r/   r1   s	            r2   test_groupby_head_tailr     sx      
QFQFQF+c3Z	@B


3
*Aww}%HJ$Q^AF&+r4   zop, n, expected_colsc                 8   [        / SQ/ SQ/ SQ/ SQ// SQS9nSn[        R                  " [        US9   UR	                  / S	QS
S9nS S S 5        UR
                  S S 2U4   n[        WU 5      " U5      n[        R                  " Xv5        g ! , (       d  f       NJ= f)Nr   )r   r   r   )r   r   r   )r   rV   ra   r   r   +DataFrame.groupby with axis=1 is deprecatedr   r   r   r   r   axis)r   r$   assert_produces_warningFutureWarningr   r(   r>   r%   )r   r   expected_colsr-   msgr0   r/   r1   s           r2   test_groupby_head_tail_axis_1r      s     
	Iy)4o
B 8C		#	#M	=JJyqJ) 
>wwq-'(HQ^AF&+	 
>	=s   B
Bc                  8   [        SS/SS/SS//SS/S9n U R                  S	S/   nU R                  S5      nUR                  SS
9nUR	                  S	5      n[
        R                  " X05        [
        R                  " XA5        U R                  S5      nUR                  SS
9nUR	                  S	5      n[
        R                  " X05        [
        R                  " XA5        U R                  S5      nUR	                  S	5      nUR                  SS
9n[
        R                  " X15        [
        R                  " X@5        U R                  S5      nUR	                  S	5      nUR                  SS
9n[
        R                  " X15        [
        R                  " X@5        g )Nr   r   r   r   r   r
   r   r   r   r   )r   r(   r   r   r&   r$   r%   r   )r-   r/   r0   result1result2s        r2   test_group_selection_cacher   :  sJ   	QFQFQF+c3Z	@Bww1vH


3AffqfkGeeAhG'&',


3AffqfkGeeAhG'&',


3AeeAhGffqfkG','&


3AeeAhGffqfkG','&r4   c                  6   [        S// SQS9n U R                  S5      R                  S5      nU R                  S S n[        R
                  " X5        U R                  SS/5      R                  S5      nU R                  S S n[        R
                  " X5        g )Nr   r9   r:   rt   r   r9   r`   r:   rF   r   s      r2   test_nth_emptyr   X  s    	!o	6BZZ_  $Fwwr{H&+ZZc
#''+Fwwr{H&+r4   c                  r   [        / SQ/ SQSS[        R                  // SQ/ SQ// SQS9n U R                  S	5      R	                  S
5      nU R
                  S
S/   n[        R                  " X5        U R                  S	5      R	                  SSS9nU R
                  SS/   n[        R                  " X5        g )N)r   r:   r   )r   r9   2   r   r9   )r   rt      )r   ru      )r
   r   r   r   r
   r   r   r   r   r   r   r   r*   r+   r   r&   r(   r$   r%   r   s      r2   test_nth_column_orderr  d  s     
	q#rvv&6}U
B ZZ_  #Fww1vH&+ZZ_  E 2Fww1vH&+r4   r   )Nr   r   c                    [        [        R                  S[        R                  S[        R                  // SQ/ SQS.5      nUR                  S5      R	                  SU S9nUR
                  SS	/   n[        R                  " X#5        g )
Nr9   r:   r   r   r   r   rV   )r   r   r   r   ra   r   r   r   r   r   r  r   r-   r1   r/   s       r2   test_nth_nan_in_grouperr  t  sq     
&&#rvvsBFF3  	

B ZZ_  6 2Fww1vH&+r4   c                    [        [        R                  S[        R                  S[        R                  // SQS.5      nUR                  S5      S   R	                  SU S9nUS   R
                  SS/   n[        R                  " X#5        g )	Nr9   r:   r  r8   r   r   r   r   )r   r*   r+   r   r&   r(   r$   rq   r  s       r2   test_nth_nan_in_grouper_seriesr	    sx     
&&#rvvsBFF3 	

B ZZ_S!%%a%7F#w||QF#H6,r4   c            	         [        / SQS[        R                  " S5      /-  [        / SQSS9S.5      n U R	                  S5      R                  5       n[        S	[        R                  " S5      /-  [        / S
Q5      R                  [        R                  " / SQ5      5      S.5      n[        / SQSS9Ul
        [        R                  " X5        g )N)r    r    secondthirdr  r   NaT)r9   r:   rt   r9   r:   r   r;   )r   r   
categoriesr   r   )r9   rt   r9   r   )r   r  )r    r  r  r   )r   r*   
datetime64r   r   r    r   r   CategoricalDtyper   r"   r$   r%   r   s      r2   ,test_first_categorical_and_datetime_data_natr    s    	Cu-.. !:*M	

B ZZ &&(Fu-.. 188##O4	
H 7gFHN&+r4   c            	         [        / SQ/ SQ/ SQ/ SQS.5      n U R                  SS05      n U R                  SS	/S
9R                  5       n[        / SQ[	        / SQ5      R                  [
        R                  " / SQ5      5      S.5      n[        R                  " / SQSS	/S9Ul	        [        R                  " X5        g )N)r   r   r   r   r   )r   r   r   r   r   )appleorangemangor  r  )jupitermercurymarsvenusr  rX   r   r   r
   r   )by)r  r  r  )r  r  r  )r  r  r  r  )r   r   ))r   r   )r   r   )r   r   )names)r   r   r   r    r   r   r  r   from_tuplesr"   r$   r%   r   s      r2   (test_first_multi_key_groupby_categoricalr    s    	 *@A		

B 
C$	%BZZC:Z&,,.F,45<<##$KL	
H  ++&sCjHN &+r4   )r    r'   r&   c                     [        S/5      n[        XUSU// SQS9R                  SS9nU S:X  a  [        X05      " S5      nO[        X05      " 5       n[        R                  " XB5        g )Ny)r   r   r   r   r   r=   r   rf   r&   r   )r   r   r>   r$   rq   )r5   r@   r/   rd   r1   s        r2   %test_groupby_last_first_nth_with_noner     sl     se}H	}c=I gAg 	
 &q)&(6,r4   zarg, expected_rows)r   r   r   r   r|   )r   r   r   r   r   r   r   r   r   r   c                     UR                   U   nUR                  U5      nU R                  U   n[        R                  " XF5        [        R                  " XV5        g N)r&   r(   r$   r%   )slice_test_dfslice_test_groupedargr   r1   
equivalentr/   s          r2   
test_slicer(    sP      ##C(F#'',J!!-0H&+*/r4   c                     UR                   SSSS 24   nUR                  SS[        SS 5      /5      nU R                  / SQ   n[        R                  " X$5        [        R                  " X45        g )Nr   r   r|   r!  )r&   slicer(   r$   r%   )r$  r%  r1   r'  r/   s        r2   test_nth_indexedr+    sf      ##Aq"#I.F#''AuR(?@J!!"78H&+*/r4   c                     [         R                  " [        SS9   U R                  S5        S S S 5        g ! , (       d  f       g = f)NzInvalid indexr   gQ	@)r   r   	TypeErrorr&   r%  s    r2   test_invalid_argumentr/    s,     
y	8t$ 
9	8	8s	   5
Ac                     [         R                  " [        SS9   U R                  [	        S S S5      5        S S S 5        g ! , (       d  f       g = f)NzInvalid stepr   r   )r   r   r   r&   r*  r.  s    r2   test_negative_stepr1    s5     
z	8uT445 
9	8	8s   A  
Ac                     UR                  [        R                  " SS/5      5      nU R                  / SQ   n[        R
                  " X#5        g )Nr   r   r   )r&   r*   r?   r(   r$   r%   )r$  r%  r1   r/   s       r2   test_np_intsr3    s?      ##BHHaV$45F!!/2H&+r4   c                  J   [        / SQ/ SQ/SS// SQS9n Sn[        R                  " [        US9   U R	                  U R
                  S	   S	S
9nS S S 5        WR                  S5      nU R
                  S S 2SS/4   n[        R                  " X45        g ! , (       d  f       NK= f)N)r   r   r   )rV   rV   r   zr  )r   r   r
   r   r   r   r   r   r   r   )r   r$   r   r   r   r(   r&   r%   )r-   r   r   r1   r/   s        r2   !test_groupby_nth_with_column_axisr6  	  s    		
 Cj
B 8C		#	#M	=ZZ
Z+ 
>VVAYFwwq1a&y!H&+	 
>	=s   B
B"c            
         [        [        R                  " [        R                  " SS5      [        R                  " SS5      /5      [        R                  " [        R                  " SS5      [        R                  " SS5      /5      // SQ/ SQ/5      n [	        S[        [        U 5      5      0U S	9nUR                  SS/S
S9R                  S5      n/ SQn[        [        R                  " [        R                  " SS5      [        R                  " SS5      /5      [        R                  " [        R                  " SS5      [        R                  " SS5      /5      // SQ/ SQ/5      n[	        X4S/S9n[        R                  " X%5        g )Nr   r   r   r`      )r   r   r   r   r   )r   r   r   r   r   colr=   F)rg   observedr   r   r   r   )r   r   r   r   )r   r   CategoricalIndexIntervalr   ri   lenr   r&   r$   r%   )
idx_result	df_resultr1   val_expectedidx_expectedr/   s         r2   test_groupby_nth_intervalrC    s<   Q!2BKK14E FGQ!3R[[R5H IJ	
 
*+J 5%J"89LIaVe<@@CFLQ!2BKK14E FGQ!3R[[R5H IJ	
 
IL E7KH&+r4   z.start, stop, expected_values, expected_columnsr   ABCDEADra   r;  ABD)r   r   r   BCEr   CErY   callc                 @  ^	 [        [        S5      /[        S5      /S9nSn[        R                  " [
        US9   UR                  / SQSS9m	S S S 5        U	4S	 jU	4S
 jS.U   " X5      n[        U/U/S9n[        R                  " Xx5        g ! , (       d  f       NG= f)Nr   rD  r   r   r   )r   r   r   r   r   r   r   c                 8   > TR                  [        X5      5      $ r#  )r&   r*  r   stopr   s     r2   r   2test_nth_slices_with_column_axis.<locals>.<lambda>H  s    BFF5+=$>r4   c                     > TR                   X $ r#  )r&   rL  s     r2   r   rN  I  s    RVVE%7r4   )rI  r"   )r   ri   rh   r$   r   r   r   r%   )
r   rM  expected_valuesexpected_columnsr5   r-   r   r1   r/   r   s
            @r2    test_nth_slices_with_column_axisrR  2  s    " 
E!H:W	7B
7C		#	#M	=ZZaZ0 
> ?7  F /*5E4FGH&+ 
>	=s   B
Bz<ignore:invalid value encountered in remainder:RuntimeWarningc                     [        SS/S[        R                  /S[        R                  /S[        R                  //SS/S9n [        SS//SS/S9nU R                  SS/5      R	                  SS	9n[
        R                  " X!5        U R                  SS/5      R                  SS	9n[
        R                  " X!5        U R                  SS/5      R                  S
S	9n[
        R                  " X!5        g )Nr9   r5  r:   rt   XYr   r   r   r   	r   r*   r+   r   r   r$   r%   r   r&   r-   r/   r1   s      r2   test_head_tail_dropna_truerX  O  s    
 

sc266]S"&&MC=ACQT:
B 3*Sz:HZZc
#((1(-F&+ZZc
#((1(-F&+ZZc
#''!',F&+r4   c                     [        SS/S[        R                  /S[        R                  //SS/S9n [        SS/S[        R                  /S[        R                  //SS/S9nU R                  SS/SS	9R	                  S
S9n[
        R                  " X!5        U R                  SS/SS	9R                  S
S9n[
        R                  " X!5        U R                  SS/SS	9R                  SS9n[
        R                  " X!5        g )Nr9   r5  r:   rt   rT  rU  r   Fr   r   r   r   rV  rW  s      r2   test_head_tail_dropna_falserZ  c  s    	S#JbffRVV}=Sz	RB3*sBFFmc266]CcSVZXHZZc
5Z1666;F&+ZZc
5Z1666;F&+ZZc
5Z1555:F&+r4   	selectionrt   )r   r   Nc                    [        / SQ[        R                  SS// SQS.5      nUR                  S5      U    nUR	                  SUS9nUS	:X  d  US
:X  a  U SS/:w  a  SS/nOSS/nUR
                  XP4   n[        R                  " XF5        g )Nr   r   r   )r   r   r   r   r9   r   r   r   r   r:   rt   r   r   )r   r*   r+   r   r&   r!   r$   assert_equal)r[  r   r-   r   r1   locsr/   s          r2   test_nth_after_selectionr_  r  s     
&&!Q	

B 
C	#BVVAfV%F6U?yS#J/F1v1vvvdo&HOOF%r4   rd   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-Ll    m;-Lc                     [        SS/U S.5      nUR                  S5      nUR                  S5      n[        SU S   /S.5      n[        R                  " X45        g )Nr   r8   r9   r   )r   r   r&   r$   r%   )rd   r-   r.   r1   r/   s        r2   #test_groupby_nth_int_like_precisionra    sT     
!Qd+	,BjjoG[[^FqQy12H&+r4   )Bnumpyr*   r   pandasr   r   r   r   r   r   r   pandas._testing_testingr$   r3   markparametrizerD   rG   rO   r+   rp   rQ   r^   rm   rr   rz   r   r   r   r   r   r   r   r   r   r?   r   to_timedeltar   r   r   r   r   r   r  r  r	  r  r  r   r*  r(  r+  r/  r1  r3  r6  rC  rh   rR  filterwarningsrX  rZ  r_  ra   r4   r2   <module>rk     s       /,d GV#45, 6," 1b'*, +, GV#45& 6& GV#45 SD%+@ABw(se$0GH	

 SBFF84FCw'ucU/FG	
	, 6,)>:,&@*,B8*-6,8, ) e!"7LIs e!"7LIs e!"7LIs	
& &38JK3E3H
 ! Cj38JK3E 1v Cj3H3E 1v%	
%-0b<c0b<0 	)L\:C@	<L93?,,2 
$i0
!Qw'
l34
AS)	 %DE8 F8 1,h 	aS	B	QF	I	aS	B	QF	I	 T2usec3Z$HIdE]3, 4 J, 	aS	B	QF	I	aS	B	QF	I	
,
,'<	,,  #78, 9, #78- 9-,,,4 #;<- =-  	tQ	L)	tR)$
a.%D/	*,AB
Qb$	 "78	000%6,,$,. 4	t_d7m4	q1a&$t*%	q/4=1	r9d5k*	
D)T%[)	
BT#Y	TAq64:&	QT#Y	 FG#45, 6, B,,", sSEC:&>?#78& 9 @&& 
 2323	
 	/	,	,r4   