o
    i                     @   s  d dl mZm Z  d dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZ d dlmZ d dlmZ d dlmZ dd Zd	d
 Zdd Zejjde	g dg ddg dfe	g dg ddd dgfe	ddgidgfe	g deddddgfe	g dg ddg dfe	edg dg ddg d fe	g dg d!gg d d"ddgfgg d#d$d%d& Zd'd( Zd)d* Zejd+d,d- d.d- d/d- d0d- gd1d2 Zd3d4 Z d5d6 Z!d7d8 Z"d9d: Z#d;d< Z$d=d> Z%d?d@ Z&dAdB Z'dCdD Z(dEdF Z)dGdH Z*ejdIdJdKgdLdM Z+dNdO Z,dPdQ Z-dRdS Z.dTdU Z/dVdW Z0ejdXdJdKgdYdZ Z1d[d\ Z2d]d^ Z3d_d` Z4dadb Z5dcdd Z6dedf Z7dgdh Z8didj Z9dkdl Z:dmdn Z;dodp Z<dqdr Z=ejdse > e >  e > ? gdtdu Z@dvdw ZAejdxdKdJgdydz ZBd{d| ZCejd}eDed~eEd dejFddddeGg dgdd ZHejddd- d dgddggfdd- d dhddhgfdd- ddgfdd- d dddddgfdd- d d iddigd diddiggfgdd ZIdd ZJejddd- dd- gdd ZKdd ZLejddd- dd- gejdIdJdKgdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSejddJdKgdd ZTejddKe	g dg dge
g deUdd"gdJeddgejGddgddgddggdd ZVdd ZWdd ZXdd ZYejddJdKgdd ZZdd Z[ejdg dg dĢgddƄ Z\ejdg dg dȢgg dg dɢgg dʢg dˢggdd̈́ Z]ejddJgi fg ddJifgddф Z^ejdddgddՄ Z_ejdddd- fddd- fddddgdd߄ Z`dd ZadS )    )datedatetime)StringION)	DataFrameIndex
MultiIndexSeriesbdate_range)
Int64Index)get_groupby_method_argsc                  C   s   d} t jt| d g dddggd}|d}||jj }||jjdd }t	
|| t jt| d g dd	}tg d
tdd}tg d|d}|jddddd }t	|| d S )Na+  2011.05.16,00:00,1.40893
2011.05.16,01:00,1.40760
2011.05.16,02:00,1.40750
2011.05.16,03:00,1.40649
2011.05.17,02:00,1.40893
2011.05.17,03:00,1.40760
2011.05.17,04:00,1.40750
2011.05.17,05:00,1.40649
2011.05.18,02:00,1.40893
2011.05.18,03:00,1.40760
2011.05.18,04:00,1.40750
2011.05.18,05:00,1.40649)r   timevaluer   r   )headernamesparse_dates	date_timec                 S      |   S Nidxmaxx r   Z/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_apply.py<lambda>0       z#test_apply_issues.<locals>.<lambda>)r   r   )z
2011.05.16z
2011.05.17z
2011.05.18dtypename)z00:0002:00r   indexF
group_keysc                 S   s   | d | d    S )Nr   r   r   r   r   r   r   r   ;       )pdread_csvr   	set_indexgroupbyr!   r   r   applytmassert_frame_equalr   objectr   assert_series_equal)sdfexpectedresultexp_idxr   r   r   test_apply_issues   s(   

r3   c                     s   t g dg ddddgd tj jdd   jdd  gddd	gd
}  jdd  jD dd fdd}t||  d S )Nar5   br6   r5         ?       @      @      @g      @keydatar=   r>   columns   float64r,   axiskeysc                 S      g | ]}t |qS r   str.0r   r   r   r   
<listcomp>H   r$   z&test_apply_trivial.<locals>.<listcomp>rD   c                    s    j dd  S NrA   ilocr   r/   r   r   r   I       z$test_apply_trivial.<locals>.<lambda>)	r   r%   concatrO   r(   dtypesr)   r*   r+   r0   r1   r   rP   r   test_apply_trivial@   s   ,
rU   c                     sp   t g dg ddddgd tj  gddd	gd
}  jdd  jD ddd fdd}t||  d S )Nr4   r7   r<   r=   r>   r?   rA   rB   r,   rC   c                 S   rF   r   rG   rI   r   r   r   rK   V   r$   z+test_apply_trivial_fail.<locals>.<listcomp>T)rD   r#   c                    s    S r   r   r   rP   r   r   r   W       z)test_apply_trivial_fail.<locals>.<lambda>)r   r%   rR   r(   rS   r)   r*   r+   rT   r   rP   r   test_apply_trivial_failO   s   
rW   zdf, group_names)rA   rA   rA         )r5   r5   r5   r6   cr5   r6   rA   rX   rY   r   r   rA   rA   )r   rA   r   rA   rA   r5   )rA   rA   rA   rX   rX   rA   rA   rX      rX   rA   rX   rY   rA   rX   rY   )            r^   	   )r5   two
aaabbbcccc)
rY   r`   rY   rb   ra   rX   rA   rd   ra   r`   )
r`   r   rX   rX   rX   rc   r^   rb   rX   r^   )r5   BCr5   r6   rZ   )rX   rX   rY   r?   )GH2936zGH7739 & GH10519GH10519GH2656GH12155GH20084GH21417)idsc                    s   g   fdd} fdd} fdd} fdd} fd	d
}|||||fD ]} d d = | j ddd|  |ks>J q'd S )Nc                    s     | j |  S r   )appendr   copygroupr   r   r   f_copy   s   z/test_group_apply_once_per_group.<locals>.f_copyc                    s     | j | S r   rq   r   rs   ru   r   r   f_nocopy      z1test_group_apply_once_per_group.<locals>.f_nocopyc                    s     | j dS Nr   rw   rs   ru   r   r   f_scalar   ry   z1test_group_apply_once_per_group.<locals>.f_scalarc                    s     | j d S r   rw   rs   ru   r   r   f_none   ry   z/test_group_apply_once_per_group.<locals>.f_nonec                    s     | j tdgdgdS )NrA   r[   )rq   r   r   rs   ru   r   r   f_constant_df   s   z6test_group_apply_once_per_group.<locals>.f_constant_dfr5   Fr"   )r(   r)   )r/   group_namesrv   rx   r{   r|   r}   funcr   ru   r   test_group_apply_once_per_group]   s   '
r   c                 C   sZ   d}t g dg ddg dd}|jdddd	d
  |  jd}||ks+J d S )NrX   )r   r   r   r   rA   rA   rA   rA   )02468101214)group_by_columntest_columnr    r   Fr"   c                 S   s   t dS )Nfunction_called)printrP   r   r   r   r      r   z2test_group_apply_once_per_group2.<locals>.<lambda>r   )r   r(   r)   
readouterroutcount)capsysr0   r/   r1   r   r   r    test_group_apply_once_per_group2   s   r   c                  C   s^   t g dtdd} dd }dd }| jdd	d
|}| jdd	d
|}t|| d S )N)r   r   rA   rY   )Ar6   c                 S      | S r   r   rs   r   r   r   slow      z,test_apply_fast_slow_identical.<locals>.slowc                 S   r   r   rr   rs   r   r   r   fast   s   z,test_apply_fast_slow_identical.<locals>.fastr   Fr"   )r   ranger(   r)   r*   r+   )r/   r   r   fast_dfslow_dfr   r   r   test_apply_fast_slow_identical   s   r   r   c                 C   r   r   r   r   r   r   r   r      rV   r   c                 C   s   | d d  S r   r   r   r   r   r   r          c                 C      | j ddS )NFdeepr   r   r   r   r   r      r   c                 C   r   )NTr   r   r   r   r   r   r      r   c                 C   s@   t g dg dg dd}|jddd| }t|| d S )NrA   rX   rX   rX   rA   rX   rY   r`   )ra   rb   rc   r^   )gr5   r6   r   Fr"   r   r(   r)   r*   r+   )r   r/   r1   r   r   r   5test_groupby_apply_identity_maybecopy_index_identical   s   r   c                  C   s   t tjdg dd} | jdd ddj}| j}t|| t dg d	i} | jd
 | d< | 	d
  j}| j	ddd
 j}t|| d S )Nrb   onere   re   threer   re   foo1foo2c                 S   r   r   r   r   r   r   r   r      rV   z-test_apply_with_mixed_dtype.<locals>.<lambda>rA   rL   c1)rA   rX   rb   rb   r^   r9   c2Fas_index)r   nprandomrandnr)   rS   r*   r-   r   r(   meanreset_indexr   )r/   r1   r0   result1result2r   r   r   test_apply_with_mixed_dtype   s   
