
    zhhd                     >   d dl Z d dlZd dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlm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 dlmZ d dlmZ ej                            d	d
dg          ej                            dg dg dg dg dg dg dg dg dg dg dg dg dej         ej         ej         gg          d                         Z!d Z"ej                            dd
dg          d             Z#ej                            dd
dg          ej                            dg dg dej$        ej$        ej$        gdej$        dgdej$        dgdej$        dgg          d                          Z%ej                            d!d"d# ej&        dge'$           ej&        ej$        gd%$          fd&d" ej&        ej$        gd%$           ej&        dge'$          fd&d& ej&        ej$        gd%$           ej&        ej$        gd%$          fd#d% ej&        ej$        gd%$           ej&        ej$        gd%$          fg          d'             Z(ej                            dd
dg          ej                            d(g d)          d*                         Z)ej                            d+d
ej$        ej         gdfd
ej$        d,ej         gdfdej$        ej*        gdfdej$        dej*        gdfg          d-             Z+ej                            dd
dg          d.             Z,ej                            dd
dg          d/             Z-ej                            d0d1d2g          d3             Z.ej                            d0d1d2g          d4             Z/ej                            d5d1d d6gd,d7gd,d6gd8fd2d,d7gd d6gd d7gd8fg          ej                            d9ddg          d:                         Z0ej                            d ed;           ed<          fd=g          ej                            d>g d?          d@                         Z1ej                            d0dAdBg          dC             Z2dD Z3dE Z4dF Z5dG Z6dH Z7dI Z8dJ Z9dK Z:dL Z;dM Z<ej                            dNdOdPg          dQ             Z=ej                            dNdOdPg          dR             Z>dS Z?ej                            dNdOdPg          dNe@fdT            ZAej                            d(g dU          dV             ZBdW ZCej                            dNg dX          dY             ZDej                            dNdOdPg          dZ             ZEej                            d[d d,g          ej                            d\ddg          d]                         ZFej                            d[d d,g          d^             ZGd_ ZHej        jI        ej                            d`ddg          ej                            daddg          ej                            dbddg          ej                            dcddg          ej                            dddegdedfgg          dg                                                                         ZJdh ZKdi ZLdj ZMdk ZNej                            dlg dm edn          ej*         edn          gd ed,g ejO        dogdpq          dr          fg dm ejP        dsd,d,          ej*         ejP        dsd,d,          gd ed,g ejO        dogdpq          dr          fg dt ejP        dsd,d,          ej*         ejP        dsd,d,          ej*         ejP        dsd,d,          gd ed6d6g ejO        dodugdpq          dr          fg dv ejP        dsd,d,          ej*         ejP        dsd,d,          ej*         ejP        dsd,d,          gd ed6d,g ejO        dodugdpq          dr          fg          dw             ZQdx ZRdy ZSdz ZTd{ ZUej                            d[d d|g          d}             ZVd~ ZWd ZXej                            d(g d          ej                            ddAdd,d,dd6d7dgifdBdd,d6dd6ddgifdOdd,d,dd6d7dgifdPdd,d6dd6ddgifdd,d6dd6d6dgddfg          d                         ZYd ZZej                            ddej[        fdej\        fdej]        fdej^        fdej_        fdej`        fdOeja        fdPejb        fdAd fdBd fdejc        f ejd        deZ eje        d                    g          d             Zfej                            dg dd,ej$        d6d,ej$        d6d,ej$        d6g	dg dg ddg          ej                            dg d          d                         Zgej                            dg d          ej                            dd d,g          ej                            dddg          ej                            d`ddg          d                                                 Zhd ZidS )    N)ascii_lowercase)iNaT)pandas_dtype)na_value_for_dtype)	DataFrame
MultiIndexSeries	Timestamp
date_rangeisna)get_groupby_method_args)_test_decoratorsagg_funcanyallvals)foobarbaz)r    r   )r   r   r            )r   r   r   r   r   r   )      ?       @      @)r           r   )r   r   r   )TTT)TFF)FFFc                    t          dgdz  dgdz  z   |dz  d          } t          t          |          |          }| r$t          t	          |                    r|dk    rd}t          |gdz  dgt          j        ddgd	
                    } t          |                    d	          |          |           }t          j	        ||           d S )Nar   br   )keyvalr   Fr$   r#   namecolumnsindexskipna)
r   getattrbuiltinsr   r   pdIndexgroupbytmassert_frame_equal)r+   r   r   dfexpexpectedresults          [/var/www/histauto/venv/lib/python3.11/site-packages/pandas/tests/groupby/test_reductions.pytest_groupby_bool_aggsr8      s    ( 
C519uqy0BB	C	CB &'(H
%
%d
+
+C  #d4jj// h%&7&7		E7"(C:E*J*J*J  H 2WRZZ&&11@@@F&(+++++    c                  2   t          g ddt          j        dgdt          j        dggg d          } t          ddgd	dggd
dgddg          }d|j        _        |                     d                                          }t          j        ||           d S )N)r   r   r   r   r   r   r   ABCr(   TFr=   r>   r'   r<   )	r   npnanr)   r&   r0   r   r1   r2   r3   r5   r6   s      r7   test_anyrC   ?   s    		BFE*Q,>?
 
 
B 
t}%Sz!Q  H HNZZ__  ""F&(+++++r9   bool_agg_funcc                    t          ddggddg          }|                    dg          } t          ||                       }|                    t	          j        dg                    }t          j        ||           d S )NTr!   r?   r   )r   r0   r,   set_axisr@   arrayr1   r2   )rD   r3   grp_byr6   r5   s        r7    test_bool_aggs_dup_column_labelsrI   L   s|     
T4L>C:	6	6	6BZZ__F+WV]++--F{{28QC==))H&(+++++r9   dataFTc                 (   t          |d          } t          ||           |          }t          |t          j        dg          d          }|                    g d                              | |          }t          j        ||           d S )Nbooleandtyper*   r   r)   rN   r   )r	   r,   r@   rG   r0   aggr1   assert_series_equal)rD   r+   rJ   serexpected_datar5   r6   s          r7   test_masked_kleene_logicrT   W   s     Y
'
'
'C 0GC//v>>>Mm28QC==	JJJH[[##''f'EEF68,,,,,r9   zdtype1,dtype2,exp_col1,exp_col2floatFloat64rM   rL   Int64c                 f   dt           j        g}t          t          j        ||           t          j        ||          d          }|                    ddg                              dd          }t          ||dt          j        dg                    }t          j        ||           d S )	Nr   rM   )col1col2r   r   Fr*   r)   )	r@   rA   r   r.   rG   r0   rP   r1   r2   )dtype1dtype2exp_col1exp_col2rJ   r3   r6   r5   s           r7   test_masked_mixed_typesr`   p   s    > =D	$f---rxF7S7S7STT
 
B ZZA##E%#88F(H==RXqc]]SSSH&(+++++r9   rN   )rW   rV   rL   c                 *    |t           j        dg|          }d}|s| dk    rt           j        } ||gt          j        dg          d          }|                    ddg                              | |          }t          j        ||           d S )Nr   rM   Tr   rL   rO   r*   )r.   NAr@   rG   r0   rP   r1   assert_equal)rD   rN   r+   frame_or_seriesobjexpected_resr5   r6   s           r7   test_masked_bool_aggs_skipnarg      s     /25!*E
2
2
2CL mu,,u~RXqc]])TTTH[[!Q  $$]6$BBFOFH%%%%%r9   zbool_agg_func,data,expected_resr   c                 
    ||t                     }|                    dgt          |          z                                |           } ||gt	          j        dg          d          }t          j        ||           d S )NrM   r   boolrO   )objectr0   lenrP   r@   rG   r1   rc   )rD   rJ   rf   rd   re   r6   r5   s          r7   test_object_type_missing_valsrl      s}     /$f
