o
    d                     @   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	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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)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d0d1 Zejdddgd2d3 ZdS )4    N)	DataFrameIndexSeriesisnaagg_funcanyallskipnaTF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r	   )	r   getattrbuiltinsr   r   r   groupbytmassert_frame_equal)r   r	   r
   dfexpZexp_dfresult r&   U/app/.heroku/python/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#   expectedr%   r&   r&   r'   test_any3   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   Zset_axisr-   arrayr!   r"   )r1   r#   Zgrp_byr%   r/   r&   r&   r'    test_bool_aggs_dup_column_labels@   s
   r3   datac                 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   r7   r   )r   r   r-   r2   r    aggr!   Zassert_series_equal)r1   r	   r4   serZexpected_datar/   r%   r&   r&   r'   test_masked_kleene_logicK   s
   r;   zdtype1,dtype2,exp_col1,exp_col2floatFloat64r6   r5   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   r6   )Zcol1Zcol2r   r   Fr   )r   )	r-   r.   r   pdr2   r    r9   r!   r"   )Zdtype1Zdtype2Zexp_col1Zexp_col2r4   r#   r%   r/   r&   r&   r'   test_masked_mixed_typese   s   
r@   r7   )r>   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   r6   Tr   r5   r8   r   )r?   NAr-   r2   r    r9   r!   assert_equal)r1   r7   r	   frame_or_seriesobjexpected_resr/   r%   r&   r&   r'   test_masked_bool_aggs_skipna   s   rF   zbool_agg_func,data,expected_resr   c                 C   sN   ||t d}|dgt| | }||gtdgdd}t|| d S )Nr6   r   boolr8   )objectr    lenr9   r-   r2   r!   rB   )r1   r4   rE   rC   rD   r%   r/   r&   r&   r'   test_object_type_missing_vals   s   rJ   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 )Nr6   z boolean value of NA is ambiguous)matchr   Fr   )	r   r?   rA   rH   pytestZraises	TypeErrorr    r9   )r1   r:   r&   r&   r'   'test_object_NA_raises_with_skipna_false   s   "rN   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   r7   r&   )r   rH   r   r    r   rG   r!   rB   )rC   r1   kwargsrD   r%   r/   r&   r&   r'   
test_empty   s
   rP   )r   numpyr-   rL   Zpandasr?   r   r   r   r   Zpandas._testingZ_testingr!   markZparametrizer.   r(   r0   r3   rA   r;   r2   rG   r@   rF   ZNaTrJ   rN   rP   r&   r&   r&   r'   <module>   s    






	