r   c                  C   s6  t g dg dtdd} | jddd}| jddd}|d	j}|d	j}tg d
}t|| t|| |dd j}|dd j}t	
g d}g d}	t	j
|	dd gd}
t||
 t|| ttd}t dd	gd	dgddgddgd	dgg|d} | jdddddd j}t|| d S )N)r6   r6   r5   rZ   r5   r6   )rA   rX   rA   rA   rY   rA   rb   )item_iduser_idr   r   Tr   FrX   )r   rA   rX   r`   c                 S   
   |  dS NrX   headr   r   r   r   r        
 z-test_groupby_as_index_apply.<locals>.<lambda>c                 S   r   r   r   r   r   r   r   r     r   ))r   r   )r   rX   rA   rA   rX   r`   )rA   r   rA   rX   )rX   rA   )rY   r`   ru   abcderA   rY   r`   ra   r    r   )r   r#   c                 S   r   r   r   r   r   r   r   r     rV   )r   r   r(   r   r!   r   r*   assert_index_equalr)   r   from_tupleslist)r/   g_asg_not_asres_as
res_not_asexpres_as_applyres_not_as_applyexp_not_as_applytpexp_as_applyindresr   r   r   test_groupby_as_index_apply   s0   *r   c                 C   sx   |  ddg}dd }dd }dd }||}|jjd	ks J ||}|jjd	ks-J ||}|jjd
ks:J d S )Nr   rg   c                 S   s   |   }d|j_|S Nstat)describer!   r   rt   r1   r   r   r   desc#  s   z.test_apply_concat_preserve_names.<locals>.descc                 S   s$   |   }d|j_|d t|  }|S r   )r   r!   r   lenr   r   r   r   desc2(  s   z/test_apply_concat_preserve_names.<locals>.desc2c                 S   s0   |   }dt| d|j_|d t|  }|S )Nstat_d)r   r   r!   r   r   r   r   r   desc3/  s   z/test_apply_concat_preserve_names.<locals>.desc3)r   rg   r   )r   rg   N)r(   r)   r!   r   )three_groupgroupedr   r   r   r1   r   result3r   r   r    test_apply_concat_preserve_names   s   