-
-
-C[[!s4yy))--m<<F~RXqc]]&QQQHOFH%%%%%r9   c                    t          t          j        gt                    }t	          j        t          d          5  |                    dg                              | d           d d d            d S # 1 swxY w Y   d S )NrM   z boolean value of NA is ambiguousmatchr   Fr*   )	r	   r.   rb   rj   pytestraises	TypeErrorr0   rP   )rD   rR   s     r7   'test_object_NA_raises_with_skipna_falsers      s     "%
'
'
'C	y(J	K	K	K : :QC]5999: : : : : : : : : : : : : : : : : :s   ,A66A:=A:c                     | t           u rddginddi} | di |dt          i} t          |                    |j                  |                      } | di |dt
          i}t          j        ||           d S )Nr(   r!   r&   rN    )r   rj   r,   r0   r)   ri   r1   rc   )rd   rD   kwargsre   r6   r5   s         r7   
test_emptyrw      s     $3i#?#?i#fc]F
/
1
1F
1
1&
1
1
1C;WS[[++];;==F4444t444HOFH%%%%%r9   howidxminidxmaxc                    |t           u s	|t          u rd S d|v rt          j        nt          j        } ||          j        } ||          j        }t          g d||||gd|          }|                    d          } t          ||                       }t          dddgit          j        dd	gd|
                    }t          j        ||           d S )Nint)r   r   r   r   r!   r"   rM   r!   r"   r   r   r   r&   rN   r[   )r|   rU   r@   iinfofinfominmaxr   r0   r,   r.   r/   r1   r2   )	rx   any_real_numpy_dtypeinfo	min_value	max_valuer3   gbr6   r5   s	            r7   test_idxmin_idxmax_extremesr      s    s""&:e&C&C 444288"(D)**.I)**.I	ll)Y	9!MNN"
 
 
B 
CBWRF	q!fRXq!f3>RSSS  H &(+++++r9   c                 L   t          j        |          j        }t          j        |          j        }t	          t          t          j        t          dd          d          d          t          t           j        |t           j        ||t           j        |t           j        t           j        t           j        g
|          d          }|	                    d          }| rd nt          }d	| d
}t          j        ||          5   t          ||          |           }	d d d            n# 1 swxY w Y   | rddddt           j        g}
nt           j        }
t	          d|
it          j        t          dd          dd                    }t          j        |	|           d S )Nr      r   )repeatsintprM   r}   r!   z!The behavior of DataFrameGroupBy.z with all-NA valuesrn   r*   r      r"   r~   r[   )r@   r   r   r   r   r	   repeatrangerA   r0   FutureWarningr1   assert_produces_warningr,   r.   r/   r2   )r+   rx   float_numpy_dtyper   r   r3   r   warnmsgr6   valuesr5   s               r7   "test_idxmin_idxmax_extremes_skipnar      s    *++/I*++/I		%1++q999HHHFFFFFF (  	
 	

 
B( 
CB,44}D
Fc
F
F
FC		#D	4	4	4 1 1!S!!0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Q1bf%	fRXeAqkk6JJJ  H &(+++++s   D..D25D2zfunc, valuesr   r   )c_intc_floatc_datenumeric_onlyc                 .   t          g dg dg dg dd          }t          j        |d                   |d<   |d         j                            d          |d<   |d         |d         j        d	         z
  |d
<   |d         j                            d          |d<   |d                             d          |d<   |d                             d          |d<    t          |	                    d          |           |          }t          |t          j
        ddgd                    }|r|                    dg          }n!|d         |d<   |d         |d
<   |d         |d<   |d         |d<   |d         |d<   t          j        ||           d S )Nr<   r<   r=   r=   r   r   r   r   )gGz@g=
ףp=@gRQ @g?)2019201820162017)r&   r   r   r   r   z
US/Pacific	c_date_tzr   c_timedeltaWc_periodr   rW   	c_Integerr   rV   
c_Floatingr&   r   r<   r=   r%   r[   r?   )r   r.   to_datetimedttz_localizeiloc	to_periodastyper,   r0   r/   dropr1   r2   )funcr   r   r3   r6   r5   s         r7   $test_idxmin_idxmax_returns_int_typesr     s    
(((!\\///666		
 	

 
B >"X,//BxLlo11,??B{O8r(|'8';;B}\_..s33BzNk((11B{O)}++I66B|.WRZZ''..LIIIFrxc
'H'H'HIIIH 2==(=44 ( 2"*8"4'1$W-H[%i0H\&(+++++r9   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-Ll    m;-Lmethod)countr   r   firstlastc                    t          ddg|d          }|                    d          } t          ||                       }| dk    rd}n<| dk    r	|d         }n-| dk    r	|d         }n t          |d	         |                       }t          d	|git          j        dgd
                    }t          j        ||           d S )Nr   r}   r!   r   r   r   r   r   r"   r%   r[   )r   r0   r,   r.   r/   r1   r2   )r   rJ   r3   groupedr6   expected_valuer5   s          r7   2test_groupby_non_arithmetic_agg_int_like_precisionr   0  s     
