
    o[wei                     .   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
 d dlmZ d Zej                            dddg          d             Zej                            dd d	g          d
             Zej                            dddg          d             Zej                            dddg          ej                            d edddej        gd           eddgi edgd                    f edej        gde           eddgi edgd                    fg          d                         Zd Zd Zd Zd Zd Zej                            ddg e	dd          d gd!dg e	dd          d gd!dg e	dd          d gd!fg d" e	d#d$           e	dd           e	d%d&          gg d'd!dd(g e	d#d$           e	dd          gd d)gd!dd(g e	d%d&           e	dd          gd*d)gd!fg          d+             Zej                            d,d e	d-d.          dgd e	d/d.          d0gg          d1             Zej                            d2 ej        d3d4gd5           ej        d d)gd6           ej        d7d8g           ej         d d)gd9:          g          ej                            d;g d<          d=                         Z!d> Z"ej                            d?d@d	d gfd@d g fd@d d d)gfd@dAg dBfdCd	d gfdCd g fdCd d d)gfdCdAg dBfg          ej                            dDdg dgd(gdd(gg          ej                            dEd3d4g          dF                                     Z#ej                            dGd@d	d gfd@d g fd@d d d)gfd@dAg dBfdCd	d gfdCd g fdCd d d)gfdCdAg dBfg          dH             Z$dI Z%dJ Z&dK Z'ej                            dLg dM          dN             Z(ej                            dLg dM          dO             Z)dP Z*dQ Z+ej                            dg dR          dS             Z,ej                            dT e-dd*d)          g dUg e-ddV          g dWg e-dd)           e-dVd          gg dXgd d  e-dVd          gg dXgg          dY             Z.dZ Z/d[ Z0d\ Z1d] Z2d^ Z3d_ Z4ej                            d`ddg da e5db          fdd d d*g e5dc          fdddg da e5db          fdd	g de e5df          fd dg dg e5dh          fd d	d g e5d(          fd	dd)dig e5dj          fd	d)dig e5dk          fg          ej                            ddldg          dm                         Z6ej        7                    dn          do             Z8dp Z9ej                            dqd0d0gd0drgf          ej                            dLg ds          dt                         Z:dS )u    N)	DataFrameIndex
MultiIndexSeries	Timestampisnac                    |                      d          }|                                }| j        ddgg df         }t          ddgd          |_        |                                }t          j        ||           |                    d          }| j        ddg         }t          j        ||           |	                                }| j        dd	gg df         }t          ddgd          |_        t          j        ||           |                    d
          }| j
        dd	g         }t          j        ||           |                    d          }| j
        ddg         }t          j        ||           |d                                          |d         	                                 |d                             d           t          j        | j        | d         dk    df<   t          |d                                         d                   sJ t          |d         	                                d                   sJ t          |d                             d          j
        d                   sJ t          dt          j        gddgddggddg          } |                      d          }|                                }| j
        ddg                             d          }t          j        ||           | j
        ddg         }|                    dd          }t          j        ||           d S )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npnanr   r   	set_index)dfgroupedr    expectedr&   r'   gresults           =lib/python3.11/site-packages/pandas/tests/groupby/test_nth.pytest_first_last_nthr2      s   jjooGMMOOEvq!fooo-.HE5>444HN""$$H%***
++a..Cvq!f~H#x(((<<>>Dvq!fooo-.HE5>444HN$)))
++b//Cw1vH#x(((
++a..Cw1vH#x((( CLCLCLQ$&FBF2c7eS !""$$U+,,,,,!!##E*+++++  ##(+,,,,, 
QK!Q!Q03*	E	E	EB


3AWWYYFw1v((--H&(+++w1vHUU1UU##F&(+++++    methodr    r'   c                 b   t          g dddd|gd                              d          } t          ||                       }| dk    rddg}nddg}t          j        ||d         j        	          }t          ddgd
          }t          d|i|          }t          j        ||           d S )Nr   r   r   r   r   r   r   abr8   r    r9   dtyper   r"   )	r   r   getattrr)   arrayr;   r   r$   r%   )r4   nulls_fixturegroupsr0   valuesidxr.   s          r1   test_first_last_with_na_objectrC   @   s     \\\Aq-0HIIJJRRSVWWF$WVV$$&&FQQXfF3K$5666F