r   c                  C   st   dd } t ddd}ttjd|d}|jdd d	d
}|| }t|ts)J t	|dr0J t
|j|j d S )Nc                 S   sN   t jdd t | }W d    n1 sw   Y  t| | |   |dS )Nignore)invalid)r   demeanedlogged)r   errstatelogr   r   )piecer   r   r   r   fD  s   z%test_apply_series_to_frame.<locals>.fz1/1/2000d   )periodsr    c                 S      | j S r   monthr   r   r   r   r   N      z,test_apply_series_to_frame.<locals>.<lambda>Fr"   r   )r	   r   r   r   r   r(   r)   
isinstancer   hasattrr*   r   r!   )r   drtsr   r1   r   r   r   test_apply_series_to_frameC  s   
r   c                 C   s4   |  ddgd t}|jjd d dksJ d S )Nr   rg   rh   rX   r   rg   )r(   r)   r   r!   r   r/   r1   r   r   r    test_apply_series_yield_constantV  s   r   c                 C   sl   |  ddgt}t|tsJ |jd u sJ |  ddgddg t}t|ts-J |jd u s4J d S )Nr   rg   rh   D)r(   r)   r   r   r   r   r   r   r   r   test_apply_frame_yield_constant[  s   r   c                 C   sH   |  ddg}|t}| d }t|j|j t|j|j d S )Nr   rg   rh   )	r(   r)   r   r   r*   r   r!   assert_numpy_array_equalvaluesr/   r   r1   r0   r   r   r   test_apply_frame_to_seriesf  s
   
r   c                 C   s^   | j ddgdd}|t}| jdtjidjdd}t	|j
|j
 t|j|j d S )Nr   rg   Fr   rh   r?   r   )r(   r)   r   r   renamer   nandropr*   r   r!   r   r   r   r   r   r   )test_apply_frame_not_as_index_column_namen  s
   
r   c                     s   dd }  fdd}t tjdddtjdddtjdd  d	| } d	d
 |}tj||dd |j	d
ksCJ d S )Nc                 S   s    |  dd   jd d S )Nrg   rh   rX   )r(   sumsort_valuesrO   rs   r   r   r   transy  s    z-test_apply_frame_concat_series.<locals>.transc                    s,   |   | jd }|  jd d S )Nrg   rX   )r(   reindexr!   r  r  rO   )rt   r   rP   r   r   trans2|  s   z.test_apply_frame_concat_series.<locals>.trans2r   ra     r   rg   rh   r   rh   F)check_names)
r   r   r   randintr   r(   r)   r*   r-   r   )r  r  r1   r   r   rP   r   test_apply_frame_concat_seriesx  s   
r
  c                 C   s>   | j dd dd}|dd }|dd }t|| d S )Nc                 S   r   r   r   r   r   r   r   r     r   z&test_apply_transform.<locals>.<lambda>Fr"   c                 S      | d S r   r   r   r   r   r   r     r   c                 S   r  r   r   r   r   r   r   r     r   )r(   r)   	transformr*   r-   )r   r   r1   r0   r   r   r   test_apply_transform  s   r  c                 C   sP   |  dd dd g}dd }||}|D ]\}}t|j| || qd S )Nc                 S   r   r   yearr   r   r   r   r     r   z,test_apply_multikey_corner.<locals>.<lambda>c                 S   r   r   r   r   r   r   r   r     r   c                 S   s   |  ddd  S )Nr   r  rs   r   r   r   r     s   z%test_apply_multikey_corner.<locals>.f)r(   r)   r*   r+   loc)tsframer   r   r1   r=   rt   r   r   r   test_apply_multikey_corner  s   
r  r#   TFc                 C   sn   t g dtdd}|jd| ddd }|g d}| r/tjg d	|jgdd gd
|_t	|| d S )N)	rA   rA   rA   rX   rX   rX   rY   rY   rY   rd   )r=   r   r=   r"   c                 S   s   | j d d S r   rN   r   r   r   r   r     rQ   z'test_apply_chunk_view.<locals>.<lambda>)r   rA   rY   r`   rb   rc   )rA   rA   rX   rX   rY   rY   ru   )
r   r   r(   r)   taker   from_arraysr!   r*   r+   )r#   r/   r1   r0   r   r   r   test_apply_chunk_view  s   r  c                  C   s@   t g dg dtdddd} | ddg}|dd	  d S )
N)
rA   rA   rA   rA   rA   rA   rX   rX   rX   rX   )
r   r   r   rA   rA   rA   r   r   rA   rA   rd   )r   name2r   r   r  c                 S      | j dddS )Nr   Tinplacer  r   r   r   r   r     rQ   z4test_apply_no_name_column_conflict.<locals>.<lambda>)r   r   r(   r)   )r/   r   r   r   r   "test_apply_no_name_column_conflict  s   
	r  c                  C   sp   t g dtg ddtddd} dd }| jd	d
d|}|  }tg dd|d< t|| d S )Nr8   r8   r8   r9   r9   r9   ri   rX   r8         @r   rZ   vc                 S   ,   | d }||   | |    | d< | S Nr!  v2minmaxrt   r!  r   r   r   r         z#test_apply_typecast_fail.<locals>.fr   Fr"           g      ?rA   r$  )	r   r   tilearanger(   r)   rr   r*   r+   )r/   r   r1   r0   r   r   r   test_apply_typecast_fail  s   
r.  c                  C   s   t g dg dg} tg dtg ddtddd| d	}d
d }|jddd|}| }tg dd|d< t	
|| d S )N)r   r   r   rA   rA   rA   r_   r  ri   rX   r8   r  r   r    c                 S   r"  r#  r%  r(  r   r   r   r     r)  z%test_apply_multiindex_fail.<locals>.fr   Fr"   r*  r$  )r   r  r   r   r,  r-  r(   r)   rr   r*   r+   )r!   r/   r   r1   r0   r   r   r   test_apply_multiindex_fail  s   
	r/  c                 C   s4   | j dd dddd }| d }t|| d S )Nc                 S   r   r   r  r   r   r   r   r     r   z#test_apply_corner.<locals>.<lambda>Fr"   c                 S   r  r   r   r   r   r   r   r     r   rX   )r(   r)   r*   r+   )r  r1   r0   r   r   r   test_apply_corner  s   r0  c                  C   s\   t g dg dg dd} dd }dd }| d	|}| d	|}t|| d S )