!Qd++	,	,BjjooG%WWf%%''F	7		a	6		a1C&1133#/0!38O8O8OPPPH&(+++++r9   r   r   c           
         t          t          |                     }t          g d|d|dt          j        t          j        g|d|dt          j        t          j        gd|           }|                    d|          }t          ||          } ||          }g d	g d
g dg dd||f         }	|j        |	                             d          }
|r|
	                                }
t          j        ||
           d S )N)r   r   r   r   r   r   r         @r!   r"   crM   r!   )sortr*   )r   r   r   )r   r   r   )r   r      )r   r   r   ))r   T)r   F)r   T)r   F)r   r   r   r@   rA   r0   r,   r   	set_index
sort_indexr1   r2   )any_real_nullable_dtyper   r+   rx   na_valuer3   r   r   r6   ilocsr5   s              r7   test_first_last_skipnar   N  s+    ",/F"G"GHHH	###C3?C3?	
 	

 &
 
 
B 
Cd	#	#BRFV6"""F ##))!		"	 
 
6kE wu~'',,H )&&((&(+++++r9   c                     t          t          j                            d                              d          g d          } g d| d<   |                     d          }d}t          j        t          |          5  |	                    d	
          }d d d            n# 1 swxY w Y   | j
        d d d	d f         	                    d	
          }|j                            d	          }t          j        ||         |                    d                     t          dd          | d<   |                     d          }d}t!          j        t$          |          5  t          j        t          |          5  |	                    d	
           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   )
   r   )r<   r=   r>   Dr?   )
r   r   r   r   r   r   r   r   r   r   r<   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedrn   r   axisz
2016-01-01r   periodsEz>'>' not supported between instances of 'Timestamp' and 'float')r   r@   randomdefault_rngstandard_normalr0   r1   r   r   rz   r   r)   get_level_valuesrQ   	droplevelr   rp   rq   rr   )r3   r   warn_msgresaltindexergb2r   s           r7   test_idxmin_idxmax_axis1r   j  sg   	
	a  0099CWCWCW
 
 
B -,,BsG	CBBH		#M	B	B	B    iiQi                              '!!!QRR%.

Q

'
'Ci((++G3w<s););<<<r222BsG
**S//C
JC	y	,	,	,  'XFFF 	 	JJAJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sH   =B  B$'B$ F7<FF7F#	#F7&F#	'F77F;>F;c                      t          g dg dd          } |                     d          d                                         d         dk    sJ d S )N)r<   r<   r<   r<   r<   )ij  i  io  i`  l    @~ )userconnectionsr   r   r<   l    ,fL )r   r0   mean)r3   s    r7   test_groupby_mean_no_overflowr     si    	---III	
 	

 
B ::fm,1133C8<OOOOOOOr9   c                  n   t          t          j        t          d                    ddgdz  d          } |                     d          d                                         }t          t          j        ddg          dt          j        ddgd	          
          }t          j	        ||           d S )Nr   r<   r=   r   )timecatr   r   r   r%   r&   r)   )
r   r.   to_timedeltar   r0   r   r	   r/   r1   rQ   r3   r6   r5   s      r7   test_mean_on_timedeltar     s    	BOE"II66SzA~NN	O	OBZZv&++--F
AfBHc3Ze4T4T4T  H 68,,,,,r9   c                  t   t           j                            d                              d          } t           j        | d d d<   t          |           }t           j                            d                              ddd                              t                    }t           j        |d d d<   |	                    |          
                                }d}t          j        t          |          5  |	                    |                              t           j                  }d d d            n# 1 swxY w Y   t          j        ||           t          t           j                            d                              d	                    }d}t          j        t          |          5  |	                    |                              t           j
                  }d d d            n# 1 swxY w Y   |	                    |          
                                }t          j        ||           d S )
Nr     r   2   size   zusing DataFrameGroupBy.medianrn   )r   r   )r@   r   r   r   rA   r   integersr   rU   r0   medianr1   r   r   rP   	nanmedianr2   )arrr3   labelsr6   r   r4   rsxps           r7   test_cython_medianr     s=   
)


"
"
2
24
8
8CvC!H	3BY""1%%..q"4.@@GGNNF6F44R4LZZ&&((F
)C		#M	=	=	= 3 3jj  $$R\223 3 3 3 3 3 3 3 3 3 3 3 3 3 3&#&&&	29((++;;IFF	G	GB
)C		#M	=	=	= / /ZZ##BI../ / / / / / / / / / / / / / /	F			"	"	$	$B"b!!!!!s$   73D66D:=D:23G11G58G5c                    t          t          j                            d                              ddd                    }t          ddd          }t          j        |d         |          }|                    ||           	                                }|                    ||           
                    d           }t          j        ||           d S )	Nr   r   ,     7   r   observedc                 *    |                                  S )N)r   xs    r7   <lambda>z(test_median_empty_bins.<locals>.<lambda>  s     r9   )r   r@   r   r   r   r   r.   cutr0   r   rP   r1   r2   )r   r3   grpsbinsr6   r5   s         r7   test_median_empty_binsr     s    	29((++44QC@@	A	ABB??D6"Q%DZZxZ007799Fzz$z22667K7KLLH&(+++++r9   c                     t          g dg dddgz  d          } |                     d                                          }d|v sJ |                     d                              d	          }d|v sJ |                     d                                          }d|v sJ |                     d                              d	          }d|v sJ d S )
N)   r     r  r   r   mama)nniissr  r  Fr   )r   r0   r   r   )aar6   s     r7   test_max_min_non_numericr	    s    	***,,,a6(lSS	T	TBZZ!!##F6>>>>ZZ!!u!55F6>>>>ZZ!!##F6>>>>ZZ!!u!55F6>>>>>>r9   c                 H   t          g dg dg dd          }|                                 | s#|rt          |j        j                  dk    snnJ |                    d          }|dg                                         }t          j        g d	d
          }t          dg di|          }t          j
        ||           |dg                                         }t          j        g d	d
          }t          dg di|          }t          j
        ||           d S )N)r   r   r   r   r   )r   r   r   r   F)r!   r"   r   der;   r   r   r<   r>   r   r%   )r"   r  r  r[   )r!   r   r  )r   _consolidate_inplacerk   _mgrblocksr0   r   r.   r/   r1   r2   r   )using_array_managerusing_infer_stringr3   r   r6   eir5   s          r7   $test_max_min_object_multiple_columnsr    sB   
 
 ,,,***	
 	

 