AS
!
!
!C#vc222H&(+++++r3   r"   r   c                     t          g dddd|gd          }|                    d          }|                    |           }| dk    r|j        ddg         n|j        ddg         }t	          j        ||           d S )Nr6   r   r   r   r7   r8   r   r   r   r&   r(   r$   r%   )r"   r?   r,   r@   r0   r.   s         r1   test_nth_with_na_objectrF   R   s     
Q1m,DEE	F	FBZZ__FZZF"'1**rw1v"'1a&/H&(+++++r3   c                     t          j        dgd gd          }|                    dd          } t          ||                       }t	          j        ||           d S )Nr8   idvaluerI   Fas_index)r   	from_dictr   r=   r$   r%   )r4   r,   r@   r0   s       r1   test_first_last_with_NonerN   \   se     
	SETF;;	<	<BZZuZ--F$WVV$$&&F&"%%%%%r3   zdf, expectedr8   r   rH   rJ   rI   r   r<   r:   c                      t          |                    d          |                       }t          j        ||           d S )NrI   )r=   r   r$   r%   )r4   r,   r.   r0   s       r1   "test_first_last_with_None_expandedrP   g   s@      /WRZZ%%v..00F&(+++++r3   c                    |                                  }d|d<   d|d<   |                    d          }|                                }|j        ddgg df         }t	          dd	gd
          |_        |                                }t          j        ||           |	                                }|j        ddgg df         }t	          dd	gd
          |_        |                                }t          j        ||           |
                    d          }|j        ddg         }t          j        ||           t          t          d                    }|                    d           t          t          d          |d          }|j        dk    sJ |                    d                                          }	|	j        dk    sJ d S )NTEr   Fr
   r   )r   r   r   rR   rS   r   r   r   r   r   r   r   
   	      IntCol)datar"   r   int64level)copyr   r    r!   r   r"   r#   r$   r%   r'   r&   r(   listrangeappendr   r;   )
df_mixed_floatsr,   r-   r    r.   r'   r&   rB   sfs
             r1   test_first_last_nth_dtypesrc   {   s   					BBsGBsG jjooGMMOOEvq!f77778HE5>444HN""$$H%***<<>>Dvq!f77778HE5>444HN""$$H$)))
++a..Cw1vH#x((( uRyy//CJJqMMME"IISx888A7g				  ""A7gr3   c                  &   t          dgt          d gt                    d          } |                     d          }|                     d          j        }t          j        |j                                        |           t          j        |j        	                                |           | j        }t          j        |j        
                    d          |           t          j        |j        
                    d          |           d S )Nr
   r:   )rX   nansrX   r   r   )r   r   objectr   r+   re   r$   assert_series_equalr    r'   r&   )r,   r-   r.   s      r1   test_first_last_nth_nan_dtyperh      s    	SE64&+G+G+GHH	I	IBjj  G||F##(H7<--//:::7<,,..999wH7<++B//:::7<++A..99999r3   c                     t          t          d          ddgt          d          ddgdddgd	d