N)r   r      i,  )r5   r6   rZ   rZ   r   )id_fieldcategoryr   c                 S   s$   | j d dkr|  S | | jdk S Nr   rA   rZ   )shaperr   r3  r   r   r   r   filt1  s   z&test_apply_without_copy.<locals>.filt1c                 S   s    | j d dkr	| S | | jdk S r4  )r5  r3  r   r   r   r   filt2  s   z&test_apply_without_copy.<locals>.filt2r2  r   )r>   r6  r7  r0   r1   r   r   r   test_apply_without_copy  s   r8  test_seriesc                 C   s   t ddgddgddggddgg dd}| r9|dd }|jdd	d
dd }| }| }t|| d S |jdd	ddd }|d}|d}t|| d S )Nr   poXY)rA   rX   rX   r@   r!   r   F)levelr#   c                 S   r   r   r   r   r   r   r   r     rV   z<test_apply_with_duplicated_non_sorted_axis.<locals>.<lambda>r"   c                 S   r   r   r   r   r   r   r   r     rV   )	r   r'   r(   r)   
sort_indexr*   r-   r  r+   )r9  r/   serr1   r0   r   r   r   *test_apply_with_duplicated_non_sorted_axis  s    

rB  c                  C   sf   g d} g d}t ddgd | d|d}t| |dd	}d
d }|jdddj|}t|| d S )Nr   rA   rA   rX   rX   Group1Group2rX   rt   r   r    r   r!   r   c                 S   s"   |  t| j | j d S rM   )r  r   r-  r!   r&  r'  r   r   r   r   reindex_helper/  s   "z1test_apply_reindex_values.<locals>.reindex_helperrt   Fr"   )r   r   r(   r   r)   r*   r-   )r   indicesr/   r0   rH  r1   r   r   r   test_apply_reindex_values%  s   rJ  c                  C   sj   d} t jjdd| d}t|t j| g d| d  d}|jdd	d
}dd }||}d|v s3J d S )Nr  r   r   )size)foobarbazquxr`   )r=   value1value2r=   Fr"   c                 S   s   | d d | d< | S )NrP  rX   value3r   r   r   r   r   r   F  s   z"test_apply_corner_cases.<locals>.frR  )r   r   r	  r   r   r(   r)   )Nlabelsr/   r   r   r1   r   r   r   test_apply_corner_cases7  s   

rV  c                  C   s:  t ddgdgd ddgd} | dgdd	 }t| j| _| dgd
d	 }t|d |d  t g dg dtdgd d} dd }| d|d }| j	}| j
|_t|| dd }t g dg dg dg dd}| }t|j|_|d|j}|d|j}t|| d S )NrA   rX   z
2017-03-02rL  inf)NumberDateStrrX  c                 S   
   | j d S rz   rN   r   r   r   r   r   X  r   z;test_apply_numeric_coercion_when_datetime.<locals>.<lambda>c                 S   r[  rz   rN   r   r   r   r   r   Z  r   rZ  )
         )rL  3r   z12:31:22rY   )r   rg   Tc                 S   s   | j d dg S )Nr   rg   rN   rS  r   r   r   get_Bb  s   z8test_apply_numeric_coercion_when_datetime.<locals>.get_Br   rg   c                 S   s   t g dtd}dt| jv rt| | jdk jjd |d< dt| jv rCt| | jdk jjd |d< t| | jdk jjd |d< |S )	N)p1p2useTime)r!   r   step1r   rb  step2rc  rd  )r   r,   r   StaterH   Machiner   oTime)toolr   r   r   r   predictionsk  s   z>test_apply_numeric_coercion_when_datetime.<locals>.predictions)rg   rg   r   r   )re  rf  re  rf  ) z2016-09-19 05:24:33rl  z2016-09-19 23:59:04)2336L36Rro  )Keyrg  ri  rh  rp  )r   r(   r)   r%   to_datetimerY  r*   r-   	Timestamprg   r   r!   rr   ri  rb  )r/   r0   r1   ra  rk  df1df2r   r   r   )test_apply_numeric_coercion_when_datetimeN  s8   	ru  c                  C   s   t g dtdgd d} | j| j | d< | ddd }t g dtd	d
gd tdgd dd}t	|| d S )Nr  z2017-02-01 00:00:00rY   )clientidr   time_delta_zerorv  c                 S   s   t | j | j dS )N)clientid_ager   )r   rw  r&  r   )ddfr   r   r   r     s    z?test_apply_aggregating_timedelta_and_datetime.<locals>.<lambda>r   r   )rv  rx  r   )
r   r   
datetime64r   r(   r)   timedelta64r'   r*   r+   r/   r1   r0   r   r   r   -test_apply_aggregating_timedelta_and_datetime  s$   
r}  c                  C   s~   ddgddgddgddgddgg} t | d	d
gtddd}|d	 }t g dg dd}|jd	dd t|| d S )Nr   r\  rg   r]  r^  rh   (   2   NameValuez
2020-09-01z
2020-09-05r>  r  )r\  r  Z   )r  r  Tr  )r   r%   
date_ranger(   r  r'   r*   r+   )r>   r/   r1   r0   r   r   r    test_apply_groupby_datetimeindex  s   "r  c                  C   s   t ddd tdD d} dd }dd	 }| jd
gd|}t ddidgd}d
|j_| jd
gd|}t tddddddgd}d
|j_t|| t|| d S )NrA   c                 S   s   g | ]}t  qS r   )r   now)rJ   nnr   r   r   rK     r$   z'test_time_field_bug.<locals>.<listcomp>r\  r[   c                 S   s   t ddiS )NrZ   rX   r   batchr   r   r   func_with_no_date  s   z.test_time_field_bug.<locals>.func_with_no_datec                 S   s   t tdddddS )N  rA   rX   r6   rZ   )r   r   r  r   r   r   func_with_date     z+test_time_field_bug.<locals>.func_with_dater5   byrZ   rX   r    r  r  )	r   r   r(   r)   r!   r   r   r*   r+   )r/   r  r  dfg_no_conversiondfg_no_conversion_expecteddfg_conversiondfg_conversion_expectedr   r   r   test_time_field_bug  s   r  c                     s`   t g dg dg dg dd} | ddg} | jddgdd	}d
d  | fdd d S )N)r5   r5   r5   r6   r6   r6   r5   r5   r5   r6   r6   r6   )rZ   rZ   r   r   r   erZ   rZ   r   r   r   r  )g?rX   rY   r`   ra   rb   rX   r`   rb   r^   rA   rX   )gffffff@r^   rd   r\        r^   rc   rb   ra   r`   rY   )group1group2weightr   r  r  T)r?  sortc                 S   s   t | | d}|S )NrY   )r   arrayrepeat)r   r  r   r   r   r   noddy  s   z7test_gb_apply_list_of_unequal_len_arrays.<locals>.noddyc                    s    | j | jS r   )r   r  r   r  r   r   r     rQ   z:test_gb_apply_list_of_unequal_len_arrays.<locals>.<lambda>)r   r'   r(   r)   )r/   
df_groupedr   r  r   (test_gb_apply_list_of_unequal_len_arrays  s   
r  c                  C   sD   t g dg dd} dd }| d|}t  }t|| d S )Nr]   )r^   rc   r`   ra   )groupsrandom_varsc                 S   s   d S r   r   r   r   r   r   	test_func  r   z.test_groupby_apply_all_none.<locals>.test_funcr  r   )test_dfr  r1   r0   r   r   r   test_groupby_apply_all_none  s
   r  c            	      C   s   t g dg dd} t g dg dd}dd }| d|}|d|}tjddgd	d
