U
    sVc                     @   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-ejdddgd.d/ Zejdddgd0d1 ZdS )2    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-xj8nt62q/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   sB   t ddggddgd}|dg}t||  }|}t|| d S )NTr   r*   r   )r   r   r   r   r    )r/   r!   Zgrp_byr#   r-   r$   r$   r%    test_bool_aggs_dup_column_labels@   s
    r0   datac                 C   sR   t |dd}t|| |d}t |dd}|dddgj| |d}t|| d S )Nbooleandtyper   r   )r   r   r   aggr   Zassert_series_equal)r/   r	   r1   serZexpected_datar-   r#   r$   r$   r%   test_masked_kleene_logicK   s
    r7   zdtype1,dtype2,exp_col1,exp_col2floatZFloat64r3   r2   ZInt64c                 C   sh   dt jg}ttj|| dtj||dd}|ddgjddd}t||ddgd}t|| d S )	Nr   r3   )Zcol1Zcol2r   r   Fr   )r   )	r+   r,   r   pdarrayr   r5   r   r    )Zdtype1Zdtype2Zexp_col1Zexp_col2r1   r!   r#   r-   r$   r$   r%   test_masked_mixed_typese   s    
r;   r4   c                 C   sb   |t jdg|d}d}|s(| dkr(t j}||gdgdd}|ddgj| |d}t|| d S )Nr   r3   Tr   r2   r   r4   r   )r9   NAr   r5   r   assert_equal)r/   r4   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   sH   ||t d}|dgt| | }||gdgdd}t|| d S )Nr3   r   boolr<   )objectr   lenr5   r   r>   )r/   r1   rA   r?   r@   r#   r-   r$   r$   r%   test_object_type_missing_vals   s    rF   z-ignore:Dropping invalid columns:FutureWarningc              	   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 )Nr3   z boolean value of NA is ambiguous)matchr   Fr   )	r   r9   r=   rD   pytestZraises	TypeErrorr   r5   )r/   r6   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   r4   )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pandasr9   r   r   r   r   Zpandas._testingZ_testingr   markZparametrizer,   r&   r.   r0   r=   r7   r:   rC   r;   rB   ZNaTrF   filterwarningsrJ   rL   r$   r$   r$   r%   <module>   s   

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