U
    ¾mœdås  ã                   @   s¶   d Z ddlZddlZddlZddlm  mZ ddl	m
Z
mZmZmZ ddlmZ ddlmZmZ ejdd„ ƒZejG dd„ deƒƒZejG d	d
„ d
eƒƒZejG dd„ deƒƒZdS )z Test cases for .hist method é    N)Ú	DataFrameÚIndexÚSeriesÚto_datetime)ÚTestPlotBaseÚ_check_plot_worksc                   C   s   t jdd�S )NÚts©Úname)ÚtmZmakeTimeSeries© r   r   ú_/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/plotting/test_hist_method.pyr      s    r   c                   @   sÐ   e Zd Zdd„ Zdd„ Zdd„ Zejjdd„ ƒZ	d	d
„ Z
dd„ Zdd„ Zej dddddg¡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jd"d#�ejd$d%„ ƒƒZejd&d'„ ƒZdS )(ÚTestSeriesPlotsc              	   C   s8  t |jƒ t |jdd� t |jdd� tjtdd�� t |j|jjd� W 5 Q R X tjtdd�� t |j|jjdd� W 5 Q R X | j d	d	¡\}}t |j|d
d� t |j||d
d� t |j|d
d� t 	¡  | j d	d¡\}\}}t |j||d
d� t |j||d
d� d}t
jt|d�� |j|j|d� W 5 Q R X d S )NF©Úgrid©é   é
   ©Úfigsize©Zcheck_stacklevel©Úbyé   )r   Úbinsé   T)ÚaxÚdefault_axes)r   Úfigurer   )r   r   é   )r   r   r   z`Cannot pass 'figure' when using the 'by' argument, since a new 'Figure' instance will be created©Úmatch)r   r   )r   Úhistr   Úassert_produces_warningÚUserWarningÚindexÚmonthÚpltÚsubplotsÚcloseÚpytestÚraisesÚ
ValueError)Úselfr   Úfigr   Úax1Úax2Úmsgr   r   r   Útest_hist_legacy   s&    
ÿz TestSeriesPlots.test_hist_legacyc                 C   s<   t tj dd¡ƒ}|jdd�d d }t|jƒdks8t‚d S )Nr   r   ©r   r   )r   ÚnpÚrandomÚrandnr"   ÚlenÚpatchesÚAssertionError)r-   Údfr   r   r   r   Útest_hist_bins_legacy8   s    z%TestSeriesPlots.test_hist_bins_legacyc              	   C   s`   |}d}t jt|d�� |jjdd� W 5 Q R X t jt|d�� |jjddgd� W 5 Q R X d S )Nz7The 'layout' keyword is not supported when 'by' is Noner    ©r   r   ©Úlayoutr   )r*   r+   r,   Úheightr"   )r-   Úhist_dfr:   r1   r   r   r   Útest_hist_layout=   s    z TestSeriesPlots.test_hist_layoutc              	   C   sà  |}t jtdd�� t|jj|jdd�}W 5 Q R X | j|ddd� t jtdd�� t|jj|jdd�}W 5 Q R X | j|ddd� t jtdd�� t|jj|jd	d�}W 5 Q R X | j|d
d	d� t jtdd�� t|jj|jdd�}W 5 Q R X | j|d
dd� t jtdd�� t|jj|jdd�}W 5 Q R X | j|d
dd� t jtdd�� t|jj|jdd�}W 5 Q R X | j|d
dd� t jtdd�� t|jj|j	dd�}W 5 Q R X | j|ddd� |jj|jddd�}| j|d
ddd� d S )NFr   ©r   r   ©r   r>   r   ©Úaxes_numr>   )é   éÿÿÿÿ)rF   r   ©é   r   rI   ©r   rG   ©r   r   )rF   r   ©rG   rI   ©r   rI   rF   ©rI   r   )é   é   )r   r>   r   ©rE   r>   r   )
r   r#   r$   r   r?   r"   ÚgenderÚ_check_axes_shapeÚcategoryÚ	classroom©r-   r@   r:   Úaxesr   r   r   Útest_hist_layout_with_byF   s0    z(TestSeriesPlots.test_hist_layout_with_byc                 C   sp   ddl m}m} ttj d¡ƒ}ttj d¡ƒ}|dƒ | ¡  |dƒ | ¡  |ƒ }|j}t	|ƒdkslt
‚d S )Nr   )ÚgcfÚsubplotr   éy   éz   )Zmatplotlib.pyplotrY   rZ   r   r4   r5   r6   r"   rW   r7   r9   )r-   rY   rZ   ÚxÚyr.   rW   r   r   r   Útest_hist_no_overlapl   s    z$TestSeriesPlots.test_hist_no_overlapc                 C   s.   |}|j j|jd�}t| j ¡ ƒdks*t‚d S )Nr   r   )r?   r"   rR   r7   r'   Úget_fignumsr9   rV   r   r   r   Útest_hist_by_no_extra_plots|   s    z+TestSeriesPlots.test_hist_by_no_extra_plotsc              	   C   sR   ddl m} |ƒ }|ƒ }| d¡}d}tjt|d�� |j||d� W 5 Q R X d S )Nr   )r   éo   z&passed axis not bound to passed figurer    )r   r   )Zpylabr   Zadd_subplotr*   r+   r9   r"   )r-   r   r   Zfig1Zfig2r/   r1   r   r   r   Ú+test_plot_fails_when_ax_differs_from_figure�   s    
z;TestSeriesPlots.test_plot_fails_when_ax_differs_from_figureúhisttype, expected©ÚbarT©Z
barstackedT©ÚstepF©Z
stepfilledTc                 C   s0   t tj dd¡ƒ}|j|d�}| j||d� d S )Nr   r   ©Úhisttype©Zfilled)r   r4   r5   Úrandintr"   Ú_check_patches_all_filled)r-   rl   ÚexpectedÚserr   r   r   r   Útest_histtype_argument‹   s    z&TestSeriesPlots.test_histtype_argumentz&by, expected_axes_num, expected_layout)Nr   r<   )Úbr   )r   r   c                 C   sd   ddg ddg  }t tj d¡|dd�}d|j_t|jdd|d	�}| j|||d
� |  	|d¡ d S )Né   Ú1Ú2é   Úa©r%   r
   rs   T)r   Úlegendr   rD   )