B  E+=Ds27>""a''''''	CBY]]__F	)))#	&	&	&B#/r:::H&(+++Y]]__F	)))#	&	&	&B#/r:::H&(+++++r9   c                  N   t          j        t          g d          d          j        j        } t          t          j        dt          j        gg d| d          }|                    dd	          d
         	                                d
         }t          j        t          ddgd
          d          j        j        }t          j        ||           |                    d          d
         	                                }d|j        _        t          j        ||           d S )N)
2019-05-09r  r  z%Y-%m-%d)format1)r   r   r   r   r"   Fas_indexr   r  r%   )r.   r   r	   r   dater   r@   rA   r0   r   r1   rQ   r)   r&   )datesr3   r6   r5   s       r7   test_min_date_with_nansr    s   N999:::   
 
"&#rv.YYYUKK	L	LBZZeZ,,S15577<F~l+#666z    68,,,ZZ__S!%%''FHN68,,,,,r9   c                  b   t          dt          g          } t          j        ddgt          j                  }|                     |          }|                    d          }t          ddit          j                  }t          j        ||d           |	                    d          }t          dt          it          j                  }t          j        ||d           |	                    d          }t          dt          j
        i          }t          j        ||d           d S )Nr   rM   r   	min_countTcheck_exactr   )r	   r   r@   rG   int64r0   r   r1   rQ   r   rA   )rR   r#   r   r6   r5   s        r7   test_max_inatr#    s
   
!T

C
(Aq6
*
*
*C	S		BVVaV  Fq!fBH---H68>>>>VVaV  Fq$irx000H68>>>> VVaV  Fq"&k""H68>>>>>>r9   c                  t   t          dt          dt          dz   g          } |                     g d          }|                    d          }t          t          j        t          j        t          dz   d          }|j                            t                    |_        t          j
        ||d           d S )Nr   r   )r   r   r   r   r  r   Tr   )r	   r   r0   r   r@   rA   r)   r   r|   r1   rQ   )rR   r   r6   r5   s       r7   test_max_inat_not_all_nar%    s     !T1dQh'
(
(C	\\\	"	"BVVaV  F "&RVq99::H^**3//HN68>>>>>>r9   r   r   r   c                 @   ddg}t          j        ddd          }t          ||d          } t          |                    d          d         |                       }t          j        ddgd	          }t          ||d
          }t          j        ||           d S )Nr   r   2020Yr   freqr}   r!   r"   r%   r)   r&   )	r.   period_ranger   r,   r0   r/   r	   r1   rQ   r   groupsr   r3   r6   idxr5   s          r7   $test_groupby_aggregate_period_columnr0    s     VFofac:::G	g..	/	/B0WRZZ__S)40022F
(Aq6
$
$
$CgSs333H68,,,,,r9   c                 6   ddg}t          j        ddd          }t          ||d          } t          |                    d          |                       }t          j        ddgd          }t          d	|i|
          }t          j        ||           d S )Nr   r   r'  r(  r)  r}   r!   r%   r"   r[   )r.   r,  r   r,   r0   r/   r1   r2   r-  s          r7   #test_groupby_aggregate_period_framer2  ,  s     VFofac:::G	g..	/	/B+WRZZ__d++--F
(Aq6
$
$
$C#ws333H&(+++++r9   c                  L   t          g dt          d          t          j        gdz  d                              t
                    } |                     d                                          }t          ddgdd	gt          j        t          j        gd                              d                              t
                    }t          j
        ||           t          g dt          d          t          d          d                              t
                    } |                     d                                          }t          ddgdd	gd
dgd                              d                              t
                    }t          j
        ||           d S )Nr   abcdr   )r#   rY   rZ   r#   r<   r=   r!   r   r   r   )r   listr@   rA   r   rj   r0   r   r   r1   r2   r   r   s      r7   #test_aggregate_numeric_object_dtyper6  :  sv    
$$$d6llRVHqLQQ
 
fVnn  ZZ""$$F#Jc
RVRV<LMM	
 	
 
5			  &(+++ 
$$$d6llE!HHMM
 
fVnn  ZZ""$$F3*sCj1a&IIJJ	5			 
 &(+++++r9   c                    t          dgd          j                                        }t          dg|d          }|                    d                              d| i          }t          ddgit          j        dgd          	          }|d                             |j	                  |d<   t          j        ||           d S )
Nr"   categoryrM   i  r<   r=   r<   r=   r%   r[   )r	   r   
as_orderedr   r0   rP   r.   r/   r   rN   r1   r2   )r   dsr3   r6   r5   s        r7   %test_aggregate_categorical_lost_indexr<  X  s     
Z	(	(	(	,	7	7	9	9B	$b))	*	*BZZ__  #t--F#uRXtf3-G-G-GHHHH SM((22HSM&(+++++r9   )rW   Int32rV   Float32rL   c                    | dk    rd}n| dk    rd}nd}t          ddg||dz   gd          }|d	                             |           |d	<   |                    d
          }|                                }|j        d d                             d
          }t          j        ||           |                                }|j        dd                              d
          }t          j        ||           |                    d          }t          d	t          j
        gi|j        |           }	t          j        ||	           |                    d          }