ggdd gd}tjd
d
gddggdd gd}t ddgd	d
gd|d}t d
d
gddgd|d}t|| t|| d S )N)rA   rA   rA   rX   )r   rA   rX   rY   )r  varsr   c                 S   s    | j d dk r	d S | jddg S )Nr   rX   r  )r5  rO   r   r   r   r   r    s   z0test_groupby_apply_none_first.<locals>.test_funcr  rA   r   rX   ru   rY   r    )r   r(   r)   r   r  r*   r+   )	test_df1test_df2r  r   r   index1index2	expected1	expected2r   r   r   test_groupby_apply_none_first  s   r  c                  C   sl   t ddgddgd} | d}|dd }tdgd	tjddgdggdd gd
dd}t|| d S )Nr   rA   filledempty)r   rt   rt   c                 S   s   | | j dk d S )NrA   r   )r   rs   r   r   r   r   	      z7test_groupby_apply_return_empty_chunk.<locals>.<lambda>r   ru   )r   r!   )	r   r(   r)   r   r   from_productr   r*   r-   )r/   r  r1   r0   r   r   r   %test_groupby_apply_return_empty_chunk  s   
r  c                  C   sx   t d g dg dd} | jddd}|dd	 }t g d
g dd}t|| |dd	 }t|| d S )Nza a br\   r`   rb   ra   r  r   Fr"   c                 S      | |    S r   r  r   r   r   r   r     r   z-test_apply_with_mixed_types.<locals>.<lambda>)gUUUUUU?gUUUUUU?rA   )皙?g333333?r8   rg   rh   c                 S   r  r   r  r   r   r   r   r     r   )r   splitr(   r  r*   r+   r)   )r/   r   r1   r0   r   r   r   test_apply_with_mixed_types  s   r  c                  C   sh   t dddgitddgd} | ddd }ttdgtdggtddgddd}t|| d S )Nr5   rA   rX   r    c                 S   r   r   r    rS  r   r   r   r   $  r   z*test_func_returns_object.<locals>.<lambda>r   )r   r
   r(   r)   r   r*   r-   r|  r   r   r   test_func_returns_object!  s    r  group_column_dtlikec                 C   sT   t dg| gd}|ddd }t dgtdgdddd	gd
}t|| d S )NrL  r[   r5   c                 S   s   t dgdgdS )Nspam*   r    r  r   r   r   r   r   7      z+test_apply_datetime_issue.<locals>.<lambda>r  r,   r   r  r?   r   r(   r)   r   r*   r+   )r  r/   r1   r0   r   r   r   test_apply_datetime_issue,  s   
r  c               	   C   s   t tdtdtdtdtddddddddddddddd} dd }| d	|d
 }tdgtjdgd	dd
d}t|| d S )Nz2015-02-24 00:00:00)r   rA   rX   rY   r`   zsome UA stringzanother UA string17661101)day	userAgentuserIdc                 S   s   t dd |  D S )Nc                 S   s    i | ]\}}||  jd  qS )r   )value_countsr!   )rJ   rZ   r.   r   r   r   
<dictcomp>\  s     zYtest_apply_series_return_dataframe_groups.<locals>.most_common_values.<locals>.<dictcomp>)r   itemsrP   r   r   r   most_common_values[  r  zEtest_apply_series_return_dataframe_groups.<locals>.most_common_valuesr  r  z
2015-02-24r  rG  )	r   r%   rr  r(   r)   r   DatetimeIndexr*   r-   )tdfr  r1   r0   r   r   r   )test_apply_series_return_dataframe_groups?  s6   r  r3  c                 C   s   ddgd }| rt j|g dd}t jddgg ddd}ntddgdd}ttd	|ttd	ttd	d
	ddg}|