r   r4   r5   r6   r%   r
   r   r"   rS   Ú_check_legend_labels)r-   r   Úexpected_axes_numÚexpected_layoutr%   ÚsrW   r   r   r   Útest_hist_with_legendš   s    z%TestSeriesPlots.test_hist_with_legendr   Nrs   c              	   C   s`   ddg ddg  }t tj d¡|dd�}d|j_tjtdd	�� |j	d
|dd� W 5 Q R X d S )Nrt   ru   rv   rw   rx   ry   rs   ú Cannot use both legend and labelr    TÚc)rz   r   Úlabel)
r   r4   r5   r6   r%   r
   r*   r+   r,   r"   )r-   r   r%   r~   r   r   r   Útest_hist_with_legend_raises¨   s
    z,TestSeriesPlots.test_hist_with_legend_raisesc                 C   s®   | j  ¡ \}}|jjd|d�}t|jƒdks0t‚|  |j 	¡ d¡ t
 ¡  | j  ¡ \}}|jjd|d�}|  |j 	¡ d¡ t
 ¡  | j  ¡ \}}|jjdd|d�}t
 ¡  d S )	Nr   ©r   r   Z	FrequencyÚ
horizontal)Zorientationr   ÚleftT)ÚalignZstackedr   )r'   r(   Úplotr"   r7   r8   r9   Ú_check_text_labelsÚyaxisZ	get_labelr   r)   Zxaxis)r-   r   Ú_r   r   r   r   Útest_hist_kwargs²   s    z TestSeriesPlots.test_hist_kwargszApi changed in 3.6.0)Úreasonc                 C   sì   | j  ¡ \}}|jjd|d�}| j|dd� | ¡ }|  |dgt|ƒ ¡ | ¡ }|  |dgt|ƒ ¡ t	|jj
ƒ t	|jjƒ | j  ¡ \}}|jj
d|d�}| j|dd� | ¡ }|  |dgt|ƒ ¡ | ¡ }|  |dgt|ƒ ¡ d S )NT)Úlogyr   Úlog©rŠ   Ú )r'   r(   rˆ   r"   Ú_check_ax_scalesZget_xticklabelsr‰   r7   Zget_yticklabelsr   ÚkdeÚdensity)r-   r   r‹   r   ZxlabelsZylabelsr   r   r   Útest_hist_kdeÂ   s     zTestSeriesPlots.test_hist_kdec                 C   s°   | j  ¡ \}}|jjddd|d�}| j|dd� t|jƒdksBt‚| j|jdgd d� | j  ¡ \}}|jj	dd|d	�}| j|dd� | 
¡ }t|ƒd
ksžt‚|  |dg¡ d S )NTr   rs   )rŽ   r   Úcolorr   r�   r�   )Z
facecolorsÚr)rŽ   r–   r   r   )r'   r(   rˆ   r"   r’   r7   r8   r9   Z_check_colorsr“   Ú	get_lines)r-   r   r‹   r   Úlinesr   r   r   Útest_hist_kde_colorØ   s    z#TestSeriesPlots.test_hist_kde_color)Ú__name__Ú
__module__Ú__qualname__r2   r;   rA   r*   ÚmarkÚslowrX   r_   ra   rc   Úparametrizerr   r   rƒ   rŒ   ZxfailÚtdZskip_if_no_scipyr•   rš   r   r   r   r   r      s<   	
%
üþ	
 ÿ

	r   c                   @   s  e Zd Zejjdd„ ƒZdd„ Zdd„ Zdd„ Z	d	d