dgi          } |                     d                                          }t          g dgt	          t          d          t          d          d	g          t	          dgd                    }t          j        ||           d S )Nz2012-01-01 00:00:00r8   r9   z2012-01-02 00:00:00cdr   eaaaarb   r/   )r8   rj   rb   z
2012-01-01z
2012-01-02r   r   r"   )r   r   r   r    r   r$   r%   )testr0   r.   s      r1   test_first_strings_timestampsrp      s    +,,sCj+,,sCjS#JS#J		
 D \\&!!''))F	y..	,0G0GPQQSE'''  H
 &(+++++r3   c                     t          dt          j        gddgddggddg          } |                     d          }t	          j        |                    d          | j        dd	g                    t	          j        |                    d          | j        dg                    t	          j        |                    d	          | j        g                     t	          j        |                    d
          | j        dd	g                    t	          j        |                    d          | j        dg                    t	          j        |                    d          | j        g                     t	          j	        |j
                            d          | j
        j        dd	g                    t	          j	        |j
                            d          | j
        j        dg                    t	          j        |dg                             d          | dg         j        dd	g                    t	          j        |                    dd          | j        dd	g                    t	          j        |                    d
d          | j        dd	g                    t	          j        |                    dd          | j        d d                    t	          j        |                    d	d          | j        d d                    t          ddddddddddddddddddddddddd                               d!d"g          } |                     dd#$                              d	          }| j        d
g         }t	          j        ||           |                     dd#$                              d%          }| j        g          }t	          j        ||           t          t          j                            d	                              dd&d'          d()          } | d         }| d         }|                    |                                          }|                    |                              d*           }t	          j	        ||d#+           |j        dk    sJ |j        dk    sJ ||dk             j        d         }|j        d         |k    sJ |j        d         |k    sJ t%          j        t(          d,-          5  |                    |d#.                              dd/           d d d            n# 1 swxY w Y   t          dt          j        gddgddggddg          } |                     d          }|j
                            dd0          }| j
        j        dd	g         }t	          j	        ||           t          dt          j        gdd%gddgddgddggddg          } |                     d          }t	          j        |                    d          | j        dd%g                    t	          j        |                    dg          | j        dd%g                    t	          j        |                    ddg          | j        g d1                    t	          j        |                    dd
g          | j        g d2                    t	          j        |                    g d3          | j        g d                    t	          j        |                    g d4          | j        g d                    t	          j        |                    d	g          | j        d	g                    t	          j        |                    d%dg          | j        g                     t+          j        d5d6d7          }t          d|d8d9g:          } | j        j        | j        j        g}|                     |d#;                              g d<          }t+          j        g d=          }	t          dd8d9g|	>          }t	          j        ||           d S )?Nr   r   r   r   r
   r   r   r   r   r   r   r   r   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foodtwoonerz   r{   F)r[   rL   r   rT   )d   r   rY   r:   c                     | j         d         S )Nr   )r(   )xs    r1   <lambda>ztest_nth.<locals>.<lambda>   s    QVAY r3   )check_nameszFor a DataFramematch)sortTall)r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   z4/1/2014z	6/30/2014)startendfreqr8   r9   r"   r   rK   )r   r   rr   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/30rn   )r   r)   r*   r   r$   r%   r&   r(   r!   rg   r   r+   randomdefault_rngintegersr    applyr   pytestraises
ValueErrorpd
date_ranger"   yearmonthto_datetime)
r,   r/   r0   r.   ra   	expected2vbusiness_dateskeyexpected_datess
             r1   test_nthr      s   	QK!Q!Q03*	E	E	EB


3A!%%((BGQFO444!%%((BGQCL111!%%((BF2J///!%%))RWaV_555!%%))RWaS\222!%%))RVBZ00013771::rty!Q'899913771::rty!~666!SE(,,q//2se9>1a&+ABBB!%%%%00"'1a&/BBB!%%5%1127Aq6?CCC!%%%%00"'"1"+>>>!%%%%00"'"1"+>>> 
 W5UKK&V&II%(&&&  '&'& 	
 	

 
& i&!""' * ZZa%Z0044Q77Fwt}H&(+++ZZa%Z0044Q77FvbzH&(+++ 
29((++44QHEEW	U	U	UB
1A
1Ayy||!!##H		!""#6#677I9hEBBBB=A>Q 	
!q&	qA=q    >!!!!!	z):	;	;	; 5 5			!%	  $$Qt$4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
QK!Q!Q03*	E	E	EB


3ASWWQuW%%Fty!Q H68,,, 
QK!Q!Q!Q!Q@3PS*	U	U	UB


3A!%%((BGQFO444!%%**bgq!fo666!%%A--)>???!%%B.."',,,*?@@@!%%			**BGOOO,DEEE!%%


++RW___-EFFF!%%**bgqcl333!%%A--444]3OOON	1NS#J	?	?	?B8="(.
)CZZeZ,,00@@F^	
 	
 	
 N  S#JnEEEH&(+++++s   -UUUc                     |                      ddg          }|                    d          }| j        g d         }t          j        ||           d S )Nr
   r   r   r   r   r   r   )r   r&   r(   r$   r%   three_groupr-   r0   r.   s       r1   test_nth_multi_grouperr   /  sT     !!3*--G[[^^F-H&(+++++r3   z#data, expected_first, expected_lastr
   z2012-02-01 14:00:00z
US/Centraltzr   rI   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                    t          |           }|                    dd                                          }t          |          }g d}t          j        ||         ||                    |                    dd          d                                         }t          j        ||ddg                    |                    dd                                          }t          |          }g d}t          j        ||         ||                    |                    dd          d                                         }t          j        ||ddg                    d S )NrI   FrK   r   r   )r   r   r    r$   r%   r'   )rX   expected_firstexpected_lastr,   r0   r.   colss          r1   test_first_last_tzr   8  sB   l 
4BZZuZ--3355F((H   D&,777ZZuZ--f5;;==F&(D&>":;;;ZZuZ--2244F''H   D&,777ZZuZ--f5::<<F&(D&>":;;;;;r3   zmethod, ts, alphaz
2013-01-01
US/Easternz
2013-01-02r9   c           	         t          t          d                                        d          }t          g d|t	          j        ddd          d          } t          |                    d	          |                       }t          t	          j        |d
g|j	                  |t          dd          gdt          ddgd	                    }t          j        ||           d S )Nabccategoryr   r   r   20130101r   r   )periodsr   )groupcategory_string
datetimetzr   rj   r:   z
2013-01-03r   )r   r   r   r   r   r<   )r   r]   astyper   r   r   r=   r   Categoricalr;   r   r   r$   r%   )r4   tsalphar   r,   r0   r.   s          r1   test_first_last_tz_multi_columnr     s    T%[[))00<<O	YY.-
A,OOO	
 	

 
B 2WRZZ((&1133F!~O$9      y,GGGH		
 	
 QF)))  H &(+++++r3   rA   TFbooleanInt64z
2020-01-01z
2020-02-01r   )unitfunction)r    r'   minmaxc                    t          ddg| d          }|                    d          }t          ddgd          }t          | d|          }t          d| i|          } t	          |d         |                      }t          j        ||           |                    d|i          }t          j        ||           d S )	Nr   r   r7   r8   r   r9   )r   r"   r<   )	r   r   r   r   r=   r$   rg   aggr%   )	rA   r   r,   r-   rB   expected_seriesexpected_frameresult_seriesresult_frames	            r1   +test_first_last_extension_array_keeps_dtyper     s     
!Qf--	.	.BjjooG
AS
!
!
!CV#S999OV}C888N3GGCL(3355M=/:::;;X//L,77777r3   c                      t          g dg dg dd          } |                     ddg          }|                    d          }| j        g d         }t	          j        ||           d S )	N)r   r   r   r   r   r   r   r   r   r   r   )r}   r}   r}   r|   r}   r}   r}   r|   r|   r|   r}   )dullr   shinyr   r   r   r   r   r   r   r   r
   r   r   r
   r   r   r   rE   r   s       r1    test_nth_multi_index_as_expectedr     s           7(	
 (	
* *KV !!3*--G[[^^F-H&(+++++r3   zop, n, expected_rowsheadr   r   tailr   rL   c                    t          ddgddgddggddg          }|                    d|	          }|j        |         }|||         }||         } t          ||           |          }t	          j        ||           d S )
Nr   r   r   r   r   r
   r   r   rK   )r   r   r(   r=   r$   r%   )	opnexpected_rowsr   rL   r,   r/   r.   r0   s	            r1   test_groupby_head_tailr     s      
QFQFQF+c3Z	@	@	@B


3
**Aw}%HgJG$WQ^^AF&(+++++r3   zop, n, expected_colsc                 ^   t          g dg dg dg dgg d          }d}t          j        t          |          5  |                    g d	d
          }d d d            n# 1 swxY w Y   |j        d d |f         } t          ||           |          }t          j        ||           d S )Nr   )r   r   r   )r   r   r   )r      rU   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,   msgr/   r.   r0   s           r1   test_groupby_head_tail_axis_1r     s
    
	IIIyyy)))4ooo
 
 
B 8C		#M	=	=	= * *JJyyyqJ))* * * * * * * * * * * * * * *wqqq-'(HWQ^^AF&(+++++s   A##A'*A'c                     t          ddgddgddggddg          } | j        d	dg         }|                     d          }|                    d
          }|                    d	          }t          j        ||            t          j        ||           |                     d          }|                    d
          }|                    d	          }t          j        ||            t          j        ||           |                     d          }|                    d	          }|                    d
          }t          j        ||           t          j        ||            |                     d          }|                    d	          }|                    d
          }t          j        ||           t          j        ||            d S )Nr   r   r   r   r   r
   r   r   r   r   )r   r(   r   r   r&   r$   r%   r   )r,   r.   r/   result1result2s        r1   test_group_selection_cacher   !  s   	QFQFQF+c3Z	@	@	@Bw1vH


3AffqfkkGeeAhhG'2&&&'8,,,


3AffqfkkGeeAhhG'2&&&'8,,,


3AeeAhhGffqfkkG'8,,,'2&&&


3AeeAhhGffqfkkG'8,,,'2&&&&&r3   c                  b   t          dgg d          } |                     d                              d          }| j        d d         }t	          j        ||           |                     ddg                              d          }| j        d d         }t	          j        ||           d S )Nr   r8   r9   rj   r   r8   rT   r9   rE   r,   r0   r.   s      r1   test_nth_emptyr   ?  s    	!ooo	6	6	6BZZ__  $$Fwrr{H&(+++ZZc
##''++Fwrr{H&(+++++r3   c                     t          g dg dddt          j        gg dg dgg d          } |                     d	                              d
          }| j        d
dg         }t          j        ||           |                     d	                              dd          }| j        ddg         }t          j        ||           d S )N)r   r9   r~   )r   r8   2   r   r8   )r   rj      )r   rk      )r
   r   r   r   r
   r   r   r   r   r   r   r   r)   r*   r   r&   r(   r$   r%   r   s      r1   test_nth_column_orderr   K  s     
	q#rv&6}}}U
 
 
B ZZ__  ##Fw1vH&(+++ZZ__  E 22Fw1vH&(+++++r3   r   )Nr   r   c                    t          t          j        dt          j        dt          j        gg dg dd          }|                    d                              d|           }|j        dd	g         }t          j        ||           d S )
Nr8   r9   r   r   r   r   r   )r   r   r   r   rU   r   r   r   r   r   r   r   r,   r0   r.   s       r1   test_nth_nan_in_grouperr   [  s     
&#rvsBF3  	
 	

 
B ZZ__  6 22Fw1vH&(+++++r3   c                 (   t          t          j        dt          j        dt          j        gg dd          }|                    d          d                             d|           }|d         j        ddg         }t          j        ||           d S )	Nr8   r9   r   r7   r   r   r   r   )r   r)   r*   r   r&   r(   r$   rg   r   s       r1   test_nth_nan_in_grouper_seriesr   k  s     
&#rvsBF3 	
 	

 
B ZZ__S!%%a%77F#w|QF#H68,,,,,r3   c            	         t          g ddt          j        d          gz  t          g dd          d          } |                     d                                          }t          d	t          j        d          gz  t          g d
                              t          j        g d                    d          }t          g dd          |_
        t          j        ||           d S )N)r    r    secondthirdr   r   NaT)r8   r9   rj   r8   r9   r   r:   )r   r   
categoriesr   r   )r8   rj   r8   r   )r   r   )r    r   r   r   )r   r)   
datetime64r   r   r    r   r   CategoricalDtyper   r"   r$   r%   r   s      r1   ,test_first_categorical_and_datetime_data_natr   z  s   	CCCu--.. !:!:!:*MMM	
 	

 
B ZZ  &&((Fu--.. 1188#OOO44 	
 	
 H 777gFFFHN&(+++++r3   c            	         t          g dg dg dg dd          } |                     ddi          } |                     dd	g
                                          }t          g dt	          g d                              t          j        g d                    d          }t          j        g ddd	g          |_	        t          j        ||           d S )N)r   r   r   r   r   )r~   r~   r   r~   r~   )appleorangemangor   r   )jupitermercurymarsvenusr  )r
   r   r   r   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      r1   (test_first_multi_key_groupby_categoricalr    s   	 ***@@@AAA		
 	

 
B 
C$	%	%BZZC:Z&&,,..F,,,44455<<#$K$K$KLL 	
 	
 H  +&&&sCj  HN &(+++++r3   )r    r'   r&   c                    t          dg          }t          |||d|gg d                              d          }| dk    r t          ||           d          }n t          ||                       }t          j        ||           d S )Ny)r   r   r   r   r   r<   r   rZ   r&   r   )r   r   r=   r$   rg   )r4   r?   r.   rX   r0   s        r1   %test_groupby_last_first_nth_with_noner    s     se}}H	}c=Ioo   gAg 	
 &v&&q))&v&&((68,,,,,r3   zarg, expected_rows)r   r   r   r   rr   )r   r   r   r   r   r   r   r   r   r   c                     |j         |         }|                     |          }| j        |         }t          j        ||           t          j        ||           d S N)r&   r(   r$   r%   )slice_test_dfslice_test_groupedargr   r0   
equivalentr.   s          r1   
test_slicer    s]      #C(F#'',,J!-0H&(+++*h/////r3   c                     |j         dddd f         }|                     ddt          dd           g          }| j        g d         }t          j        ||           t          j        ||           d S )Nr   r   rr   r  )r&   slicer(   r$   r%   )r  r  r0   r  r.   s        r1   test_nth_indexedr    s}      #Aq"##I.F#''AuR(?@@J!"7"7"78H&(+++*h/////r3   c                     t          j        t          d          5  |                     d           d d d            d S # 1 swxY w Y   d S )NzInvalid indexr   gQ	@)r   r   	TypeErrorr&   r  s    r1   test_invalid_argumentr    s     
y	8	8	8 % %t$$$% % % % % % % % % % % % % % % % % %s   ?AAc                     t          j        t          d          5  |                     t	          d d d                     d d d            d S # 1 swxY w Y   d S )NzInvalid stepr   r   )r   r   r   r&   r  r  s    r1   test_negative_stepr    s     
z	8	8	8 6 6uT4445556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   %AAAc                     |                     t          j        ddg                    }| j        g d         }t	          j        ||           d S )Nr   r   rv   )r&   r)   r>   r(   r$   r%   )r  r  r0   r.   s       r1   test_np_intsr    sO      ##BHaV$4$455F!///2H&(+++++r3   c                  f   t          g dg dgddgg d          } d}t          j        t          |          5  |                     | j        d	         d	
          }d d d            n# 1 swxY w Y   |                    d          }| j        d d ddgf         }t          j        ||           d S )N)r   r   r   )r   r   r   zr
  )r   r   r
   r   r   r   r   r   r   r   )r   r$   r   r   r   r(   r&   r%   )r,   r   gbr0   r.   s        r1   !test_groupby_nth_with_column_axisr"    s   	IIII	
 Cj
 
 
B 8C		#M	=	=	= , ,ZZ
Z++, , , , , , , , , , , , , , ,VVAYYFwqqq1a&y!H&(+++++s   #A))A-0A-c            
      @   t          t          j        t          j        dd          t          j        dd          g          t          j        t          j        dd          t          j        dd          g          gg dg dg          } t	          dt          t          |                     i| 	          }|                    ddgd
                              d          }g d}t          t          j        t          j        dd          t          j        dd          g          t          j        t          j        dd          t          j        dd          g          gg dg dg          }t	          ||dg          }t          j
        ||           d S )Nr   r   r   rT      )r   r   r   r   r   )r   r   r   r   r   colr<   F)r[   observedr   r   r   r   )r   r   r   r   )r   r   CategoricalIndexIntervalr   r^   lenr   r&   r$   r%   )
idx_result	df_resultr0   val_expectedidx_expectedr.   s         r1   test_groupby_nth_intervalr/    s   Q!2!2BK14E4E FGGQ!3!3R[R5H5H IJJ	
 
***+ J 5%J"8"89LLLIaVe<<@@CCF99LQ!2!2BK14E4E FGGQ!3!3R[R5H5H IJJ	
 
III L \E7KKKH&(+++++r3   z.start, stop, expected_values, expected_columnsrv   ABCDEADrU   r'  ABD)r   r   r   BCEr   CErR   callc                   	 t          t          d          gt          d          g          }d}t          j        t
          |          5  |                    g dd          	d d d            n# 1 swxY w Y    	fd		fd
d|         | |          }t          |g|g          }t          j        ||           d S )Nr   r0  r   r   r   )r   r   r   r   r   r   r   c                 J                         t          | |                    S r  )r&   r  r   stopr!  s     r1   r   z2test_nth_slices_with_column_axis.<locals>.<lambda>/  s    BFF5+=+=$>$> r3   c                 "    j         | |         S r  )r&   r8  s     r1   r   z2test_nth_slices_with_column_axis.<locals>.<lambda>0  s    RVE$J%7 r3   )r5  r"   )r   r^   r]   r$   r   r   r   r%   )
r   r9  expected_valuesexpected_columnsr4   r,   r   r0   r.   r!  s
            @r1    test_nth_slices_with_column_axisr=    s(   " 
E!HH:W	7	7	7B
7C		#M	=	=	= 1 1ZZaZ001 1 1 1 1 1 1 1 1 1 1 1 1 1 1>>>>7777   T F /*5E4FGGGH&(+++++s   A22A69A6z<ignore:invalid value encountered in remainder:RuntimeWarningc                  ,   t          ddgdt          j        gdt          j        gdt          j        ggddg          } t          ddggddg          }|                     ddg                              d	          }t          j        ||           |                     ddg                              d	          }t          j        ||           |                     ddg                              d
	          }t          j        ||           d S )Nr8   r   r9   rj   XYr   r   r   r   	r   r)   r*   r   r   r$   r%   r   r&   r,   r.   r0   s      r1   test_head_tail_dropna_truerC  6  s   
 

sc26]S"&MC=ACQT:
 
 
B 3*Sz:::HZZc
##((1(--F&(+++ZZc
##((1(--F&(+++ZZc
##''!',,F&(+++++r3   c                  R   t          ddgdt          j        gdt          j        ggddg          } t          ddgdt          j        gdt          j        ggddg          }|                     ddgd	                              d
          }t          j        ||           |                     ddgd	                              d
          }t          j        ||           |                     ddgd	                              d          }t          j        ||           d S )Nr8   r   r9   rj   r?  r@  r   Fr   r   r   r   rA  rB  s      r1   test_head_tail_dropna_falserE  J  s   	S#JbfRV}=Sz	R	R	RB3*sBFmc26]CcSVZXXXHZZc
5Z11666;;F&(+++ZZc
5Z11666;;F&(+++ZZc
5Z11555::F&(+++++r3   	selectionrj   )r   r   Nc                 4   t          g dt          j        ddgg dd          }|                    d          |          }|                    d|          }|d	k    s|d
k    r| ddgk    rddg}nddg}|j        || f         }t          j        ||           d S )Nr   r   r   )r   r   r   r   r8   r   r   r   r   r9   rj   r   r   )r   r)   r*   r   r&   r!   r$   assert_equal)rF  r   r,   r!  r0   locsr.   s          r1   test_nth_after_selectionrJ  Y  s     
&!Q	
 	

 
B 
C	#BVVAfV%%F6U??yS#J/F/F1v1vvdIo&HOFH%%%%%r3   );numpyr)   r   pandasr   r   r   r   r   r   r   pandas._testing_testingr$   r2   markparametrizerC   rF   rN   r*   rf   rP   rc   rh   rp   r   r   r   r   r>   r   to_timedeltar   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r"  r/  r]   r=  filterwarningsrC  rE  rJ   r3   r1   <module>rT     s
                                -, -, -,` GV#455, , 65," 1b'**, , +*, GV#455& & 65& GV#455 ISD%+@AABBIw(se$0G0G0GHHH	

 ISBF844FCCCIw'uucU/F/F/FGGG	
	 , ,  65,  @: : :, , ,&p, p, p,f, , , ) e!	"7LIIIs  e!	"7LIIIs  e!	"7LIIIs 	
& &ooI38JKKKI3EEEI3HHH
 !yy  CjI38JKKKI3EEE 1v  CjI3HHHI3EEE 1v %	
%-0 0b< <c0 0b<0 	))L\:::C@	<L9993? , , ,. $i000!Qw'''l344AS)))	  %D%D%DEE8 8 FE 8 1, 1, 1,h 	aS	B	QF	III	aS	B	QF	III	  T2usec3Z$HIIdE]33, , 43 JI , 	aS	B	QF	III	aS	B	QF	III	 
, 
, 
,' ' '<	, 	, 	,, , ,  #7#7#788, , 98, #7#7#788- - 98-, , ,,, , ,4 #;#;#;<<- - =<-  	tQ		LLL)	tR)))$
%a..%%D//	*,A,A,AB
Qb$	 "7"7"78	 0 0 00 0 0% % %6 6 6, , ,, , ,$, , ,. 4	t___dd7mm4	q1a&$$t**%	q///44==1	r999dd5kk*	
D)))TT%[[)	
BTT#YY	TAq644::&	QTT#YY	  FG#455, , 65 , B , , ,", , , sSEC:&>??#7#7#788& & 98 @?& & &r3   