ddd }tddgddgd|d}t|| |jjddgksfJ d S )NrA   rX   ra   r\   )
categoriesrg   )r  r   r  r\  )r   rg   rh   r   r   c                 S   r   r   r  r   r   r   r   r   q  r   z-test_apply_multi_level_name.<locals>.<lambda>r]     )rh   r   r    )r%   CategoricalCategoricalIndexr   r   r   r-  r   r   r'   r(   r)   r*   r+   r!   r   )r3  r6   expected_indexr/   r1   r0   r   r   r   test_apply_multi_level_namee  s   "
r  c               	   C   s   t jtdddddddftdddddd	d
ftdddddddftdddddddfgg dd} | ddd j}tt	dt
t
tjt
gg dd}t|| d S )Ni  rA   reddarkr   r  greenstormyrX   9i  bluebrightrY   r   i  calmr`   potato)observationcolormood	intensityscorer?   r  c                 S   r[  rz   rN   rS  r   r   r   r     r   z;test_groupby_apply_datetime_result_dtypes.<locals>.<lambda>zdatetime64[ns]r    )r   from_recordsr%   rr  r(   r)   rS   r   r   r   r,   int64r*   r-   )r>   r1   r0   r   r   r   )test_groupby_apply_datetime_result_dtypesw  s   	r  r!   abcrY   2020r   )r   freq))r5   r   )r5   rA   )r6   r   c                 C   sB   t g dg dd| d}|jddddd	 }t|| d S )
NrA   rA   rX   )r   rA   r   rF  r    rt   Fr"   c                 S   r   r   r   r   r   r   r   r     rV   z8test_apply_index_has_complex_internals.<locals>.<lambda>r   )r!   r/   r1   r   r   r   &test_apply_index_has_complex_internals  s   r  zfunction, expected_valuesc                 C   
   | j  S r   )r!   to_listr   r   r   r   r     r   c                 C      t | j S r   )setr!   r  r   r   r   r   r     rQ   c                 C   r  r   )tupler!   r  r   r   r   r   r     rQ   )r   rA   rX   rY   c                 C      dd t | j D S )Nc                 S   s   i | ]\}}||qS r   r   rJ   nir   r   r   r        z<lambda>.<locals>.<dictcomp>	enumerater!   r  r   r   r   r   r         c                 C   r  )Nc                 S   s   g | ]\}}||iqS r   r   r  r   r   r   rK     r  z<lambda>.<locals>.<listcomp>r  r   r   r   r   r     r  c                 C   sJ   t g ddgd}|d| }t|tddgddd}t|| d S )N)r   r   rg   rg   r  r?   r   rg   r  r    r   r(   r)   r   r   r*   r-   )functionexpected_valuesr/   r1   r0   r   r   r   1test_apply_function_returns_non_pandas_non_scalar  s   r  c                  C   sl   dd } t g ddddtjgd}|d| }td	d
gdgtjggtg dddd}t|| d S )Nc                 S   s   | d j  S )Nrg   )r   flattenrs   r   r   r   fct  s   z4test_apply_function_returns_numpy_array.<locals>.fct)r5   r5   r6   nonerA   rX   rY   r   r   r8   r9   r:   )r5   r6   r  r  r    )	r   r   r   r(   r)   r   r   r*   r-   )r  r/   r1   r0   r   r   r   'test_apply_function_returns_numpy_array  s    r   r  c                 C   r   r   r    grr   r   r   r     r   c                 C   s   | j d d S rM   r    r  r   r   r   r     rQ   c                 C   sh   t g ddgd}|d| }ttg dtg dtddggtg ddd	d
}t|| d S )N)
rA   rX   rX   rX   rA   rX   rY   rA   rY   rA   idr?   )r   r`   rc   rd   )rA   rX   rY   ra   rb   r^   r\   r  r    r  )r  r/   r1   r0   r   r   r    test_apply_function_index_return  s    r  c                  C   s   t g dg dd} tjtdd | jdddd	d
 }W d    n1 s)w   Y  t g dg dd}t|| d S )Nr   )rA   rX   r`   r`   ra   rb   r   zSelect only validmatchr   Fr   c                 S   r   r   )r   r   r   r   r   r     r   zAtest_apply_function_with_indexing_return_column.<locals>.<lambda>)r   r   re   )r:   r;   r;   )r   r*   assert_produces_warningFutureWarningr(   r)   r+   r|  r   r   r   /test_apply_function_with_indexing_return_column  s   r	  udfc                 C   r   r   r   r   r   r   r   r     r   c                 C   s   |   dd S )Nc                 S   s   | d S rM   r   )yr   r   r   r     r   z<lambda>.<locals>.<lambda>)rr   r   r   r   r   r   r     r  c                 C   s   t ddgddgd}|jd| d|}|jj|j| d|}| r5|jjdks+J |jjdks3J d S |jjdks=J |jjdksEJ d S )Nr5   r6   rA   rX   r   r   r"   )r   r(   r)   rg   r   r!   nlevels)r#   r
  r/   	df_resultseries_resultr   r   r   test_apply_result_type  s   	r  c                  C   sV   t g dg dd} | jddddd }| jdddd	d }t|| d S )
