
    Mhۇ                         S r SSKJrJr  SSKrSSKrSSKrSSKrSSKJ	r	J
r
JrJrJrJrJrJr  SSKJr  SSKJr  SSKJr  \R0                  S 5       r\R0                  S 5       r " S	 S
5      rg)z5
test with the TimeGrouper / grouping with datetimes
    )datetime	timedeltaN)	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestamp
date_rangeoffsets)Grouper)
BinGrouperc                      [        / SQ[        SSSSS5      [        SSSSS5      [        SSSS	S5      [        SSS
SS5      [        R                  [        SSSSS5      /S.5      n U $ )z
DataFrame used by groupby_with_truncated_bingrouper, made into
a separate fixture for easier reuse in
test_groupby_apply_timegrouper_with_nat_apply_squeeze
            	   r     r   r      r   r   
      r         )QuantityDate)r   r
   pdNaT)dfs    W/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/test_timegrouper.pyframe_for_truncated_bingrouperr"      sy     
+$1b!,$1b!,$Ar1-$Ar1-$1b!,
	

B I    c                     U n[        SSS9nUR                  U5      n[        UR                  R                  5      [        UR                  R
                  5      :w  d   eU$ )a  
GroupBy object such that gb._grouper is a BinGrouper and
len(gb._grouper.result_index) < len(gb._grouper.group_keys_seq)

Aggregations on this groupby should have

    dti = date_range("2013-09-01", "2013-10-01", freq="5D", name="Date")

As either the index or an index level.
r   5Dkeyfreq)r   groupbylen_grouperresult_indexgroup_keys_seq)r"   r    tdggbs       r!   !groupby_with_truncated_bingrouperr0   4   sU     
(B
f4
(C	CB r{{''(C0J0J,KKKKIr#   c                   l   \ rS rSrS r\R                  R                  SSS/5      S 5       rS r	\R                  R                  S/ S	Q5      S
 5       r
S rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS  r \R                  RB                  S! 5       r"S"r#g#)$TestGroupByK   c                    [        SR                  5       / SQ[        SSSSS5      [        SSSSS5      [        SS	SS
S5      [        SS	SS	S5      [        SSSSS5      [        SSSSS5      /S.5      nUR                  SS9nX4 GHn  nUR	                  S/5      n[        SSSSSUR                  R                  S9n[        SSS.US9nUR                  S[        05      nSUR                  S'   SUR                  S'   SUR                  S '   [        R                  " / S!QS"S#9UR                  / S$QS4'   UR                  S5      R                  5       n[        R                   " Xe5        UR#                  5       nUR%                  ['        SS%95      R                  5       n[        R                   " X5        UR%                  ['        SS%95      R                  5       n	[        R                   " X5        GMq     g )&NzCarl Carl Carl Carl Joe Carlr   r   r   r   r   r   r   r   r   r      r   r   Buyerr   r   r   byr   2013090120131205r%   left)r(   name	inclusiveunit)r7   r   indexr7   CarlCarlCarl)r   r   CarlCarl)   r   Joe)r   r   )   rD   r   int64dtype)r   rD   r   r(   )r   splitr   sort_values	set_indexr   rA   r?   astypeobjectilocnparrayresamplesumtmassert_frame_equal
sort_indexr)   r   )
selfdf_originaldf_reorderedr    exp_dtiexpectedresult1	df_sortedresult2result3s
             r!   test_groupby_with_timegrouper)TestGroupBy.test_groupby_with_timegrouperL   s     7==?/T1aQ/T1aQ/T2q"a0T2q"a0T2q"a0T1aQ/
  #..*.=-Bvh'B  XX]]G !+H
  '89H"0HMM$",HMM$#(HMM% +-88Jg+NHMM*a-(kk$'++-G!!'4I''T(:;??AG!!'4jjd!3488:G!!'4= .r#   should_sortTFc                 V   [        SR                  5       SR                  5       / SQ[        SSSSS5      [        SSSSS5      [        SS	SS
S5      [        SS	SS	S5      [        SSSSS5      [        SSSSS5      /S.5      nU(       a  UR                  SSS9nUR	                  SSS9nUR                  [        SS95      nUR                  (       d   e[        UR                  [        5      (       d   eUR                  n[        U[        5      (       d   e[        U5      S:X  d   eg )NzA A A A A BzCarl Mark Carl Joe Joe Carl)r   r   r      r   r   r   r   r   r   r   r   r   r   r5   r   Branchr7   r   r   r   Fr9   	ascendingr   drop6MErJ   r   )r   rK   r   rL   rM   r)   r   
group_keys
isinstancer+   r   groupsdictr*   )rX   rc   r    gro   s        r!   %test_groupby_with_timegrouper_methods1TestGroupBy.test_groupby_with_timegrouper_methods   s    
 '--/6<<>.T1aQ/T1aQ/T2q"a0T2q"a0T2q"a0T2q"a0	
  :?B\\&u\-JJwE*+|||!**j1111&$''''6{ar#   c                    [        SR                  5       SR                  5       / SQ[        SSSSS5      [        SSSSS5      [        SS	SS
S5      [        SS	SS	S5      [        SS	SS
S5      [        SS	SS	S5      [        SSSSS5      [        SSSSS5      /S.5      R                  S5      nUR	                  SSS9nX4 GHB  n[        SR                  5       / SQ[        SSSSS5      [        SSSSS5      [        SSSSS5      /S.5      R                  SS/5      nSnUR                  [        SS9S/5      R                  SS9n[        R                  " Xd5        [        SR                  5       / SQ[        SSSSS5      [        SSSSS5      [        SSSSS5      [        SSSSS5      /S.5      R                  SS/5      nUR                  [        S S9S/5      R                  SS9n[        R                  " Xd5        GME     [        SR                  5       SR                  5       / SQ[        SS	SSS5      [        SS	SSS5      [        SS	SS
S5      [        SS	SS	S5      [        SS	SS
S5      [        SS	SS	S5      [        SS	SSS5      [        SS	SSS5      /S.5      R                  S5      nUR	                  SSS9nX4 GHR  n[        S!R                  5       / S"Q[        SS	SSS5      [        SS	SSS5      [        SS	SSS5      [        SS	SSS5      [        SS	SSS5      /S.5      R                  SS/5      nUR                  [        S#S9S/5      R                  SS9n[        R                  " Xd5        UR                  [        S$S9S/5      R                  SS9n[        SR                  5       / SQ[        SS	SSS5      [        SS	SSS5      [        SS	SSS5      /S.5      R                  SS/5      n[        R                  " Xd5        UR                  5       nUR                  [        S$SS%9S/5      R                  SS9n[        R                  " Xd5        [        R                  " [        S&S'9   UR                  [        S$S(S%9S/5      R                  5         S S S 5        UR                  S5      nUR                  [        S$SS)9S/5      R                  SS9n[        R                  " Xd5        UR                  [        S$SS)9S/5      R                  SS9n[        R                  " Xd5        [        R                  " [        S*S'9   UR                  [        S$S(S)9S/5      R                  5         S S S 5        UR                  5       nUR                   ["        R$                  " S5      -   US'   UR                  [        S$SS%9S/5      R                  SS9n[        SR                  5       / SQ[        SS+S,SS5      [        SS+S,SS5      [        SS+S,SS5      /S.5      R                  SS/5      n[        R                  " Xd5        S-n[        R                  " [        US'9   UR                  [        S$SSS.9S/5      R                  5         S S S 5        [        S//S/['        [        SS	SSS5      /["        R$                  " 5       SS/9S09nUR                  [        S$S95      R                  SS9n[        R                  " Xd5        UR                  [        S$S9/5      R                  SS9n[        R                  " Xd5        UR                   R)                  S5      Ul        UR                   R*                  ["        R$                  " 5       :X  d   eUR                  [        S$SS%95      R                  SS9n[        R                  " Xd5        UR                  [        S$SS%9/5      R                  SS9n[        R                  " Xd5        GMU     g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f)1NzA A A A A A A Bz$Carl Mark Carl Carl Joe Joe Joe Carl)r   r   r   r   re   r   r   r   r   r   r   r   r   r   r   r   r5   r   rf   r   r   Frh   zCarl Joe Mark)r   r   r      r6   r7   z!The default value of numeric_onlyYErJ   T)numeric_onlyzCarl Mark Carl Joe)r   r   r   r      6MSzCarl Joe Mark Carl Joe)rD   re   r      r   1D1MEr(   r'   z#'The grouper name foo is not found'matchfoo)r(   levelzThe level foo is not valid      z2The Grouper cannot specify both a key and a level!)r(   r'   r   r(   r=   columnsrA   )r   rK   r   rM   rL   r)   r   rT   rU   rV   reset_indexpytestraisesKeyError
ValueErrorcopyrA   r   MonthEndr   shiftr(   )rX   rY   r^   r    r\   msgresults          r!    test_timegrouper_with_reg_groups,TestGroupBy.test_timegrouper_with_reg_groups   s4     +113?EEG4T1aQ/T1aQ/T2q"a0T2q"a0T2q"a0T2q"a0T2q"a0T2q"a0		
  )F
! 	$  ++zU+K	*B ,224 + r2q!4 r2q!4 r2q!4
 i)*  6CZZd!3W =>BBPTBUF!!&3 1779 - q!Q2 q!Q2 q!Q2 q!Q2		 i)*  ZZe!4g >?CCQUCVF!!&3= +@  +113?EEG4T2q"a0T2q"a0T2q"a0T2q"a0T2q"a0T2q"a0T2q"a0T2q"a0		
  )F
! 	$  ++zU+K	*B 5;;= 0 r1a3 r1a3 r1a3 r1a3 r1a3
 i)*  ZZd!3W =>BBPTBUF!!&3ZZe!4g >?CCQUCVF ,224 + r2q!4 r2q!4 r2q!4
 i)*  !!&3 !BZZe!@' JKOO! P F !!&3x/TU

GE:GDEIIK V f%BZZe6!BG LMQQ! R F !!&3ZZe1!=w GHLL! M F !!&3z1MN

Ge<gFGKKM O BG$4$4Q$77BvJZZe!@' JKOO! P F !,224 + r2q!4 r2q!4 r2q!4
 i)*  !!&3 GCz5

%V6BGL#% 6 !##dBAq129I9I9KRXH ZZU 3488d8KF!!&3ZZe!4 56:::MF!!&3%^^11!4HN>>&&'*:*:*<<<<ZZU ?@DDRVDWF!!&3ZZe!@ ABFF! G F !!&3Q +N VU ON0 65s$   =*` *`20+a 
`/	2
a	
a	r(   )DMErv   zQE-APRc                    [        [        R                  " / SQ5      / SQ/ SQ/ SQS.5      R                  S5      nUR	                  S5      S   R                  U5      R                  S	S
9R                  5       R                  SS/5      R                  5       R                  S5      nSUl        UR                  5       R	                  [        US9S/5      S   R                  5       n[        R                  " XC5        UR	                  [        US9S/5      S   R                  5       n[        R                  " XS5        g )N)2012100220121007201301302013020220130305r   20121207r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )i  il  i  i     io  Z   i8  g  i-  r   i!  )r5      r   rF   '   r   r   r   -   "   r   r5   )dateuser_id
whole_costcost1r   r   r   r   )	min_countrG   rJ   )r   r   to_datetimerM   r)   rS   rT   dropnareorder_levelsrW   rN   r=   r   rU   assert_series_equal)rX   r(   r    r\   r]   r_   s         r!   %test_timegrouper_with_reg_groups_freq1TestGroupBy.test_timegrouper_with_reg_groups_freqX  s      @ GA!#
F )F
G 	L JJy!,/Xd^S1SVX^VY/0Z\VG_ 	 % MMO##W$%7$CD\RVVX 	 	w1**g40)<=lKOOQ
w1r#   c                    [        SR                  5       / SQ[        SSSSS5      [        SSSSS5      [        SS	SS
S5      [        SS	SS	S5      [        SSSSS5      [        SSSSS5      /S.5      nUR                  SS9nUR                  / SQ   UR                  SS/   UR                  S/   /n/ SQnX4 Hb  nUR                  [        SSS95      n[        XC5       H7  u  px[        U5      n	UR                  U	5      n
[        R                  " X5        M9     Md     UR                  S/   UR                  S/   UR                  S/   /n/ SQnX4 Hh  nUR                  S[        SSS9/5      n[        X5       H;  u  u  pn[        U5      n	UR                  X45      n
[        R                  " X5        M=     Mj     UR                  S5      nUR                  SS9nUR                  / SQ   UR                  SS/   UR                  S/   /nX4 Ha  nUR                  [        SS95      n[        XC5       H7  u  px[        U5      n	UR                  U	5      n
[        R                  " X5        M9     Mc     g )NzCarl Joe Joe Carl Joe Carlr   r   r   r   r   r   r   r   r   r   r5   r   r   r6   r   r8   )r   r   r   rz   )
2013-09-30
2013-10-31
2013-12-31r   r   r}   ))rE   r   )Carlr   )rE   r   r7   rJ   )r   rK   r   rL   rP   r)   r   zipr
   	get_grouprU   rV   rM   )rX   rY   rZ   expected_listdt_listr    groupedtr\   dtr   g_listbs                r!   test_timegrouper_get_group&TestGroupBy.test_timegrouper_get_group  s     5;;=/T1aQ/T1aQ/T2q"a0T2q"a0T2q"a0T1aQ/
 #..*.= Y'aV$aS!

 =-Bjjd!?@G"7:q\ **2.%%f7  ; . aS!aS!aS!

 X-Bjj'7&+I!JKG$'$> q\ **A73%%f7 %? . "++F3"..*.= Y'aV$aS!
 -Bjjd!34G"7:q\ **2.%%f7  ; .r#   c                 Z   [        SS/SS/S.5      nUR                  5       n[        R                  " US   5      US'   S nSn[        R
                  " [        US	9   UR                  [        SS
95      R                  U5      nS S S 5        Sn[        R
                  " [        US	9   UR                  [        SSS95      R                  U5      nS S S 5        [        R                  " WR                  SS9WR                  SS95        g ! , (       d  f       N= f! , (       d  f       NQ= f)N
10/10/2000
11/10/2000r   r   r   valuer   c                 >    [        U S   R                  5       /S5      $ )Nr   )rT   )r	   rT   xs    r!   sumfunc_seriesMTestGroupBy.test_timegrouper_apply_return_type_series.<locals>.sumfunc_series  s    1W:>>+,h77r#   7DataFrameGroupBy.apply operated on the grouping columnsr~   r'   r   r}   Trj   )r   r   r   r   rU   assert_produces_warningDeprecationWarningr)   r   applyrV   r   )rX   r    df_dtr   r   r\   r   s          r!   )test_timegrouper_apply_return_type_series5TestGroupBy.test_timegrouper_apply_return_type_series  s     | <BxPQ	uV}5f	8 H''(:#Fzz'f"56<<^LH GG''(:#F]]7&#ABHHXF G
D)8+?+?T+?+J	
 GF GFs   (D()D
D
D*c                 V   [        SS/SS/S.5      nUR                  5       n[        R                  " US   5      US'   S nSn[        R
                  " [        US	9   UR                  [        SS
95      R                  U5      nS S S 5        [        R
                  " [        US	9   UR                  [        SSS95      R                  U5      nS S S 5        [        R                  " WR                  SS9WR                  SS95        g ! , (       d  f       N= f! , (       d  f       NQ= f)Nr   r   r   r   r   r   c                 6    U R                   R                  5       $ N)r   rT   r   s    r!   sumfunc_valueKTestGroupBy.test_timegrouper_apply_return_type_value.<locals>.sumfunc_value  s    77;;= r#   r   r~   r   r   r}   Trj   )r   r   r   r   rU   r   r   r)   r   r   r   r   )rX   r    r   r   r   r\   r   s          r!   (test_timegrouper_apply_return_type_value4TestGroupBy.test_timegrouper_apply_return_type_value  s     | <BxPQ	uV}5f	! H''(:#Fzz'f"56<<]KH G''(:#F]]7&#ABHHWF G
D)8+?+?T+?+J	
	 GFFFs   (D	&)D	
D
D(c                 2   Sn[        SSUS9n[        [        R                  " U5      [        R                  " U5      S.US9nUR	                  S 5      nUR
                  n[        [        [        UR                  5       5      5      [        5      (       d   eg )Ni  z2012/1/15min)startr(   periods)highlowr@   c                 X    [        U R                  U R                  U R                  5      $ r   )r   yearmonthdayr   s    r!   <lambda>?TestGroupBy.test_groupby_groups_datetimeindex.<locals>.<lambda>  s    x'Gr#   )r   r   rQ   aranger)   ro   rn   nextiterkeysr   )rX   r   indr    r   ro   s         r!   !test_groupby_groups_datetimeindex-TestGroupBy.test_groupby_groups_datetimeindex  sz    zHYYw'		'0BC3
 **GH $tFKKM23X>>>>r#   c           	         [        SSSS9n[        / SQ/ SQS.US9nUR                  SS	9R                  n/ S
QnU Vs0 s H  n[	        U5      [        U/SS9_M     nn[        R                  " X65        UR                  SS	9nU Hx  nUR                  U5      nUR                  US4   UR                  US4   //n[        U/SSUR                  S9n	[        U[        S5      U	S9n[        R                  " X65        Mz     g s  snf )Nz
2015/01/01r   r   )r   r=   )r   rD   rx   re   r   )r   r   r   rz   r   ABr@   r   )z
2015-01-05z
2015-01-04z
2015-01-03z
2015-01-02z
2015-01-01r=   r   r   r   )r=   r(   rI   ABr   )r   r   r)   ro   r
   r   rU   assert_dict_equalr   locrI   listrV   )
rX   rA   r    r   datesr   r\   r   dataexpected_indexs
             r!   "test_groupby_groups_datetimeindex2.TestGroupBy.test_groupby_groups_datetimeindex2  s   <@_?C5Q&)00VLQ
LQDIdO]D6??E 	 
 	V.**6**D&&t,FVVD#I&tSy(9:;D*V#U[[N !tDzPH!!&3 
s   Dc           	         / SQn[        / SQU[        R                  " SSS9SS/S-  S	.5      nUS
   R                  S 5      US
'   [	        / SQSS
S9n[        SS/S-  SS9n[        R                  " X4/5      n[        / SQ/ SQS.USS/S9nUR                  S
S/5      R                  5       n[        R                  " Xv5        [	        USS9n[        [        R                  " SSS9/ SQS.US9n[	        / SQSS9n[        / SQ/ SQS.USS/S9nUR                  S S!9R                  5       n[        R                  " Xv5        g )"N2011-07-19 07:00:002011-07-19 08:00:002011-07-19 09:00:00r   r   r   ar   r   r   r   r   rD   rG   rH   r   r   r   )labelr   value1value2r   c                     [        U SS9$ )N
US/Pacifictz)r
   )ds    r!   r   BTestGroupBy.test_groupby_groups_datetimeindex_tz.<locals>.<lambda>2  s    	!8Ur#   r   r   r   r   r   r   r  )r  r=   r   r   r   r   r   r   r   rz   r   r   r   r   r   r   r   r   r  r  r  r  rA   r   z
Asia/Tokyor  r   r   r   r   r   r   r@   r   r   r   r   r   rx   r   rz   rD   r   r   )r   rQ   r   r   r   r   r   from_arraysr)   rT   rU   rV   )	rX   r   r    exp_idx1exp_idx2exp_idxr\   r   didxs	            r!   $test_groupby_groups_datetimeindex_tz0TestGroupBy.test_groupby_groups_datetimeindex_tz   sg   
 7!))AW5a&1*	
 J--.UV:  
 #sag6((()=>)5GHx(
 Z12668
f/ U|4yy'2>PQ

  Q
  I6x(
 !$((*
f/r#   c                     [        S[        R                  " S5      4S[        R                  " S5      4/SS/S9nUR                  S5      R	                  5       nUS   S   [        S5      :X  d   eg )Nr   z
2012-07-03z
2012-07-04r   r   )r   )r   rQ   
datetime64r)   firstr
   )rX   r    r   s      r!   &test_frame_datetime64_handling_groupby2TestGroupBy.test_frame_datetime64_handling_groupby_  sk    |,-2==3N/OP&M
 C&&(f~a Il$;;;;r#   c                    [        [        S5      / SQ/ SQS.5      nUR                  SSS9R                  R	                  S 5      n[        [        S	S
S9[        SS
S9[        SSS9[        SS
S9[        SSS9/S[        S9n[        R                  " X#5        S
nUR                  S5      R                  R                  U5      n[        R                  " U5      R                  R                  U5      n[        / SQ/ SQSS9n[        R                  " U5      R                  R                  U5      n[        R                  " X#5        g )Nr   )2000-01-28 16:47:002000-01-29 16:48:00z2000-01-30 16:49:002000-01-31 16:50:00z2000-01-01 16:50:00)America/Chicagor"  America/Los_Angelesr"  America/New_York)r   r   r  r  F)rm   c                 t    [         R                  " U 5      R                  R                  U R                  5      $ r   )r   r   r   tz_localizer=   r   s    r!   r   9TestGroupBy.test_groupby_multi_timezone.<locals>.<lambda>  s"    bnnQ'**66qvv>r#   z2000-01-28 16:47:00-0600r"  r  z2000-01-29 16:48:00-0600z2000-01-30 16:49:00-0800r#  z2000-01-31 16:50:00-0600z2000-01-01 16:50:00-0500r$  r   )r=   rI   )r  r   r!  )r   r   r   rA   r=   )r   ranger)   r   r   r	   r
   rO   rU   r   r   r   r   r   r&  )rX   r    r   r\   r  
res_values
exp_valuess          r!   test_groupby_multi_timezone'TestGroupBy.test_groupby_multi_timezoneh  s4   q
( DU388>>>
 49JK49JK49NO49JK49KL 

 	v0ZZ%**44R8

+..::2>Q


 >>*-00<<R@
v0r#   c                    / SQn[        / SQU Vs/ s H  n[        R                  " USS9PM     sn[        R                  " SSS9SS	/S
-  S.5      n[        R
                  " / SQSSS9n[        SS/S
-  SS9n[        R                  " XE/5      n[        / SQ/ SQS.USS/S9nUR                  SS/5      R                  5       n[        R                  " X5        [        R
                  " USS9n	[        [        R                  " SSS9/ SQS.U	S9n[        R
                  " / SQSS9n[        / SQ/ SQS.USS/S9nUR                  SS9R                  5       n[        R                  " X5        g s  snf ) Nr   r   hrJ   rD   rG   rH   r   r   r   )r   periodr  r  r	  r0  r   r   r   r   r   r
  r  r  r  r  r  r  r@   r  r  r  r   r   )r   r   PeriodrQ   r   PeriodIndexr   r   r  r)   rT   rU   rV   )
rX   r   r  r    r  r  r  r\   r   r  s
             r!   test_groupby_groups_periods'TestGroupBy.test_groupby_groups_periods  s{   
 7;@A5a299QS15A))AW5a&1*	
 >> 
 #sag6((()=>)5GHx(
 Xw/0446
f/ ~~e#.yy'2>PQ

 ..Q
  I6x(
 !$((*
f/_ Bs   E2
c                    [        SS/5      nUS   R                  S5      US'   [        US   R                  R                  [
        R                  5      (       d   eUR                  SS9R                  5       nUS   R                  n[        UR                  [
        R                  5      (       d   eUS   R                  SS9R                  5       nUR                  n[        UR                  [
        R                  5      (       d   eg )N)r        |>c )r   r6  r   zM8[ns]r   r   )	r   rN   
issubclassrI   typerQ   r  r)   r  )rX   r    r   got_dts       r!   test_groupby_first_datetime64)TestGroupBy.test_groupby_first_datetime64  s    02JKL1X&1"Q%++**BMM::::!$**,&++r}}5555AQ'--/&++r}}5555r#   c                 0   [        [        S5      [        R                  " S5      S.5      nUR	                  S5      S   R                  S 5      R                  S5      nUR	                  S5      S   R                  5       n[        R                  " X25        g )N20130101r   r   r   c                 "    U R                  5       $ r   )maxr   s    r!   r   9TestGroupBy.test_groupby_max_datetime64.<locals>.<lambda>  s
    r#   zM8[s])
r   r
   rQ   r   r)   r   rN   r?  rU   r   )rX   r    r\   r   s       r!   test_groupby_max_datetime64'TestGroupBy.test_groupby_max_datetime64  sr     Yz21FG::c?3'--.?@GGPC%))+
v0r#   c                     [        [        S5      [        S5      /S-  S.5      nUR                  S5      S   R	                  S5      n[        [        S5      /S-  SS9n[        R                  " X#5        g )Nr   z	2000-01-1r   r   r   minr   )r   r)  r
   r)   	transformr	   rU   r   rX   r    r   r\   s       r!   test_groupby_datetime64_32_bit*TestGroupBy.test_groupby_datetime64_32_bit  sh     U1XY{-C,Dq,HIJC%//69[12Q6SA
v0r#   c           
      @   [        [        R                  R                  S5      R	                  SSSS9[        SSSSS	9S
.5      nUR                  S5      R                  5       S   nUR                  S5      S   R                  5       n[        R                  " X#5        g )Nr   r   r   <   )sizez01/01/2000 00:00sUTC)r   r(   r  )factortimerN  rO  )
r   rQ   randomdefault_rngintegersr   r)   r?  rU   r   )rX   r    df1df2s       r!   $test_groupby_with_timezone_selection0TestGroupBy.test_groupby_with_timezone_selection  s     ))//2;;Aqr;J"#5rPUV
 jj"&&(0jj"6*..0
s(r#   c                 l   [        S/[        R                  " [        R                  5      /S.5      nUS   S   R
                  [        R                  :X  d   e[        S/ SQ05      n[        R                  " [        R                  5      US'   US   S   R
                  [        R                  :X  d   eg )Nr   )r   r   r   r   r   r   r   r   )r   r   nowpytzutctzinfo)rX   r    s     r!   test_timezone_infoTestGroupBy.test_timezone_info  s     aSTXX(>'?@A#wqz  DHH,,,Y'(,,txx(3#wqz  DHH,,,r#   c           	          [        / SQS-  [        SSSS9S.5      nUR                  S5      R                  R	                  5       n[        / S	Q[        / SQSS
9SS9n[        R                  " X#5        g )NrX  r   rY  rD   rD  )r   r(   )r   r   r   )r   r   r   r   r   r(  )	r   r   r)   r   countr	   r   rU   r   rF  s       r!   test_datetime_countTestGroupBy.test_datetime_count  sb    a-*UAE*RS
 C&&,,.)5+EGT
v0r#   c           
      6   [        [        R                  SSS[        R                  /[        R                  [        SS9[        SS9[        SS9[        R                  /S.5      n[        R
                  " UR                  5      Ul        S	US
'   XR                  R                  5          nUR                  S
5      nUR                  S
5      n[        R                  " UR                  5       UR                  5       5        [        R                  " UR                  5       UR                  5       5        [        R                  " UR                  5       UR                  5       5        [        R                  " UR                  5       UR                  5       5        g )Nz2015-07-24 10:10z2015-07-25 11:11z2015-07-23 12:12r   )daysr   r   )r   tdr   group)r   rQ   nanr   r   r   r   notnar)   rU   rV   r?  rD  r  last)rX   df_testdf_refgrouped_testgrouped_refs        r!   $test_first_last_max_min_on_time_data0TestGroupBy.test_first_last_max_min_on_time_data  s3     FF&&&FF FF1%1%1%FF
$ ^^GJJ/
))+,w/nnW-
koo/1A1A1CD
koo/1A1A1CD
k//1<3E3E3GH
k..0,2C2C2EFr#   c                    [        [        S5      [        R                  [        S5      // SQS.5      n[	        SSS9nUR                  U5      S   R                  5       nXR                  R                  5          R                  U5      S   R                  5       nUR                  R                  S 5      Ul	        [        R                  " X45        g )	Nz2016-06-28 09:35:35z2016-06-28 16:46:28)123)rO  r   rO  r/  r&   r   )r   r
   r   r   r   r)   nuniquerO  notnullrA   
_with_freqrU   r   )rX   testgrouperr   r\   s        r!   %test_nunique_with_timegrouper_and_nat1TestGroupBy.test_nunique_with_timegrouper_and_nat9  s     34FF34
 (	
 f3/g&v.668		))+,44W=fEMMO!2248
v0r#   c                 $   / SQ[        / SQSS9/ SQS.n[        U5      R                  S5      n[        SS	9nUR	                  U5      nUR                  5       nUR	                  U/5      nUR                  5       n[        R                  " XE5        g )
N)shanghaibeijingr|  )z2017-08-09 13:32:23z2017-08-11 23:23:15z2017-08-11 22:23:15zdatetime64[ns]rH   rX  )locationrO  r   rO  r   rJ   )r	   r   rM   r   r)   r`  rU   rV   )rX   
data_framerx  r   r   r\   s         r!   !test_scalar_call_versus_list_call-TestGroupBy.test_scalar_call_versus_list_callL  s     <U& 

 z*44V<
s#$$W-$$gY/==?
f/r#   c           
      R   Sn[         R                  " SUSSS9n[        [        U5      US9nUR	                  UR
                  R                  5      R                  5       n[        [        U5      [        [        SUS-   5      UR                  S9S9n[        R                  " XE5        g )	Nr   z2018-01MMonth)r   r   r(   r=   r@   r   r   )r   period_ranger	   r)  r)   rA   r   rT   r   r=   rU   r   )rX   r   rA   period_seriesr   r\   s         r!   test_grouper_period_index%TestGroupBy.test_grouper_period_index`  s    W3W
 uW~U;&&}':':'@'@AEEG'N%a1(=EJJ"O
 	v0r#   c                 &   UnUS   R                  S 5      nUR                  nUS   R                  R                  n[	        SSSSUS9n[
        R                  " US/[        U5      -  /5      n[        / S	QUSS
9n[        R                  " X85        g )Nr   c                     S[        U 5      0$ )Nr   )r*   r   s    r!   r   RTestGroupBy.test_groupby_apply_timegrouper_with_nat_dict_returns.<locals>.<lambda>v  s    eSV_r#   r   
2013-09-01
2013-10-01r%   r(   r=   r?   r   )r   r   r   r   r   r   r   r(  )r   obj_valuesr?   r   r   r  r*   r	   rU   r   )	rX   r0   r/   resr    r?   dtimir\   s	            r!   4test_groupby_apply_timegrouper_with_nat_dict_returns@TestGroupBy.test_groupby_apply_timegrouper_with_nat_dict_returnsn  s     /n""#<=VV&z!!&&|$VRVW##S5'CH*<$=>/r
K
s-r#   c           	         UnUS   R                  S 5      nUR                  nUS   R                  R                  n[	        SSSSUS9n[        S[        R                  [        R                  [        R                  [        R                  [        R                  S	/UR                  S 5      SS
9n[        R                  " X75        g )Nr   c                 `    [        U 5      (       a  U R                  S   $ [        R                  $ )Nr   )r*   rP   rQ   rg  r   s    r!   r   TTestGroupBy.test_groupby_apply_timegrouper_with_nat_scalar_returns.<locals>.<lambda>  s     #a&&QVVAY-Lbff-Lr#   r   r  r  r%   r  r   r   r(  )r   r  r  r?   r   r	   rQ   rg  rv  rU   r   )rX   r0   r/   r  r    r?   r  r\   s           r!   6test_groupby_apply_timegrouper_with_nat_scalar_returnsBTestGroupBy.test_groupby_apply_timegrouper_with_nat_scalar_returns  s    
 /n""#LMVV&z!!&&|$VRVW;..&
 	s-r#   c           	         Un[        SSS9nUR                  U5      nUR                  S:X  d   eUR                  R	                  UR
                  5      R                  S:X  d   eSn[        R                  " [        US9   UR                  S 5      nS S S 5        [        [        S5      /US   R                  SS	9n[        / S
Q/U[        / SQSS9S9n[        R                  " WU5        g ! , (       d  f       N`= f)Nr   100YEr&   r   r   r~   c                     U S   S-  $ )Nr   r    r   s    r!   r   STestGroupBy.test_groupby_apply_timegrouper_with_nat_apply_squeeze.<locals>.<lambda>  s    Qz]Q%6r#   r   )rI   r=   )$   rD   rD   r   r   )r   r   r   r   r   r   r   r  )r   r)   ngroups_selected_obj	_get_axisaxisnlevelsrU   r   r   r   r   r
   rI   r   rV   )	rX   r"   r    r.   r/   r   r  r  r\   s	            r!   5test_groupby_apply_timegrouper_with_nat_apply_squeezeATestGroupBy.test_groupby_apply_timegrouper_with_nat_apply_squeeze  s     , &w/ZZ_ zzQ))"''2::a??? H''(:#F((67C G Y|,-RZ5E5EFS/
;

 	c8, GFs    C--
C;c                 0   [         R                  " S5        UnUS   R                  S SS9nUS   R                  S5      n[        R                  " X45        US/   R                  S SS9nUS/   R                  S5      n[        R
                  " XV5        g )Nnumbar   c                 .    [         R                  " U 5      $ r   rQ   nanmeanvaluesrA   s     r!   r   ITestGroupBy.test_groupby_agg_numba_timegrouper_with_nat.<locals>.<lambda>      "**V"4r#   )enginemeanc                 .    [         R                  " U 5      $ r   r  r  s     r!   r   r    r  r#   )r   importorskip	aggregaterU   r   rV   )rX   r0   r/   r   r\   	result_dfexpected_dfs          r!   +test_groupby_agg_numba_timegrouper_with_nat7TestGroupBy.test_groupby_agg_numba_timegrouper_with_nat  s     	G$ /J))4W * 
 j>++F3
v0
|$..4W / 
	 *&008
i5r#   r  N)$__name__
__module____qualname____firstlineno__ra   r   markparametrizerr   r   r   r   r   r   r   r   r  r  r,  r3  r:  rA  rG  rU  r]  ra  rn  ry  r  r  r  r  r  
single_cpur  __static_attributes__r  r#   r!   r2   r2   K   s    45l [[]T5M:  ; @s4j [[V%@A82 B82t@8D
*
(?4*=0~<01d;0z611)-1 GD1&0(1.".(-8 [[6 6r#   r2   )__doc__r   r   numpyrQ   r   rZ  pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingrU   pandas.core.groupby.grouperr   pandas.core.groupby.opsr   fixturer"   r0   r2   r  r#   r!   <module>r     ss   
    	 	 	  / .  ,  ,x6 x6r#   