„ Z
ej dddddgfdddgdddgfg¡dd„ ƒZej dddddg¡dd„ ƒZej dddg¡ej dddg¡dd„ ƒƒZej dddg¡ej dddg¡dd „ ƒƒZd!d"„ Zd#d$„ Zd%d&„ Zejd'd(„ ƒZdS ))ÚTestDataFramePlotsc              	      s¼  ddl m‰  tjtdd�� t|jƒ W 5 Q R X ttj	 
dd¡ƒ}ttj	jdddtjd	�ƒ|d< tjtdd�� t|jdd
�}W 5 Q R X | j|ddd� |d  ¡ r¨t‚t|dg jƒ ttj	 
dd¡ƒ}t|jƒ ttj	 
dd¡ƒ}ttj	jdddtjd	�ƒ|d< tjtdd�� t|jdd�}W 5 Q R X | j|ddd� tjtdd�� t|jddd� W 5 Q R X tjtdd�� t|jdd� W 5 Q R X tjtdd�� t|jdd� W 5 Q R X |d }d\}}d\}}|j||||d�}| j|||||d� d\}}d\}}|j||||d�}| j|||||d� t ¡  |jdddd�}	‡ fdd„|	 ¡ D ƒ}
t |
d   ¡ d!¡ t ¡  |jdd"�}	| j|	d#d$� t ¡  t t¡� |jd%d&� W 5 Q R X d S )'Nr   ©Ú	RectangleFr   éd   r   ì     jÕ+2Zì     ÊRŠeöZ©ÚsizeÚdtyper   rF   rK   rD   r<   r   r   rN   r=   é   T)ÚsharexÚshareyr   r   r3   ©é   é   ©rw   é(   ©Ú
xlabelsizeÚxrotÚ
ylabelsizeÚyrotrI   )Ú
cumulativer   r”   c                    s   g | ]}t |ˆ ƒr|‘qS r   ©Ú
isinstance©Ú.0r]   r£   r   r   Ú
<listcomp>2  s     
 z:TestDataFramePlots.test_hist_df_legacy.<locals>.<listcomp>rG   ç      ð?)r�   r�   r�   rf   )Úfoo)Úmatplotlib.patchesr¤   r   r#   r$   r   r"   r   r4   r5   r6   r   rn   Úint64rS   Úget_visibler9   Ú_check_ticks_propsr)   Úget_childrenÚassert_almost_equalÚ
get_heightr’   Úexternal_error_raisedÚAttributeError)r-   r@   r:   rW   rq   ÚxfÚyfrµ   r·   r   Úrectsr   r£   r   Útest_hist_df_legacyê   sˆ    üÿ
üÿ    ÿ    ÿz&TestDataFramePlots.test_hist_df_legacyc                 C   sŠ   t tj d¡tj ddd¡ttjjdddtjd�ƒttjjdddtjd�dd�dœƒ}| t¡}d	}t	j
t|d
�� | ¡  W 5 Q R X d S )Nr   r   l     úÛp¹/ l    @©spcÍ/ )rª   T)Úutc)rx   rs   r�   ÚdzDhist method requires numerical or datetime columns, nothing to plot.r    )r   r4   r5   Zrandrn   r   rÁ   ZastypeÚobjectr*   r+   r,   r"   )r-   r:   Zdf_or1   r   r   r   Ú*test_hist_non_numerical_or_datetime_raises@  s4    
   ÿÿ   ÿüøÿ