t          j        |
|	           t          g d|t          j
        |dz   gd          }|d	                             |           |d	<   |                    d
          }|                                }t          j        ||           |                                }t          j        ||           |                    d          }t          j        ||	           |                    d          }t          j        ||	           d S )NrW   l   .D3 rL   r   r   r   r   )idtsrA  r@  r   r  rO   )r   r   r   d   )r   r   r0   r   r   r   r1   r2   r   r.   rb   r)   )rN   rA  r3   r   r6   r5   res_maxexpected_maxresult2	expected2res_max2df2r   result3res_max3result4res_max4s                    r7   test_groupby_min_max_nullablerM  f  s@    	)			1a&R!V55	6	6B$xu%%BtH	D		BVVXXFwrr{$$T**H&(+++ffhhG7122;((..L'<000ffqf!!G4"%/uMMMI'9---vvv""H(I... 999RQ,?@@
A
ACD	  ''CI
++d

CggiiG'8,,,wwyyH(L111ggg$$G'9---www%%H(I.....r9   c            	      J   t          j        dgdz  ddg          } t          | t          j        t	          j        dt          j                            d          }|                    dd	          }|                                }t          j	        ddg| j
        d
          }t          dt          j        dt           j        gd          i|          }t          j        ||           |                                }d|j        d<   t          j        ||           d S )Nr   r   r   )
categoriesrM   r9  r<   Fr   rN   r&   r=   UInt64r[   	   )r   r   )r.   Categoricalr   rG   r@   arangeuint64r0   r   CategoricalIndexrN   rb   r1   r2   r   r   )r   r3   r   r   r/  r5   s         r7   (test_min_max_nullable_uint64_empty_grouprW    s    
.!rq!f
5
5
5C	28BIb	,J,J,J#K#KLL	M	MB	C%	(	(B
&&((C

q!fCIC
@
@
@C#rxBE
(CCCDCPPPH#x(((
&&((CHM$#x(((((r9   )r   r   r   r   c                    t          t          j        dgt          d          d          t          j        dgddgd          dd          } t	          |                    d	d
          |                       }t          j        ddgd	d          }t          t          j        dd gddgd          dd gd|          }t          j        ||           d S )Nr<   ABT)rO  orderedr   r   g?)rY   rZ   valuerY   Fr   r=   )rJ   r&   rZ  )rZ   r[  r[   )	r   r.   rS  r5  r,   r0   rV  r1   r2   )r   r3   r6   r/  r5   s        r7    test_groupby_min_max_categoricalr\    s     
NC5T$ZZNNNNA3Aq64HHH	
 	

 
B ?WRZZZ77>>@@F

C:FD
I
I
ICNAt9!QNNN4[	
 	
   H &(+++++r9   c           	      "   |}t          dgddd|          j        d d         } t          |                    d          |                       }t          ddg|t	          j        g |d                    }t          j        ||           d S )	Nr!   r   rM   r   r"   r   rP  )r(   rN   r)   )r   r   r,   r0   r.   r/   r1   r2   )r   string_dtype_no_objectrN   r3   r6   r5   s         r7   test_min_empty_string_dtyper_    s     #E	#Ss335	A	A	A	Frr	JB+WRZZ__d++--Fc
%rx%c/R/R/R  H &(+++++r9   r  test_seriesc                    |dk    rd S | }|dv ri }n|dv rd|i}n|dv ri }nd|i}|t           j        }}|dv rd}|dk    rd	nd
}nh|dv r6|r'|dk    r!|j        dk    r|j        t           j        u rd}nd}|dk    rdnd}n.|dv rdt          j        }}n|dk    rt           j        }n|dk    rd}t          dgt           j        gd|          }|r|d         n|}	t          ||	          }
|	                    |d                   }t          ||          }|dv rFd| d| d}t          j        t          |          5   ||
i | d d d            n# 1 swxY w Y   d S  ||
i |}t          j        dgd|           }|s|dk    r |s|dk    rd nd}t          ||||!          }nt          d|i||"          }t          j        ||           d S )#Ncorrwith)r   r   ry   rz   r   r   stdvar)kurtr  )r   nuniquequantilesemr   )r   r   ri   r   FT)r   rf  r   r   pyarrowrW   r"  r   r   )ry   rz   float64sumr   r   r}   rM   r"   r!   )	r   r   re  prodrg  rh  skewrc  rd  zdtype 'z' does not support operation ''rn   r~   )r)   rN   r&   rO   )r.   rb   storager   r@   rA   r   r   r0   r,   rp   rq   rr   r/   r	   r1   rc   )r^  reduction_funcr  r`  rN   rv   expected_dtyper   r3   re   argsr   r   r   r6   r)   r&   r5   s                     r7   test_string_dtype_all_nars    s    ##"E 	 	 	 	8	#	#y)	J	J	Jy)%*BENN''"0E"9"9t	7	7	7 	%&((**"%''$NN$N,66A	/	/	/)2BF	Q	5	 	 	#beW--U	;	;	;B 
("S''bC">377D	RW		BR((F 
 
 
 ONN^NNN]9C000 	$ 	$FD#F###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$VT$V$$FHcUE222E Wn..&L>V+C+Ctt.^RVWWWc>2%~VVVOFH%%%%%s   <	EEEc                 F   | }t          dgt          j        gd|          }|                    d          }|                    |          }|dk    rdnt          j        }t          d|it          j        dgd|	          |
          }t          j        ||           d S )Nr   r}   rM   r!   r  r   r   r"   r~   rO   )r   r.   rb   r0   rk  r/   r1   r2   )r^  r  rN   r3   r   r6   r[  r5   s           r7   test_string_dtype_empty_sumru  !  s     #E	#beW--U	;	;	;B	CBVViV((Fq..BBbeE	eBHcUEBBB%  H &(+++++r9   c            	         t          g dg dt          t          j        t          j        dg          g dd          } |                     d          }|dg                                         }|d                                                                         }t          j        ||           |d         	                                
                                rJ d S )N)z-04-23z-05-06z-05-07)z2013-04-23 00:00:00z2013-05-06 00:00:00z2013-05-07 00:00:00OE)zlog080001.logzlog.logxlsx)z