N)rX   rA   rX   r\   r   r   Fr"   c                 S   r   r   r   r   r   r   r   r     rV   z4test_result_order_group_keys_false.<locals>.<lambda>c                 S   r   r   r   r   r   r   r   r     r   r   r|  r   r   r   "test_result_order_group_keys_false  s   r  c                  C   s  t g dg dd} d}tjt|d | ddd }W d    n1 s)w   Y  t||  tjt|d | dd	 d
d }W d    n1 sRw   Y  t|| d	  tjt|d | d	 | d dd }W d    n1 sw   Y  t|| d	  d S )N)r   rA   rA   r\   r   z-Not prepending group keys to the result indexr  r   c                 S   r   r   r   r   r   r   r   r     rV   z5test_groupby_apply_group_keys_warns.<locals>.<lambda>rg   c                 S   r   r   r   r   r   r   r   r     rV   c                 S   r   r   r   r   r   r   r   r     rV   )r   r*   r  r  r(   r)   r+   r-   )r/   msgr1   r   r   r   #test_groupby_apply_group_keys_warns  s   r  c                  C   s   dgd dgd  dgd  } t | }t j| dd}tttdd td|d	}tttdd td|d	}|jd
dddd }|jd
dddd }t|| d S )Nz
2001-01-01rX   z
2001-01-02z
2001-01-03UTC)tzrY   rb   )r   r  tr   Fr"   c                 S      | ddg   S Nr   r  r   rP   r   r   r   r     r  z1test_apply_with_timezones_aware.<locals>.<lambda>c                 S   r  r  r   rP   r   r   r   r     r  )	r%   r  r   r   r   r(   r)   r*   r+   )datesindex_no_tzindex_tzrs  rt  r   r   r   r   r   test_apply_with_timezones_aware  s   
  r  c                 C   s   | dkrt nd }tg dg dg dd}tddgdd	gd
dgdtddgddd}|jdd}|t}t|| |jdd}t| |}tj	|dd t
|| | }W d    n1 saw   Y  |t}t|| d S )Nmad)c   r  r  X   r  r  )rA   rX   rY   r`   ra   rb   )r\  r]  r^  r~  r  <   ri   i  i)     rb      r  r  r  r5   r  r    r  zThe 'mad' method is deprecatedr  )r  r   r   r(   r)   r  r*   r+   r   r  getattr)reduction_funcwarnr/   r0   grpr1   args_r   r   r   ;test_apply_is_unchanged_when_other_methods_are_called_first  s*   


r(  c               	   C   s   t g dtdddtdddtdddtdddgg ddtg dd	d
d} | ddg}|dd }| jg d }| }t|g d |_	|j
d	d}t|| |j	jd D ]
}t|tu sgJ q]d S )N)r5   r5   r5   r6   i  rA   r\  rX   r   r  )r   e   f   g   idxr  r    r   rg   c                 S   r   rM   r   r   r   r   r   r   K  r   zRtest_apply_with_date_in_multiindex_does_not_convert_to_timestamp.<locals>.<lambda>)r   rX   rY   )r   rg   r,  r?   )r   r   r   r(   r)   rO   r   r   
from_framer!   r   r*   r+   levelstype)r/   r%  r1   r0   valr   r   r   @test_apply_with_date_in_multiindex_does_not_convert_to_timestamp9  s*   




r1  c                  C   sz   t tjddgtddgddggd} | jjddd	d
d }| jddd	dd }t	||j t	||  d S )Nrb   r`   r   rg   rA   rX   r?   r   rD   r?  c                 S   s   | j dddS )Nr   r2  	droplevelr   r   r   r   r   c  rQ   zDtest_apply_by_cols_equals_apply_by_rows_transposed.<locals>.<lambda>c                 S   r  )NrA   r   r2  r3  r   r   r   r   r   e  rQ   )
r   r   r   r   r  r`  r(   r)   r*   r+   )r/   by_rowsby_colsr   r   r   2test_apply_by_cols_equals_apply_by_rows_transposedW  s   r7  dropnac                 C   sl   t g ddtjtjddgdtdd}|jd| dd	d
d }| r'| n|jg d }t	|| d S )NrA   rX   rY   r`   ra   r5   r6   )colrt   xxyxzr    rt   F)r8  r#   c                 S   r   r   r   r   r   r   r   r   v  rV   z5test_apply_dropna_with_indexed_same.<locals>.<lambda>)r   rY   rA   rX   r`   )
r   r   r   r   r(   r)   r8  rO   r*   r+   )r8  r/   r1   r0   r   r   r   #test_apply_dropna_with_indexed_samek  s   r<  zas_index, expected)rA   rA   rA   )rX   rX   rA   )r5   r6   N)r   r   )rX   rX   r6   ru   r    c                 C   sH   t g dg dg dd}|jddg| ddd }t|| d S )	NrC  )rA   rA   rA   rA   ri   r5   r6   r   c                 S   s   dS rM   r   r   r   r   r   r     rV   z5test_apply_as_index_constant_lambda.<locals>.<lambda>)r   r(   r)   r*   assert_equal)r   r0   r/   r1   r   r   r   #test_apply_as_index_constant_lambda{  s   r>  c                  C   sn   t g dg dg ddtdd} | ddd	 }ttd
dtjg ddd gddd}t|| d S )Nr9  )rb   rc   r^   rd   r   )rA   rA   rA   rX   rX   r  ra   r    rh   c                 S   r  r   )r   r@  r   r   r   r   r     r   z(test_sort_index_groups.<locals>.<lambda>rA   rb   )r   r   r   r  r   ru   r   rG  )	r   r   r(   r)   r   r   r   r*   r-   r|  r   r   r   test_sort_index_groups  s   r?  c                  C   sX   t tjddddtdtdd} | j| j| jjjgdd	d	d
 }t