z=TestDataFramePlots.test_hist_non_numerical_or_datetime_raisesc                 C   s6  t tj dd¡ƒ}ttjjdddtjd�ƒ|d< d ddœdddœdddœd	d	dœd
d
dœdd	dœdddœdddœdddœf	}|D ],}|j|d d�}|d }| j|d|d� q€d}t	j
t|d�� |jdd� W 5 Q R X t d¡}t	j
t|d�� |jdd� W 5 Q R X d}t	j
t|d�� |jdd� W 5 Q R X d S )Nr¥   r   r¦   r§   r¨   rK   )r>   Úexpected_sizerH   rM   )rF   rF   rL   )rI   rG   )rG   r   rJ   r>   r=   rÑ   rF   rD   z1Layout of 1x1 must be larger than required size 3r    r<   z)Layout must be a tuple of (rows, columns))r   ú1At least one dimension of layout must be positive©rG   rG   )r   r4   r5   r6   r   rn   rÁ   r"   rS   r*   r+   r,   ÚreÚescape)r-   r:   Zlayout_to_expected_sizeZlayout_testrW   rp   r1   r   r   r   rA   Y  s@    üÿ
÷
z#TestDataFramePlots.test_hist_layoutc                 C   sT   t tj dd¡ƒ}ttjjdddtjd�ƒ|d< t|jdd� | j	 
¡  t ¡  d S )Nr¥   r   r¦   r§   r¨   T)r   )r   r4   r5   r6   r   rn   rÁ   r   r"   r'   Ztight_layoutr   r)   )r-   r:   r   r   r   Útest_tight_layoutƒ  s    üÿ	
z$TestDataFramePlots.test_tight_layoutc                 C   sJ   t dddddgdddddgdœƒ}t|jd	d
dddd�}| j|dd� d S )Nç      ø?ç      à?ç333333ó?çÍÌÌÌÌÌì?rF   ÚpigÚrabbit)ÚlengthÚanimalTrÝ   rÞ   r   r   )r   Úcolumnr   r   rµ   ©rµ   )r   r   r"   rÃ   )r-   r:   rW   r   r   r   Útest_hist_subplot_xrot“  s    þÿúz)TestDataFramePlots.test_hist_subplot_xrotzcolumn, expectedNÚwidthrÝ   r?   c                    st   t dddddgddddd	gd	dd
ddgdœdddddgd�}t|jd|dd�‰ ‡ fdd„td	ƒD ƒ}||kspt‚d S )Nçffffffæ?çš™™™™™É?g333333Ã?gš™™™™™ñ?r×   rØ   rÙ   rÚ   rF   g333333@r   r   )râ   rÝ   r?   rÛ   rÜ   ÚduckÚchickenÚhorse)r%   T©r   rF   )r   rß   r>   c                    s   g | ]}ˆ d |f   ¡ ‘qS )r   )Z	get_title)r¼   Úi©rW   r   r   r½   À  s     zGTestDataFramePlots.test_hist_column_order_unchanged.<locals>.<listcomp>)r   r   r"   Úranger9   )r-   rß   rp   r:   Úresultr   rê   r   Ú test_hist_column_order_unchanged¦  s    
ýú
üz3TestDataFramePlots.test_hist_column_order_unchangedrd   re   rg   rh   rj   c                 C   s<   t tjjdddd�ddgd�}|j|d�}| j||d	� d S )
Nr   r   ©r¥   r   ©r©   rx   rs   ©Úcolumnsrk   rm   ©r   r4   r5   rn   r"   ro   ©r-   rl   rp   r:   r   r   r   r   rr   Ã  s    z)TestDataFramePlots.test_histtype_argumentr   r�   rß   rs   c                 C   sÖ   |d kr|d k	rdnd}d|f}|p*ddg}|d k	r>|gd }t ddg ddg  dd	�}ttj d
d¡|ddgd�}t|jdd||d�}| j|||d� |d kr²|d kr²|d }t||ƒD ]\}	}
|  	|
|	¡ q¼d S )Nr   r   rx   rs   rt   ru   rv   r�   r	   rw   ©r%   rñ   T)r   rz   r   rß   rD   r   )
r   r   r4   r5   r6   r   r"   rS   Úzipr{   )r-   r   rß   r|   r}   Zexpected_labelsr%   r:   rW   Zexpected_labelr   r   r   r   r   Ò  s&    
ûz(TestDataFramePlots.test_hist_with_legendc              	   C   sh   t ddg ddg  dd�}ttj dd¡|dd	gd
�}tjtdd�� |jd||dd� W 5 Q R X d S )Nrt   ru   rv   r�   r	   rw   r   rx   rs   rô   r€   r    TrÎ   )rz   r   rß   r‚   )	r   r   r4   r5   r6   r*   r+   r,   r"   )r-   r   rß   r%   r:   r   r   r   rƒ   î  s    z/TestDataFramePlots.test_hist_with_legend_raisesc                 C   sF   t tj dd¡ƒ}| j ¡ \}}|jjd|d�}t|j	ƒdksBt
‚d S )Nr   r   r   r„   )r   r4   r5   r6   r'   r(   rˆ   r"   r7   r8   r9   ©r-   r:   r‹   r   r   r   r   Útest_hist_df_kwargsø  s    z&TestDataFramePlots.test_hist_df_kwargsc                 C   s–   t tj d¡ dd¡ddddgd�}d	d
gd |d< | j ¡ \}}|jjd|d�}t	|j
ƒdksdt‚| j ¡ \}}|jj|d�}t	|j
ƒdks’t‚d S )Né*   r   rI   ÚAÚBÚCÚDrð   r]   r^   r   ÚEr„   r¯   )r   r²   )r   r4   r5   ÚRandomStater6   r'   r(   rˆ   r"   r7   r8   r9   rö   r   r   r   Útest_hist_df_with_nonnumericsþ  s     
ÿz0TestDataFramePlots.test_hist_df_with_nonnumericsc                 C   s„  t tj dd¡tdƒd�}| j ¡ \}}|d jjd|d�}|d jj|ddd	� | j	|dd
gd� | 
¡  ¡ stt‚|j 
¡  ¡ s†t‚t ¡  | j ¡ \}}|d jjdd|d�}|d jj|ddd	� | j	|jdd
gd� |j 
¡  ¡ rît‚| 
¡  ¡ sþt‚t ¡  | j ¡ \}}|d jjdd|d�}|d jj|dd� | j	|jddgd� |j 
¡  ¡ �sft‚| 
¡  ¡ �sxt‚t ¡  d S )Nrw   rI   Úabcdrð   rx   T)rz   r   rs   )r   rz   Úsecondary_yz	b (right))Úlabels)rz   r  r   z	a (right))r   rz   )r   r4   r5   r6   Úlistr'   r(   rˆ   r"   r{   Z	get_yaxisrÂ   r9   Zright_axr   r)   Zleft_axrö   r   r   r   Útest_hist_secondary_legend  s,    z-TestDataFramePlots.test_hist_secondary_legendc              	      s|  t tjddgdtjtjgdddggtdƒd�}t d	dd
g¡}t dddgdddggtdƒd�}t dd	d	gd
d
d
gg¡}ddlm‰  | j ¡ \}}|j	j
||d� ‡ fdd„| ¡ D ƒ}dd„ |D ƒ}| j ¡ \}}	|j	j
|	|d� ‡ fdd„|	 ¡ D ƒ}
dd„ |
D ƒ}tdd„ t||ƒD ƒƒ�s&t‚t dd	gd
d
gg¡}d}tjt|d��$ | j ¡ \}}|j	j
||d� W 5 Q R X d S )Nrä   g333333Ó?gš™™™™™Ù?rã   gš™™™™™é?rÚ   Úabcrð   g      Ð?gÍÌÌÌÌÌÜ?r   r£   )r   Úweightsc                    s   g | ]}t |ˆ ƒr|‘qS r   r¹   r»   r£   r   r   r½   A  s     
 zFTestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r   ©rÆ   ©r¼   Úrectr   r   r   r½   B  s     c                    s   g | ]}t |ˆ ƒr|‘qS r   r¹   r»   r£   r   r   r½   E  s     
 c                 S   s   g | ]}|  ¡ ‘qS r   r  r  r   r   r   r½   F  s     c                 s   s   | ]\}}||kV  qd S )Nr   )r¼   Zh0Zh1r   r   r   Ú	<genexpr>G  s     zETestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<genexpr>z?weights must have the same shape as data, or be a single columnr    )r   r4   Únanr  ÚarrayrÀ   r¤   r'   r(   rˆ   r"   rÄ   Úallrõ   r9   r*   r+   r,   )r-   r:   r  Z	no_nan_dfZno_nan_weightsr‹   Zax0rË   Zheightsr/   Zno_nan_rectsZno_nan_heightsZidxerror_weightsr1   r0   r   r£   r   Útest_hist_with_nans_and_weights2  s,     þ z2TestDataFramePlots.test_hist_with_nans_and_weights)r›   rœ   r�   r*   rž   rŸ   rÌ   rÐ   rA   rÖ   rá   r    rí   rr   r   rƒ   r÷   rÿ   r  r¡   Úskip_if_no_mplr  r   r   r   r   r¢   è   sB   