Unnamed: 0DateappFilery  r{  )r   r	   r@   rA   r0   r   to_framer1   r2   r   r   )r3   r   rr  s       r7   test_max_nan_bugr~  /  s    	888  
 26264011888		
 		

 
B 
F		B
F8A
6
!!##A!Qy~~##%%%%%%%r9   r   dropnar  with_nankeysjoejimc           	      >   d}d}t          dd          }t          t          j                            d                              t          t                    |          t          j                            d                              ||          t          j                            d                              d||          d          }|rg|	                    dt          i          }d |j        d	d d
df<   d |j        dd ddf<   d |j        dd ddf<   d |j        dd ddf<   d |j        dd ddf<   |                                }	|                    |||           }
|
d                             |          }|                    |||           }
|
d                             t           j        |          }|s|                    d          }|rt%          j        ||d           nt%          j        ||d           t%          j        ||	           d S )NrB  r   z
2015-08-23r   r   r   )r  r  julier  r   r   r  r   %   r           rR  )r  r   r  T)r   F)check_names)r   r   r@   r   r   choicer5  r   r   r   rU   loccopyr0   rf  applyr	   reset_indexr1   rQ   r2   )r   r  r  r  r  nmdaysr3   original_dfgrleftrights                r7   test_series_groupby_nuniquer  C  s    	A
AlB///D	9((++2243H3H!LL9((++224;;Y**1--66q!Q??	
 	

 
B  &YY'((#qu"ue|#qu"ue|!%qu"ug~!%qu"ug~!%qu"ug~''))K	D8$	7	7Bg;f--D	D8$	7	7BwKfnV<<E -!!t!,, >
tU>>>>>
dEu===="k*****r9   c                     t          t          d          t          d          t          d          d          } t          t          d          g dg dd          }|                     dd	
                                          }t	          j        ||           t          d          |_        d|j        _        |                    d          }|                     d                                          }t	          j        ||           | 	                    dd i                              d                              d	          }t	          j        ||           t          dgdz  dgdz  dt          d                    }d|j        _        | 	                    dd i                              d                                          }t	          j        ||           d S )Nabbaccabxaccabbacxr;   abc)r   r   r   )r   r   r   r<   Fr  r?   r   r  r   r   )r=   r>   r[   )
r   r5  r0   rf  r1   r2   r)   r&   r   replacerB   s      r7   test_nuniquer  k  s   	hd8nn4>>RR	S	SBtE{{KKLLHZZeZ,,4466F&(+++ %[[HNHN}}S}))HZZ__$$&&F&(+++ ZZd$$,,S11999GGF&(+++ sQwaS1W55T%[[IIIHHNZZd$$,,S1199;;F&(+++++r9   c                  >   t          g dg dg dg dg dgg d          } |                     dd	g          d
                                         }t          j        | j        | j        g          }t          dgdz  d
|          }t          j	        ||           d S )N)rB  r   Alice)   r   Bob)i,  r   Charlie)ipr   Dan)r   r   Edith)amountr@  r&   r?   r@  r  r&   r   r   r   )
r   r0   rf  r   from_arraysr@  r  r	   r1   rQ   )rJ   r6   r)   r5   s       r7   test_nunique_with_objectr    s    OO	
 )((	 	 	D \\4*++F3;;==F"DGT[#9::EqcAgF%888H68,,,,,r9   c                      t          dt                    } |                     d                                          }t          dd          }t	          j        ||           d S )Nr&   r~   r   levelr"  )r	   rj   r0   rf  r1   rQ   )rJ   r6   r5   s      r7   test_nunique_with_empty_seriesr    s^    vV,,,D\\\""**,,F6111H68,,,,,r9   c                     t          t          d          t          d          t          d          gg dd                              d          } |                     t	          j        d                    d	                                         }|                     t	          j        d                    d	                             t          j                  }t          j
        ||           d S )
Nz2016-06-28 09:35:35z2016-06-28 16:09:30z2016-06-28 16:46:28)r  23)r   rJ   r   h)r*  rJ   )r   r
   r   r0   r.   Grouperrf  r  r	   r1   rQ   testr6   r5   s      r7   test_nunique_with_timegrouperr    s     /00/00/00
 $OO	
 	
	 	 i 	 \\"*#...//7??AAF||BJC00011&9??OOH68,,,,,r9   zkey, data, dropna, expected)r   r   r   z
2019-01-01r   r#   r%   r+  i  )r   r   r   yr  r  )r   r   r   r   r  c                     t          | |d          }|                    dg          d                             |          }t          j        ||           d S )N)r#   rJ   r#   rJ   r  )r   r0   rf  r1   rQ   )r#   rJ   r  r5   r3   r6   s         r7   test_nunique_with_NaTr    s\    V 
3--	.	.BZZ  (000??F68,,,,,r9   c                  (   t          g dt          j        dgd                    } |                     g d                                          }t          dgt          j        dg          | j        	          }t          j	        ||           d S )
N)r   r   r   r<   level_0r%   r?   r   r   r   )r)   r(   )
r   r.   r/   r0   rf  r@   rG   r(   r1   r2   r  s      r7   )test_nunique_preserves_column_level_namesr    s    YYY#Y(G(G(GHHHD\\)))$$,,..F!BHaSMM4<HHHH&(+++++r9   c                      t          t          dd          dg          } |                     g d          d                             d          }t	          g dd          }t          j        ||           d S )	Nz
2008-12-31z
2009-01-02r  r?   )r   r   r   rf  )r   r   r   r%   )r   r   r0   	transformr	   r1   rQ   r   s      r7   $test_nunique_transform_with_datetimer    sw    	:lL99F8	L	L	LBZZ			""6*44Y??Fiiif---H68,,,,,r9   c                 @   t          dg                              d          }|d d         }|                    ||           }|                                }| rt          g |d d         d          }nt          dg|d          }t	          j        ||           d S )Nr   r8  r   r   r"  rO   )r	   r   r0   rf  r1   rQ   )r   r   rR   r   r6   r5   s         r7   test_empty_categoricalr    s    
!++

