o
    d                     @   s   d dl Zd dlZd dlmZ d dlZd dlmZmZm	Z	 d dl
mZ dd Zdd Zdd	 Zd
d Zdd Zejdddgdd Zejdddgdd Zdd ZejdddgdefddZejdg ddd Zdd ZdS )    N)iNaT)	DataFrameIndexSeriesc                  C   s   t g dg dddg d} | d }d|v sJ | djdd	}d|v s+J | d }d|v s8J | djdd	}d|v sGJ d S )
N)   r      r   )            r   mama)nniissr   r   F)numeric_only)r   groupbymaxmin)aaresult r   f/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/groupby/test_min_max.pytest_max_min_non_numeric   s   r   c                 C   s   t g dg dg dd}|  | st|jjdksJ |d}|dg  }tg ddd	}t dg d
i|d}t	|| |dg 
 }tg ddd	}t dg di|d}t	|| d S )N)r   r   r	   r	   r
   )r   foor	   barF)abcde)ABCr	   r    r"   r   r	   r
   name)r   r   r   index)r   r   r   )r   _consolidate_inplacelen_mgrblocksr   r   r   tmassert_frame_equalr   )using_array_managerdfgbr   eiexpectedr   r   r   $test_max_min_object_multiple_columns    s$   
r3   c                  C   s   t jtg dddjj} ttjdtjgg d| d}|jddd	d
 	 d
 }t jtddgd
dddjj}t
|| |dd
 	 }d|j_t
|| d S )N)
2019-05-09r4   r4   z%Y-%m-%d)format1)r   r   r   )r   r   r   r   F)as_indexr   r4   r$   )pdto_datetimer   dtdater   npnanr   r   r,   assert_series_equalr'   r%   )datesr/   r   r2   r   r   r   test_min_date_with_nans?   s    r@   c                  C   s   t dtg} tjddgtjd}| |}|jdd}t dditjd}tj||dd |j	dd}t dtitjd}tj||dd |j	dd}t dtj
i}tj||dd d S )Nr   dtyper	   	min_countTcheck_exactr
   )r   r   r<   arrayint64r   r   r,   r>   r   r=   )serkeyr0   r   r2   r   r   r   test_max_inatQ   s   
rK   c                  C   sj   t dtdtd g} | g d}|jdd}t tjtjtd d}|jtj|_t	j
||dd d S )Nr   r	   )r   r	   r
   r
   rC   r#   TrE   )r   r   r   r   r<   r=   r'   astypeint_r,   r>   )rI   r0   r   r2   r   r   r   test_max_inat_not_all_nae   s   rN   funcr   r   c                 C   sj   ddg}t jdddd}t||d}t|dd |  }tddgdd	}t||dd
}t|| d S )Nr   r	   2020Yperiodsfreqr   r   r   r   r$   )r'   r%   )	r8   period_ranger   getattrr   r   r   r,   r>   rO   groupsrS   r/   r   idxr2   r   r   r   $test_groupby_aggregate_period_columns   s   r[   c                 C   sh   ddg}t jdddd}t||d}t|d|  }tddgdd}td	|i|d
}t|| d S )Nr   r	   rP   rQ   rR   rU   r   r$   r   r&   )r8   rV   r   rW   r   r   r,   r-   rX   r   r   r   #test_groupby_aggregate_period_frame   s   r\   c                  C   s   t g dtdtjgd dt} | d }t ddgdd	gtjtjgddt}t	
|| t g dtdtddt} | d }t ddgdd	gd
dgddt}t	
|| d S )N)r    r    r!   r!   abcdr   )rJ   col1col2rJ   r    r!   r   r   r   r	   )r   listr<   r=   rL   objectr   r   	set_indexr,   r-   range)r/   r   r2   r   r   r   #test_aggregate_numeric_object_dtype   s0   rd   c                 C   sx   t dgddj }tdg|d}|dd| i}tddgitdgddd	}|d |j|d< t	
|| d S )
Nr   categoryrA   i  r    r!   r    r!   r$   r&   )r   cat
as_orderedr   r   aggr   rL   rB   r,   r-   )rO   dsr/   r   r2   r   r   r   %test_aggregate_categorical_lost_index   s   rk   rB   )Int64Int32Float64Float32booleanc                 C   s  | dkrd}n	| dkrd}nd}t ddg||d gd}|d	 | |d	< |d
}| }|jd d d
}t|| | }|jdd  d
}t|| |jdd}t d	t	j
gi|j| d}	t||	 |jdd}
t|
|	 t g d|t	j
|d gd}|d	 | |d	< |d
}| }t|| | }t|| |jdd}t||	 |jdd}t||	 d S )Nrl   l   .D3 rp   r   g      @r	   r   )idtsrr   rq   r
   rC   )r'   rB   )r	   r	   r	   d   )r   rL   r   r   ilocrb   r,   r-   r   r8   NAr'   )rB   rr   r/   r0   r   r2   res_maxexpected_maxresult2	expected2res_max2df2gb2result3res_max3result4res_max4r   r   r   test_groupby_min_max_nullable   s<   

r   c                  C   s   t jdgd ddgd} t| t tjdtjdd}|d}| }t j	ddg| j
dd}td	t jdt jgd
di|d}t|| | }d|jd< t|| d S )Nr   
   r   )
categoriesrA   rf   r    )rB   r%   r!   UInt64r&   	   )r   r   )r8   Categoricalr   rG   r<   arangeuint64r   r   CategoricalIndexrB   ru   r,   r-   r   rt   )rg   r/   r0   resrZ   r2   r   r   r   (test_min_max_nullable_uint64_empty_group   s    
 
r   )numpyr<   pytestpandas._libs.tslibsr   pandasr8   r   r   r   pandas._testing_testingr,   r   r3   r@   rK   rN   markparametrizer[   r\   rd   strrk   r   r   r   r   r   r   <module>   s*    


/