U*þþ
üþ	
&r¢   c                   @   sj   e Zd Zdd„ Zdd„ Zejjdd„ ƒZdd„ Z	d	d
„ Z
dd„ Zdd„ Zej dddddg¡dd„ ƒZdS )ÚTestDataFrameGroupByPlotsc                    sú  ddl m‰  ddlm} ttj dd¡dgd�}ttjj	dd	dtj
d
�ƒ|d< tj 	ddd¡|d< dgd |d< ||j|jd�}| j|ddd� t ¡  |j|jd�}| j|ddd� t ¡  |jddd�}| j|ddd� | j|dd� t ¡  d\}}d\}}||j|jdd||||dd�	}| ¡ D ]4}‡ fdd„| ¡ D ƒ}	|	d  ¡ }
t |
d¡ �q(| j|||||d� t ¡  ||j|jdd �}| j|d!d"� t ¡  t t¡� ||j|jd#d$� W 5 Q R X d%}tjt|d&�� |jdd'd(� W 5 Q R X d S ))Nr   r£   )Ú_grouped_histiô  r   rù   rð   r¦   r§   r¨   rú   rI   rû   ÚXrü   r   rK   rD   rw   )r   Zrotr<   rà   r®   r±   T)r   r¸   r   r´   rµ   r¶   r·   r”   c                    s   g | ]}t |ˆ ƒr|‘qS r   r¹   r»   r£   r   r   r½   ƒ  s     
 zFTestDataFrameGroupByPlots.test_grouped_hist_legacy.<locals>.<listcomp>rG   r¾   r³   )r   r�   r�   r�   rf   )r   r¿   z$Specify figure size by tuple insteadr    Údefault)r   r   )rÀ   r¤   Z pandas.plotting._matplotlib.histr  r   r4   r5   r6   r   rn   rÁ   rù   rû   rS   r   r)   r"   rÃ   ZravelrÄ   rÆ   rÅ   r’   rÇ   rÈ   r*   r+   r,   )r-   r  r:   rW   rÉ   rÊ   rµ   r·   r   rË   r?   r1   r   r£   r   Útest_grouped_hist_legacyS  sp    üÿ÷    ÿz2TestDataFrameGroupByPlots.test_grouped_hist_legacyc                 C   sž   d}t tjjdd|d�ƒ}t tjjdd|d�ƒ}tj d¡jddg|d�}t|||d	œƒ}| d
