o
    ҷh(                     @   s  d dl Z d dlZd dlZd dlZd dlmZmZmZ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d Zdd Zejdddgd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d Zejdd d!ejdged"ejejgd#d"fd$d ejejgd#d"ejdged"fd$d$ejejgd#d"ejejgd#d"fd!d#ejejgd#d"ejejgd#d"fgd%d& Zejdddgejd'g d(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-d. Zejdddgd/d0 Zejdddgd1d2 ZdS )3    N)	DataFrameIndexSeriesisnaagg_funcanyallvals)foobarbaz)r
    r   )r   r   r   )         )r   r   r   r   r   r   )      ?g       @g      @)r           r   )r   r   r   )TTT)TFF)FFFc                 C   s   t dgd dgd  |d d}tt||}| r&tt|r&|dkr&d}t |gd dgtddgd	d
d}t|d	|| d}t|| d S )Nar   br   )keyvalr   Fr   r   )namecolumnsindexskipna)	r   getattrbuiltinsr   r   r   groupbytmassert_frame_equal)r   r   r	   dfexpexpectedresult r'   T/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_any_all.pytest_groupby_bool_aggs   s   "r)   c                  C   sr   t g ddtjdgdtjdggg dd} t ddgd	dggd
dgddgd}d|j_| d }t|| d S )N)r   r   r
   r   r   r   r   )ABCr   TFr+   r,   r   r*   )	r   npnanr   r   r    r   r!   r"   )r#   r%   r&   r'   r'   r(   test_any4   s   r0   bool_agg_funcc                 C   sP   t ddggddgd}|dg}t||  }|tdg}t|| d S )NTr   r-   r   )r   r    r   set_axisr.   arrayr!   r"   )r1   r#   grp_byr&   r%   r'   r'   r(    test_bool_aggs_dup_column_labelsA   s
   r5   dataFTc                 C   sZ   t |dd}t|| |d}t |tdgdd}|g dj| |d}t|| d S )Nbooleandtyper   r   r   r9   r   )r   r   r.   r3   r    aggr!   assert_series_equal)r1   r   r6   serexpected_datar%   r&   r'   r'   r(   test_masked_kleene_logicL   s
   r?   zdtype1,dtype2,exp_col1,exp_col2floatFloat64r8   r7   Int64c                 C   sn   dt jg}ttj|| dtj||dd}|ddgjddd}t||dt dgd}t|| d S )	Nr   r8   )col1col2r   r   Fr   )r   )	r.   r/   r   pdr3   r    r;   r!   r"   )dtype1dtype2exp_col1exp_col2r6   r#   r&   r%   r'   r'   r(   test_masked_mixed_typese   s   
rJ   r9   )rB   rA   r7   c                 C   sh   |t jdg|d}d}|s| dkrt j}||gtdgdd}|ddgj| |d}t|| d S )Nr   r8   Tr   r7   r:   r   )rE   NAr.   r3   r    r;   r!   assert_equal)r1   r9   r   frame_or_seriesobjexpected_resr%   r&   r'   r'   r(   test_masked_bool_aggs_skipna   s   rP   zbool_agg_func,data,expected_resr   c                 C   sN   ||t d}|dgt| | }||gtdgdd}t|| d S )Nr8   r   boolr:   )objectr    lenr;   r.   r3   r!   rL   )r1   r6   rO   rM   rN   r&   r%   r'   r'   r(   test_object_type_missing_vals   s   rT   c                 C   sZ   t tjgtd}tjtdd |dgj| dd W d    d S 1 s&w   Y  d S )Nr8   z boolean value of NA is ambiguous)matchr   Fr   )	r   rE   rK   rR   pytestraises	TypeErrorr    r;   )r1   r=   r'   r'   r(   'test_object_NA_raises_with_skipna_false   s   "rY   c                 C   sj   | t u r	ddginddi}| di |dti}t||j| }| di |dti}t|| d S )Nr   r   r   r9   r'   )r   rR   r   r    r   rQ   r!   rL   )rM   r1   kwargsrN   r&   r%   r'   r'   r(   
test_empty   s
   r[   )r   numpyr.   rV   pandasrE   r   r   r   r   pandas._testing_testingr!   markparametrizer/   r)   r0   r5   rK   r?   r3   rQ   rJ   rP   NaTrT   rY   r[   r'   r'   r'   r(   <module>   s    






	
