U
    >vf                     @   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ddgejd	d
ddgd
ddgdddgdddgdd d gd d d gdddgdddgdddgdddgdddgdddg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ddgejddddgdddg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'd$d!d#gejdd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+d, Zejdddgd-d. Zejdddgd/d0 ZdS )1    N)	DataFrameIndexSeriesisnaagg_funcanyallskipnaTFvalsfoobarbaz                ?g       @g      @g        c                 C   s   t dgd dgd  |d d}tt| |}|rLtt|rL| dkrLd}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r	   )	r   getattrbuiltinsr   r   r   groupbytmassert_frame_equal)r   r	   r
   dfexpZexp_dfresult r$   E/tmp/pip-unpacked-wheel-vdrwu74i/pandas/tests/groupby/test_any_all.pytest_groupby_bool_aggs   s    ""r&   c                  C   sv   t dddgdtjdgdtjdggddd	gd
} t ddgddggdd	gddgd}d|j_| d }t|| d S )Nr   r   r   r   r   r   ABCr   TFr   )	r   npnanr   r   r   r   r   r    )r!   expectedr#   r$   r$   r%   test_any3   s      r.   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   Zset_axisr+   arrayr   r    )r/   r!   Zgrp_byr#   r-   r$   r$   r%    test_bool_aggs_dup_column_labels@   s
    r1   datac                 C   s\   t |dd}t|| |d}t |tdgdd}|dddgj| |d}t|| d S )Nbooleandtyper   r   r   r5   )r   r   r+   r0   r   aggr   Zassert_series_equal)r/   r	   r2   serZexpected_datar-   r#   r$   r$   r%   test_masked_kleene_logicK   s
    r9   zdtype1,dtype2,exp_col1,exp_col2floatZFloat64r4   r3   Z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   r4   )Zcol1Zcol2r   r   Fr   )r   )	r+   r,   r   pdr0   r   r7   r   r    )Zdtype1Zdtype2Zexp_col1Zexp_col2r2   r!   r#   r-   r$   r$   r%   test_masked_mixed_typese   s    
r<   r5   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   r4   Tr   r3   r6   r   )r;   NAr+   r0   r   r7   r   assert_equal)r/   r5   r	   frame_or_seriesobjexpected_resr-   r#   r$   r$   r%   test_masked_bool_aggs_skipna   s    rB   zbool_agg_func,data,expected_resc                 C   sN   ||t d}|dgt| | }||gtdgdd}t|| d S )Nr4   r   boolr6   )objectr   lenr7   r+   r0   r   r>   )r/   r2   rA   r?   r@   r#   r-   r$   r$   r%   test_object_type_missing_vals   s    rF   c              	   C   sD   t tjgtd}tjtdd |dgj| dd W 5 Q R X d S )Nr4   z boolean value of NA is ambiguous)matchr   Fr   )	r   r;   r=   rD   pytestZraises	TypeErrorr   r7   )r/   r8   r$   r$   r%   'test_object_NA_raises_with_skipna_false   s    rJ   c                 C   sb   | t krddginddi}| f |dti}t||j| }| f |dti}t|| d S )Nr   r   r   r5   )r   rD   r   r   r   rC   r   r>   )r?   r/   kwargsr@   r#   r-   r$   r$   r%   
test_empty   s
    rL   )r   Znumpyr+   rH   Zpandasr;   r   r   r   r   Zpandas._testingZ_testingr   markZparametrizer,   r&   r.   r1   r=   r9   r0   rC   r<   rB   ZNaTrF   rJ   rL   r$   r$   r$   r%   <module>   s   





	