||  d S )Nz
2010-01-0112Hra   )r  r   r   )r   valsletFr"   c                 S   s   | j dd  S rz   rN   r   r   r   r   r     rQ   z;test_positional_slice_groups_datetimelike.<locals>.<lambda>)r   r%   r  r   r   r(   rB  r   dtr)   r*   r+   rT   r   r   r   )test_positional_slice_groups_datetimelike  s   
rD  c                  C   sr   t g dg dg dd} | d}|ddg dd	 }t d
dgddgdtddgddd}t|| d S )N)r5   r5   r6   r\   r  r  r   rg   rh   c                 S   s   |  t |   S r   )astypefloatr'  r&  r   r   r   r   r     r  z7test_groupby_apply_shape_cache_safety.<locals>.<lambda>r8   r+  r9   r  r5   r6   r  r    r  )r/   gbr1   r0   r   r   r   %test_groupby_apply_shape_cache_safety  s   
rH  c                 C   s^   t g dg dddtjtjgd}|jd| d}|dd	 }|d
d	 }t|| d S )NrC  )rA   r   rX   ra   rA   rX   )r%  r  zr%  )r8  c                 S   s   |  ddS )NrA   rI  )nlargest)grp_dfr   r   r   r     r   ztest_apply_na.<locals>.<lambda>c                 S   s   | j ddddS )NrI  F)	ascendingrA   )r  r   r   r   r   r   r     r$   )r   r   r   r(   r)   r*   r+   )r8  r/   dfgrpr1   r0   r   r   r   test_apply_na  s   rN  c                  C   s   t g dg dtjg ddddddgd	d
 } t ddtjdddgddtjdddggg dtjddgddgdd}t| | d S )NrC  )rl  rl  rl  rl  r   r.   )unitri   r5   r6   c                 S   r[  Nr  rN   rP   r   r   r   r     r   z8test_apply_empty_string_nan_coerce_bug.<locals>.<lambda>rA   rl  rX   r`   )rA   rl  )rX   rl  ru   r>  )	r   r%   rq  r(   r)   r   r   r*   r+   )r1   r0   r   r   r   &test_apply_empty_string_nan_coerce_bug  s   

&rQ  index_values)r8   r9   r:   c                 C   sb   t g dg ddt| d}t dg ditg ddd	d}|dd
d }t|| d S )N)aaa2a3r\   r[   r    b_mean)r9   r:   r8   )rT  rU  rS  r5   r  c                 S   s   t | d  gdgdS )Nr6   rV  r    )r   r   rP   r   r   r   r     r  z0test_apply_index_key_error_bug.<locals>.<lambda>)r   r   r(   r)   r*   r+   )rR  r1   r0   r   r   r   test_apply_index_key_error_bug  s   
rW  zarg,idx)皙?333333?皙?)rX  rZ  rY  )rA   r`   rY   )rX  r  rZ  c                 C   s8   t d| i|d}|jddddd }t|| d S )Nr:  r    Fr"   c                 S   r   r   r   r   r   r   r   r   "  rV   z5test_apply_nonmonotonic_float_index.<locals>.<lambda>r   )argr,  r0   r1   r   r   r   #test_apply_nonmonotonic_float_index  s   +r\  zargs, kwargsnumeric_onlyc                 C   s>   |  d}|jdg|R i |}|jdd}t|| d S )Nr   r  Tr]  )r(   r)   r  r*   r+   )r/   r&  kwargsrG  r1   r0   r   r   r   test_apply_str_with_args&  s   
r`  r   	some_namec                 C   sL   t ddg| d}|jddgdddd }t ddg| d}t|| d S )	NrA   rX   r  r5   Fr"   c                 S   r   r   r   r   r   r   r   r   3  rV   z1test_result_name_when_one_group.<locals>.<lambda>)r   r(   r)   r*   r-   )r   rA  r1   r0   r   r   r   test_result_name_when_one_group/  s   rb  z
method, opr)   c                 C   r[  rP  )r   rG  r   r   r   r   <  r   c                 C   s   | d j d S )Nr6   r   rN   rc  r   r   r   r   =  rQ   )aggr  )rd  skew)rd  prod)rd  r  c              	   C   s^   t g g d}|jddd}t|d}t|| |}tg ddtg dddd}t|| d S )	Nr[   r5   Tr"   r6   rB   r   )r   r   r!   )r   r(   r"  r   r   r*   r-   )methodopempty_dfrG  rt   r1   r0   r   r   r   test_empty_df9  s   
rj  c                  C   s   t g dtdg dd} | d}d}tjt|dd |tj W d    n1 s.w   Y  t	j
td	d
 |jtjdd W d    d S 1 sNw   Y  d S )Nr  xyz)rY   r`   ra   ri   r5   z$The operation <function mean.*failedF)r  check_stacklevelz"got an unexpected keyword argumentr  Tr^  )r   r   r(   r*   r  r  r)   r   r   pytestraises	TypeError)r/   rG  r  r   r   r   test_numeric_only_warning_numpyR  s   
"rp  )br   r   ior   numpyr   rm  pandasr%   r   r   r   r   r	   pandas._testing_testingr*   pandas.core.apir
   pandas.tests.groupbyr   r3   rU   rW   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  r  r  r  r.  r/  r0  r8  rB  rJ  rV  ru  r}  r  r  r  r  r  r  r  r  todayr   r  r  r  r  r  interval_rangeperiod_ranger   r  r  r   r  r	  r  r  r  r  r(  r1  r7  r<  r,   r>  r?  rD  rH  rN  rQ  rW  r\  r`  rb  rj  rp  r   r   r   r   <module>   sd   )"

-
	%#


5
&


	

	 




)

	