¡}| ¡ }t	|ƒdks|t
‚t	| j ¡ ƒdks’t
‚t ¡  d S )Nr   é¦   r¯   rï   é<   rø   r   r   )r?   ÚweightrR   rR   r   )r   r4   r5   Únormalrþ   Úchoicer   Úgroupbyr"   r7   r9   r'   r`   r   r)   )r-   Únr  r?   Z
gender_intZdf_intÚgbrW   r   r   r   Útest_grouped_hist_legacy2˜  s    
z3TestDataFrameGroupByPlots.test_grouped_hist_legacy2c              	   C   s:  |}d}t jt|d�� |jd|jdd� W 5 Q R X d}t jt|d�� |jd|jdd� W 5 Q R X d	}t jt|d�� |jd|jd
d� W 5 Q R X tjtdd�� t	|jd|jdd�}W 5 Q R X | j
|ddd� tjtdd�� t	|jd|jdd�}W 5 Q R X | j
|ddd� |jd|jdd�}| j
|ddd� |jd|jdd�}| j
|ddd� |jd|jddd�}| j
|dddd� t ¡  tjtdd�� t	|jdddd�}W 5 Q R X | j
|ddd� tjtdd�� t	|jdd�}W 5 Q R X | j
|ddd� |jddd�}| j
|ddd� |jdddgd �}| j
|ddd� d S )!Nz1Layout of 1x1 must be larger than required size 2r    r  r<   )rß   r   r>   z1Layout of 1x3 must be larger than required size 4r?   rè   rÒ   rÓ   Fr   rB   r   rD   rJ   rH   rI   )rG   r   rN   )rO   r   )rß   r   r>   r   rQ   rU   rK   rF   r   rR   )rF   r   rC   rT   )rß   )r*   r+   r,   r"   rR   rT   r   r#   r$   r   rS   r)   )r-   r@   r:   r1   rW   r   r   r   Útest_grouped_hist_layout¤  s`       ÿ   ÿ   ÿz2TestDataFrameGroupByPlots.test_grouped_hist_layoutc              	   C   sæ   |}| j  dd¡\}}|jdddg|d d�}| j|ddd	� t ||d ¡ |d j|ks`t‚|jd
|d d�}| j|ddd	� t ||d ¡ |d j|ks¤t‚| j  dd¡\}}d}tj	t
|d�� |jd|d�}W 5 Q R X d S )Nr   rF   r?   r  rT   r   )rß   r   rè   rD   rU   r   )r   r   z@The number of passed axes must be 1, the same as the output plotr    )r'   r(   r"   rS   r   Zassert_numpy_array_equalr   r9   r*   r+   r,   )r-   r@   r:   r.   rW   Úreturnedr1   r   r   r   Útest_grouped_hist_multiple_axesÛ  s    z9TestDataFrameGroupByPlots.test_grouped_hist_multiple_axesc                 C   sv   |}|j d|jdd�\}}|  |¡ ||¡s0t‚|  |¡ ||¡sFt‚|  |¡ ||¡r\t‚|  |¡ ||¡rrt‚d S )Nr?   T)rß   r   r¬   ©r"   rR   Ú
get_x_axisÚjoinedr9   Ú
get_y_axis©r-   r@   r:   r/   r0   r   r   r   Útest_axis_share_xï  s    z+TestDataFrameGroupByPlots.test_axis_share_xc                 C   sv   |}|j d|jdd�\}}|  |¡ ||¡s0t‚|  |¡ ||¡sFt‚|  |¡ ||¡r\t‚|  |¡ ||¡rrt‚d S )Nr?   T)rß   r   r­   )r"   rR   r$  r#  r9   r"  r%  r   r   r   Útest_axis_share_yü  s    z+TestDataFrameGroupByPlots.test_axis_share_yc                 C   sx   |}|j d|jddd�\}}|  |¡ ||¡s2t‚|  |¡ ||¡sHt‚|  |¡ ||¡s^t‚|  |¡ ||¡stt‚d S )Nr?   T)rß   r   r¬   r­   r!  r%  r   r   r   Útest_axis_share_xy  s    z,TestDataFrameGroupByPlots.test_axis_share_xyrd   re   rg   rh   rj   c                 C   s>   t tjjdddd�ddgd�}|jd|d�}| j||d	� d S )
Nr   r   rî   rï   rx   rs   rð   )r   rl   rm   rò   ró   r   r   r   rr     s    z0TestDataFrameGroupByPlots.test_histtype_argumentN)r›   rœ   r�   r  r  r*   rž   rŸ   r  r   r&  r'  r(  r    rr   r   r   r   r   r  Q  s"   E
6üþ	r  )Ú__doc__rÔ   Únumpyr4   r*   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr¡   Zpandasr   r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr   r   Zfixturer   r  r   r¢   r  r   r   r   r   Ú<module>   s$   
 M  j