U
    f/e{                     @   s  d dl Zd dlZd dlmZmZ d dlm  m	Z
 d dlZd dlmZ d dlmZ dd Zdd Zdd	 Zd
d Zdd Zdd Zejdeejee
jdgdd Zejdejd dddgejddejdddgejdfejd dddgejddejdddgejdfejd ddgejddejddgejdfejd ddgejddejddgejdfgdd ZG dd  d ZdS )!    N)lib	reduction)Seriesc                  C   s   t tjd} tjddddddddddg
tjd}t| tj|d}|	 \}}tj| dd  | dd   gt
d}t|| tjdd	gtjd}t|| d S )
N
   r      Zdtype            )r   nprandomrandnarrayintplibreductionSeriesGroupermean
get_resultobjecttmassert_almost_equalint64objlabelsgrouperresultcountsexpected
exp_counts r"   I/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/groupby/test_bin_groupby.pytest_series_grouper   s    $*r$   c                  C   s   t tjddd} | jd| _tjddddddddddg
tjd}t	| dd	 |d
}|
 \}}tjt| dd dkt| dd  dkgtd}t|| tjddgtjd}t|| d S )Nr   Zfloat64r   Or   r   r   c                 S   s   t | dkS Nr   )allxr"   r"   r#   <lambda>$       z>test_series_grouper_result_length_difference.<locals>.<lambda>r	   r
   r   r   )r   r   r   r   indexZastyper   r   r   r   r   r'   r   r   Zassert_equalr   r   r"   r"   r#   ,test_series_grouper_result_length_difference   s    $2r-   c                  C   sr   t tjd} | jd d }tjddddddddddg
tjd}tjt	dd t
|tj|d W 5 Q R X d S )	Nr   r   r   r   r   z)SeriesGrouper requires non-empty `series`)matchr	   )r   r   r   r   Zilocr   r   pytestZraises
ValueErrorr   r   r   )r   dummyr   r"   r"   r#   ,test_series_grouper_requires_nonempty_raises.   s
    $r2   c                  C   s   t tjd} tjddgtjd}t| tj|}|	 \}}tj| d d  | dd  | dd   gt
d}t|| tjdddgtjd}t|| d S )Nr   r
   r   r   r   )r   r   r   r   r   r   r   ZSeriesBinGrouperr   r   r   r   r   )r   Zbinsr   r   r   r    r!   r"   r"   r#   test_series_bin_grouper8   s    8r3   c                 C   s"   t | t | jjd jkstdS r&   )lenZ_mgrblocksZmgr_locsAssertionErrorr(   r"   r"   r#   assert_block_lengthsG   s    r7   c                 C   s   |     dS r&   )Zcumsummaxr(   r"   r"   r#   
cumsum_maxL   s    r9   func)Zmarksc                 C   sx   t dddgdddgdddgd}|ddg| }t jdddgit jjdgddggddgd	d
}t|| d S )Nabr   )ABCr=   r>   r?   r   )names)r,   )pdZ	DataFramegroupbyZaggZ
MultiIndexZfrom_productr   Zassert_frame_equal)r:   Zdfr   r    r"   r"   r#   test_mgr_locs_updatedQ   s    $
rC   zbinner,closed,expectedr
   r   	   r   leftr	      rightc                 C   s<   t jddddddgt jd}tj|| |d}t|| d S )	Nr   r	   r
   r   rF   r   r   )closed)r   r   r   r   Zgenerate_bins_dt64r   Zassert_numpy_array_equal)ZbinnerrH   r    valuesr   r"   r"   r#   test_generate_binse   s    rJ   c                   @   s   e Zd ZdS )TestMomentsN)__name__
__module____qualname__r"   r"   r"   r#   rK      s   rK   ) Znumpyr   r/   Zpandas._libsr   r   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasrA   r   Zpandas._testingZ_testingr   r$   r-   r2   r3   r7   r9   markZparametrizeparamZskip_array_manager_invalid_testrC   r   r   rJ   rK   r"   r"   r"   r#   <module>   sL   

*