Z
(
(C
bqb'C	S8	,	,BZZ\\F 9"CG7;;;1#S88868,,,,,r9   c                  :   t          ddt          j        dg          } |                     g d          }d}t	          j        t          |          5  |                    t          j	                  }d d d            n# 1 swxY w Y   d}t	          j        t          |          5  |
                    t          j	                  }d d d            n# 1 swxY w Y   |	                                }t	          j        ||           t	          j        ||           d S )Nr   r   r   )r   r   r   r   zusing SeriesGroupBy.sumrn   zusing np.sum)r	   r@   rA   r0   r1   r   r   rP   r-   rk  r  rQ   )sr   r   r6   rE  r5   s         r7   test_intercept_builtin_sumr    sr   S"&#&''Aii%%G
#C		#M	=	=	= + +X\**+ + + + + + + + + + + + + + + C		#M	=	=	= . .----. . . . . . . . . . . . . . . {{}}H68,,,7H-----s$    A>>BB& CCCr   c           	      R   d}d}t           j        }t          j        |||||||gd          }t	          g d|d          }|                    d                              |           }| d	k    rVt	          d
t          j        g dd          it          j        g dd                    }t          j	        ||           d S t	          d
t          j        t          j
        gdz  d          it          j        g dd                    }t          j	        ||           d S )NTFrL   rM   )r   r   r   r   r   r   r   r9  r<   r  r   r=   )r   r   r   rW   r   r%   r[   r   )r@   rA   r.   rG   r   r0   rk  r/   r1   r2   rb   )r  r"   r!   nadfgr3   r6   r5   s           r7   !test_groupby_sum_mincount_booleanr    s?   AA	B
(Aq"b!Q*)
<
<
<C	...S99	:	:BZZ__  9 55FA~~"(999G4445(9993///
 
 
 	fh/////"(BE7Q;g6667(9993///
 
 
 	fh/////r9   c                     t          g dg dg ddd          } |                     d          }t          j        g ddd          }|d                             d	          }t          t          j        gd
z  d|d          }t          j        ||           |                    d	          }t          t          j        gd
z  t          j        gd
z  dd|          }t          j	        ||           d S )N)r   r   r   r   rW   rM   r!   r~   r"   r   r  r   )rN   r)   r&   )r"   r   )rN   r)   )
r   r0   r.   r/   rk  r	   rb   r1   rQ   r2   )r3   r   r/  r6   r5   s        r7   0test_groupby_sum_below_mincount_nullable_integerr  %  s    	CC7	S	S	SBjjooG
(9993g
6
6
6CS\**Frugk#FFFH68,,,[[1[%%Fw{"%1==WTWXXXH&(+++++r9   c                     t          g dt          j        d          t          j        d          t          j        d          t          j        gd          } t          j        d          }|                     d          }|                                }t          d	||git          j        d
dgd                    }t          j        ||           |d	                                         }t          j	        ||d	                    |d	                             d          }t          |t          j        gdd	|j                  }t          j	        ||           d S )N)r   r   r   r   1d2d3dr}   r   )r  r!   r"   r   r   r%   r[   r  zm8[ns])rN   r&   r)   )r   r.   	TimedeltaNaTr0   rk  r/   r1   r2   rQ   r	   r)   )r3   td3r   r   r5   s        r7   #test_groupby_sum_timedelta_with_natr  4  s5   	,t$$bl4&8&8",t:L:LbfU	
 	

 
B ,A


C	CB
&&((C#Sz*"(Aq62L2L2LMMMH#x(((
S'++--C3...
S'+++
"
"CsBFm8#X^TTTH3)))))r9   )int8int16int32r"  float32rj  rU  zmethod,datar3   r}   r   r   r"  )r3   out_typec                    t          ddddddddddddg          }|j                            |           |d<   d|vrg |d<   d|v r	|d         }n| }|d	         }t          |          }|j                            |          |d<   |                    d
d           |                    d
          } t          ||          |d          }t          j        ||           d S )Nr   r}   r   r   r   r"   rr  r  r3   r!   T)inplace)r   r"   r   r   r0   r,   r1   r2   )	rN   r   rJ   r3   r  r4   df_outgrpdts	            r7   %test_groupby_non_arithmetic_agg_typesr  L  s    
q		++11-=-=QQ?O?OP
 
B dkk%  BsGTVT
#
t*Cs^^F(//(++F3K
S$'''::c??DftF|,A!V$$$$$r9   c                  "    ddl m}  || ddi|S )Nr   )rh  ddofr   )scipy.statsrh  )rr  rv   rh  s      r7   	scipy_semr  t  s.    3'1''''r9   z	op,targopr   r   rc  rd  rk  rl  c                     | j         d         S )Nr   r   r   s    r7   r   r     s    AF1I r9   c                     | j         d         S )Nr  r   s    r7   r   r     s    16": r9   rh  scipy)marksc                 n   t          t          j                            d                              d                    }t          j                            d                              ddd                              t                    } t          |	                    |          |                       }| dv rd nt          }d|  }t          j        ||          5  |	                    |                              |          }d d d            n# 1 swxY w Y   t          j        ||           d S )	Nr   r   r   r   r   )r   r   r   rh  zusing DataFrameGroupBy.rn   )r   r@   r   r   r   r   r   rU   r,   r0   r   r1   r   rP   r2   )optargopr3   r   r6   r   r   r5   s           r7   test_ops_generalr  z  sN   $ 
29((++;;DAA	B	BBY""1%%..q"4.@@GGNNF,WRZZ'',,..F:::44D
(B
(
(C		#D	4	4	4 2 2::f%%))&112 2 2 2 2 2 2 2 2 2 2 2 2 2 2&(+++++s    )DDDr   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   function)r   r   rd  c                 Z   |dk    rdnd}t          j        |gdz  t                    }t          j        g ddd	          }t          d
|i|                              d          }t          | d                              d          } t          ||                      }t          j
        ||           |                    |          }t          j
        ||           |                    |g          }t          j        d
|fg          |_        t          j
        ||           d S )Nrd  g      ?g      ?r   rM   r   r!   rW   r~   r"   r[   rV   )r@   rG   rU   r.   r/   r   r   r0   r,   r1   r2   rP   r   from_tuplesr(   )r   r  outputr   r/  r5   r.  r6   s           r7   ,test_apply_to_nullable_integer_returns_floatr    s#    %%SS3F
(F8a<u
-
-
-C
(9993g
6
6
6C#s3///66yAAHvW---55c::F&WVX&&((F&(+++ZZ!!F&(+++ZZ
##F!-X.?@@H&(+++++r9   r  )
rk  rl  r   r   r   r   rm  rc  rd  rh  r   r+   c                     t          dg          }dk    r|}d}n	|j        }d}t          j        t          |          5  |                    d|          }d d d            n# 1 swxY w Y    dk    rw t          |                     }|                    d                               fd	          }	|r|	                    
          }	t          j	        ||	           d S  t          |                       }|                    d                               fd          }	|r|	                    
          }	t          j	        ||	           d S )Nr   zAThe 'axis' keyword in DataFrame.groupby is deprecated and will bez+DataFrame.groupby with axis=1 is deprecatedrn   )r  r   r   rm  r*   r  c                 :     t          |                     S )N)r   r+   r,   )r  r   r  r+   s    r7   r   z3test_regression_allowlist_methods.<locals>.<lambda>  s    ngann$v>>> r9   r   c                 8     t          |                     S )Nr   r  )r  r   r  s    r7   r   z3test_regression_allowlist_methods.<locals>.<lambda>  s    .'!R..d:S:S:S r9   )
r   Tr1   r   r   r0   r,   r  r   r2   )
r  r   r+   r   	raw_frameframer   r   r6   r5   s
   ```       r7   !test_regression_allowlist_methodsr    s   , 1#IqyyQ;		#M	=	=	= ? ?--ad->>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
V||%"%%V444==q=))//>>>>>>
 
  	6***55H
fh/////%"%%''==q=))//0S0S0S0S0STT 	6***55H
fh/////s   A((A,/A,c                  P   ddgddgddgddgddgddgddgdd	gdd
gddgddgddgddgddgg} t          | ddgd          }|                    dg                                                                          }t          dgdgdd          }t	          j        ||           d S )Nr   r  )   r   r  r        r   r   +   r   /   r  X   r<   r=   r"  )r(   rN   l   N+R@r9  rM   )r   r0   rl  r  r1   r2   )rJ   r3   r6   r5   s       r7   "test_groupby_prod_with_int64_dtyper    s     
B	
B	
B	
B	
A	
B	
B	
A	
A	
B	
A	
B	
B	
BD  
4#s7	;	;	;BZZ##%%1133Fs*<)=>>gNNNH&(+++++r9   )jr-   datetimer   stringr   numpyr@   rp   pandas._libs.tslibsr   pandas.core.dtypes.commonr   pandas.core.dtypes.missingr   pandasr.   r   r   r	   r
   r   r   pandas._testing_testingr1   pandas.tests.groupbyr   pandas.utilr   tdmarkparametrizerA   r8   rC   rI   rb   rT   rG   ri   r`   rg   r  rl   rs   rw   r   r   r   r   r   r   r   r   r   r   r	  r  r  r#  r%  r0  r2  r6  strr<  rM  rW  r\  r_  rs  ru  r~  slowr  r  r  r  r  r/   r  r  r  r  r  r  r  r  r  r  r  r   r   rc  rd  rk  rl  r   r   r   param
skip_if_nor  r  r  r  ru   r9   r7   <module>r     sZ        " " " " " "      $ $ $ $ $ $ 2 2 2 2 2 2 9 9 9 9 9 9                          8 8 8 8 8 8 . . . . . . eU^44
							  $, ,%  54&,"
, 
, 
, 5%.99, , :9, 5%.99
	ru	u	rud	rue
 

- 
-
 
 :9
- % BHdV4(((BHbeWI...		
 BHbeWI...BHdV4(((		
 BHbeWI...BHbeWI...		
 BHbeWI...BHbeWI...		
' :	, 	,; :	, 5%.99"A"A"ABB	& 	& CB :9	& %	'	26"D)	&	rv&.	 & & & 5%.99: : :9: 5%.99& & :9& 8 455, , 65,( 8 455%, %, 65%,P 	aVA1a&IIJ	aVA1a&IIJ  $77, , 87 ,@ 
 I233I233	
 	/	 	 #K#K#KLL, , ML	 	,& & 122, , 32,6  4P P P- - -" " ",, , ,  ", , ,>- - -$? ? ?(? ? ? %00
- 
- 10
- %00
, 
, 10
,, , ,< %00
, 
, 
, 
, 10
, "U"U"UVV,/ ,/ WV,/^) ) )" !@!@!@AA, , BA,, %00, , 10, q!f--u66R& R& 76 .-R&j q!f--
, 
, .-
,& & &( %//E4=11dE]33dE]335'E5>!:;;+ + <; 43 43 21 0/ +D, , ,2- - -&- - -- - -" ! OOY|$$bfii.E.EFFA3hbhu5999GGG		
 OORWT1a  "&'"'$1*=*=>FA3hbhu5999GGG		
 &%%a##a##a## FAq63*5!A!A!AOOO	
 &%%a##a##a## FAq63*5!A!A!AOOO	
3%( (R- -S( (R-, , ,- - -
- 
- 
-. . ." q"g..0 0 /.0,, , ,* * *0 PPP  	4**!!,<,<=>?	$qq))+;+;<=>	aa((*:*:;<=	aa((*:*:;<=	**!!,<,<=7SST	 	% %	 	 %6( ( ( 		29							%%&	%%&	"'UI]R]7-C-CDDD "	, 	,# "	,  -,,RUAq"%Arua8	
 	
 !  '9'9'9::	 	 %>%>%>??, , @?	 	,(     !Q((D%=11$//0 0 0/ 21 )( $0@, , , , ,r9   