a
    nÝEbÈm  ã                   @   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j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                   @   s¾   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
ej dg d¢¡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"„ ƒZejd#d$„ ƒZdS )%ÚTestSeriesPlotsc                 C   s2   t  | |¡ dd l}| ¡  t ¡ | _d| j_d S )Nr   Úts)r   Úsetup_methodZ
matplotlibZ
rcdefaultsÚtmZmakeTimeSeriesr	   Úname)ÚselfÚmethodZmpl© r   úf/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/plotting/test_hist_method.pyr
      s
    
zTestSeriesPlots.setup_methodc                 C   sŠ  t | jjƒ t | jjdd� t | jjdd� t t¡�& t | jj| jjjd� W d   ƒ n1 sb0    Y  t t¡�( t | jj| jjjdd� W d   ƒ n1 s¤0    Y  | j 	dd¡\}}t | jj|d	d
� t | jj||d	d� t | jj|d	d� t 
¡  | j 	dd¡\}\}}t | jj||d	d� t | jj||d	d� d}tjt|d��$ | jj| jj|d� W d   ƒ n1 �s|0    Y  d S )NF©Úgrid©é   é
   ©Úfigsize©Ú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   r	   Úhistr   Úassert_produces_warningÚUserWarningÚindexÚmonthÚpltÚsubplotsÚcloseÚpytestÚraisesÚ
ValueError)r   Úfigr   Úax1Úax2Úmsgr   r   r   Útest_hist_legacy#   s&    46ÿz TestSeriesPlots.test_hist_legacyc                 C   s<   t tj dd¡ƒ}|jdd�d d }t|jƒdks8J ‚d S )Nr   r    ©r   r   )r   ÚnpÚrandomÚrandnr#   ÚlenÚpatches)r   Údfr   r   r   r   Útest_hist_bins_legacy>   s    z%TestSeriesPlots.test_hist_bins_legacyc                 C   sŠ   | j }d}tjt|d�� |jjdd� W d   ƒ n1 s<0    Y  tjt|d��" |jjddgd� W d   ƒ n1 s|0    Y  d S )Nz7The 'layout' keyword is not supported when 'by' is Noner!   ©r   r   ©Úlayoutr   )Úhist_dfr+   r,   r-   Úheightr#   )r   r9   r1   r   r   r   Útest_hist_layoutC   s    ,z TestSeriesPlots.test_hist_layoutc                 C   sZ  | j }t t¡�$ t|jj|jdd�}W d   ƒ n1 s:0    Y  | j|ddd� t t¡�$ t|jj|jdd�}W d   ƒ n1 sˆ0    Y  | j|ddd� t t¡�$ t|jj|j	dd�}W d   ƒ n1 sÖ0    Y  | j|ddd� t t¡�$ t|jj|j	d	d�}W d   ƒ n1 �s&0    Y  | j|dd
d� t t¡�$ t|jj|j	dd�}W d   ƒ n1 �sv0    Y  | j|ddd� t t¡�$ t|jj|j	dd�}W d   ƒ n1 �sÆ0    Y  | j|ddd� t t¡�$ t|jj|j
d
d�}W d   ƒ n1 �s0    Y  | j|dd
d� |jj|j	ddd�}| j|dddd� d S )N©r    r   ©r   r=   r    ©Úaxes_numr=   )é   éÿÿÿÿ)rE   r   ©é   r   rH   ©r    rF   ©r    r    )rE   r    ©rF   rH   ©r   rH   rE   ©rH   r    )é   é   )r   r=   r   ©rD   r=   r   )r>   r   r$   r%   r   r?   r#   ÚgenderÚ_check_axes_shapeÚcategoryÚ	classroom©r   r9   Úaxesr   r   r   Útest_hist_layout_with_byL   s0    2224444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slJ ‚d S )Nr   )ÚgcfÚsubplotr    éy   éz   )
Zmatplotlib.pyplotrX   rY   r   r4   r5   r6   r#   rV   r7   )r   rX   rY   ÚxÚyr.   rV   r   r   r   Útest_hist_no_overlapq   s    z$TestSeriesPlots.test_hist_no_overlapc                 C   s0   | j }|jj|jd�}t| j ¡ ƒdks,J ‚d S )Nr   r   )r>   r?   r#   rQ   r7   r(   Úget_fignumsrU   r   r   r   Útest_hist_by_no_extra_plots�   s    z+TestSeriesPlots.test_hist_by_no_extra_plotsc                 C   sh   ddl m} |ƒ }|ƒ }| d¡}d}tjt|d��  | jj||d� W d   ƒ n1 sZ0    Y  d S )Nr   )r   éo   z&passed axis not bound to passed figurer!   )r   r   )Zpylabr   Zadd_subplotr+   r,   ÚAssertionErrorr	   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   ri   Ú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   rp   T)r   Úlegendr   rC   )
r   r4   r5   r6   r&   r   r   r#   rR   Ú_check_legend_labels)r   r   Úexpected_axes_numÚexpected_layoutr&   ÚsrV   r   r   r   Útest_hist_with_legendŸ   s    z%TestSeriesPlots.test_hist_with_legendr   Nrp   c                 C   st   ddg ddg  }t tj d¡|dd�}d|j_tjtdd	��  |j	d
|dd� W d   ƒ n1 sf0    Y  d S )Nrq   rr   rs   rt   ru   rv   rp   ú Cannot use both legend and labelr!   TÚc)rw   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jd|d�}t|jƒdks2J ‚|  |j 	¡ d¡ t
 ¡  | j  ¡ \}}| jjjd|d�}|  |j 	¡ d¡ t
 ¡  | j  ¡ \}}| jjjdd|d�}t
 ¡  d S )	Nr   ©r   r   Z	FrequencyÚ
horizontal)Zorientationr   ÚleftT)ÚalignZstackedr   )r(   r)   r	   Úplotr#   r7   r8   Ú_check_text_labelsÚyaxisZ	get_labelr   r*   Zxaxis)r   Ú_r   r   r   r   Útest_hist_kwargs·   s    z TestSeriesPlots.test_hist_kwargsc                 C   sô   | j  ¡ \}}| jjjd|d�}| j|dd� | ¡ }|  |dgt|ƒ ¡ | 	¡ }|  |dgt|ƒ ¡ t
| jjjƒ t
| jj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…   r#   Ú_check_ax_scalesZget_xticklabelsr†   r7   Zget_yticklabelsr   ÚkdeÚdensity)r   rˆ   r   ZxlabelsZylabelsr   r   r   Útest_hist_kdeÇ   s     zTestSeriesPlots.test_hist_kdec                 C   s´   | j  ¡ \}}| jjjddd|d�}| j|dd� t|jƒdksDJ ‚| j|jdgd d� | j  ¡ \}}| jjj	dd|d	�}| j|dd� | 
¡ }t|ƒd
ks¢J ‚|  |dg¡ d S )NTr   rp   )rŠ   r   Úcolorr   r‹   rŒ   )Z
facecolorsÚr)rŠ   r’   r   r   )r(   r)   r	   r…   r#   rŽ   r7   r8   Z_check_colorsr�   Ú	get_lines)r   rˆ   r   Úlinesr   r   r   Útest_hist_kde_colorÝ   s    z#TestSeriesPlots.test_hist_kde_color)Ú__name__Ú
__module__Ú__qualname__r
   r2   r:   r@   rW   r^   r`   rc   r+   ÚmarkÚparametrizero   r|   r€   r‰   ÚtdZskip_if_no_scipyr‘   r–   r   r   r   r   r      s0   		%
þ	
ÿ

	
r   c                   @   sì   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
ddg d¢fg d¢g d¢fg¡dd„ ƒZej	 
dg d¢¡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dS )#ÚTestDataFramePlotsc           
         sD  ddl m‰  t t¡� t| jjƒ W d   ƒ n1 s80    Y  tt	j
 dd¡ƒ}tt	j
j| j| jdt	jd�ƒ|d< t t¡� t|jdd�}W d   ƒ n1 s¤0    Y  | j|dd	d
� |d  ¡ rÎJ ‚t|dg jƒ tt	j
 dd¡ƒ}t|jƒ tt	j
 dd¡ƒ}tt	j
j| j| jdt	jd�ƒ|d< t t¡� t|jdd�}W d   ƒ n1 �s^0    Y  | j|ddd
� t t¡�  t|jddd� W d   ƒ n1 �sª0    Y  t t¡� t|jdd� W d   ƒ n1 �sä0    Y  t t¡� t|jdd� W d   ƒ n1 �s0    Y  |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 d   ƒ n1 �s60    Y  d S )$Nr   ©Ú	Rectangleéd   r    ©ÚsizeÚdtypeFr   rE   rJ   rC   r;   r   r   rM   r<   é   T)ÚsharexÚshareyr   r   r3   ©é   é   ©rt   é(   ©Ú
xlabelsizeÚxrotÚ
ylabelsizeÚyrotrH   )Ú
cumulativer   r�   c                    s   g | ]}t |ˆ ƒr|‘qS r   ©Ú
isinstance©Ú.0r\   rž   r   r   Ú
<listcomp>6  ó    z:TestDataFramePlots.test_hist_df_legacy.<locals>.<listcomp>rF   ç      ð?)r‹   r‹   rŒ   rf   )Úfoo)Úmatplotlib.patchesrŸ   r   r$   r%   r   r>   r#   r   r4   r5   r6   r   rk   Ústart_date_to_int64Úend_date_to_int64Úint64rR   Úget_visibleÚ_check_ticks_propsr*   Úget_childrenÚassert_almost_equalÚ
get_heightrŽ   Úexternal_error_raisedÚAttributeError)
r   r9   rV   rn   ÚxfÚyfr®   r°   r   Úrectsr   rž   r   Útest_hist_df_legacyï   sx    *üÿ,
üÿ.0..
ÿ
ÿ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 d   ƒ n1 s�0    Y  d S )Nr   r   l     úÛp¹/ l    @©spcÍ/ )r£   T)Úutc)ru   rp   r~   ÚdzDhist method requires numerical or datetime columns, nothing to plot.r!   )r   r4   r5   Zrandrk   r   r½   ZastypeÚobjectr+   r,   r-   r#   )r   r9   Zdf_or1   r   r   r   Ú*test_hist_non_numerical_or_datetime_raisesD  s(    

ÿÿ
ÿüøÿ
z=TestDataFramePlots.test_hist_non_numerical_or_datetime_raisesc                 C   sz  t tj dd¡ƒ}ttjj| j| j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 d   ƒ n1 sæ0    Y  t d¡}tjt|d�� |j	dd� W d   ƒ n1 �s,0    Y  d}tjt|d�� |j	dd� W d   ƒ n1 �sl0    Y  d S )Nr    r    r¡   rJ   )r=   Úexpected_sizerG   rL   )rE   rE   rK   )rH   rF   )rF   r    rI   r=   r<   rÍ   rE   rC   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©rF   rF   )r   r4   r5   r6   r   rk   r»   r¼   r½   r#   rR   r+   r,   r-   ÚreÚescape)r   r9   Zlayout_to_expected_sizeZlayout_testrV   rm   r1   r   r   r   r@   ]  s@    üÿ
÷*
,z#TestDataFramePlots.test_hist_layoutc                 C   sX   t tj dd¡ƒ}ttjj| j| jdtjd�ƒ|d< t	|j
dd� | j ¡  t ¡  d S )Nr    r    r¡   T)r   )r   r4   r5   r6   r   rk   r»   r¼   r½   r   r#   r(   Ztight_layoutr   r*   )r   r9   r   r   r   Útest_tight_layout‡  s    üÿ	
z$TestDataFramePlots.test_tight_layoutc              	   C   s@   t g d¢g d¢dœƒ}t|jdddddd	d
�}| j|d	d� d S )N©g      ø?ç      à?g333333ó?gÍÌÌÌÌÌì?rE   )ÚpigÚrabbitrÕ   rÕ   rÖ   )ÚlengthÚanimalTÚalwaysr×   rØ   r   r   )r   ÚfilterwarningsÚcolumnr   r   r®   ©r®   )r   r   r#   r¿   rU   r   r   r   Útest_hist_subplot_xrot—  s    þÿù	z)TestDataFramePlots.test_hist_subplot_xrotzcolumn, expectedN©Úwidthr×   r?   )r×   rß   r?   c                    s\   t g d¢g d¢g d¢dœg d¢d�}t|jd|dd	�‰ ‡ fd
d„tdƒD ƒ}||ksXJ ‚d S )N)gffffffæ?çš™™™™™É?g333333Ã?rà   gš™™™™™ñ?rÓ   )rE   rÔ   g333333@r    r   rÞ   )rÕ   rÖ   ÚduckÚchickenÚhorse)r&   T©r   rE   )r   rÛ   r=   c                    s   g | ]}ˆ d |f   ¡ ‘qS )r   )Z	get_title)rµ   Úi©rV   r   r   r¶   Å  r·   zGTestDataFramePlots.test_hist_column_order_unchanged.<locals>.<listcomp>rE   )r   r   r#   Úrange)r   rÛ   rm   r9   Úresultr   ræ   r   Ú test_hist_column_order_unchanged«  s    
ýú
üz3TestDataFramePlots.test_hist_column_order_unchangedrd   re   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¢   ru   rp   ©Úcolumnsrh   rj   ©r   r4   r5   rk   r#   rl   ©r   ri   rm   r9   r   r   r   r   ro   È  s    z)TestDataFramePlots.test_histtype_argumentr   r~   rÛ   rp   c                 C   sÖ   |d u r|d urdnd}d|f}|p*ddg}|d u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 u r²|d u r²|d }t||ƒD ]\}	}
|  	|
|	¡ q¼d S )Nr   r    ru   rp   rq   rr   rs   r~   ©r   rt   ©r&   rí   T)r   rw   r   rÛ   rC   r   )
r   r   r4   r5   r6   r   r#   rR   Úziprx   )r   r   rÛ   ry   rz   Zexpected_labelsr&   r9   rV   Zexpected_labelr   r   r   r   r|   ×  s&    
ûz(TestDataFramePlots.test_hist_with_legendc                 C   s|   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 d   ƒ n1 sn0    Y  d S )Nrq   rr   rs   r~   rð   rt   r    ru   rp   rñ   r}   r!   TrÊ   )rw   r   rÛ   r   )	r   r   r4   r5   r6   r+   r,   r-   r#   )r   r   rÛ   r&   r9   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sBJ ‚d S )Nr   r    r   r�   )
r   r4   r5   r6   r(   r)   r…   r#   r7   r8   ©r   r9   rˆ   r   r   r   r   Útest_hist_df_kwargsý  s    z&TestDataFramePlots.test_hist_df_kwargsc                 C   s¶   t  d¡�* ttj dd¡g d¢d�}W d   ƒ n1 s:0    Y  ddgd |d	< | j ¡ \}}|jj	d|d
�}t
|jƒdks„J ‚| j ¡ \}}|jj	|d�}t
|jƒdks²J ‚d S )Nr   r   rH   )ÚAÚBÚCÚDrì   r\   r]   r   ÚEr�   r¨   )r   r«   )r   Ú
RNGContextr   r4   r5   r6   r(   r)   r…   r#   r7   r8   ró   r   r   r   Útest_hist_df_with_nonnumerics  s    8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� | 
¡  ¡ stJ ‚|j 
¡  ¡ s†J ‚t ¡  | j ¡ \}}|d jjdd|d�}|d jj|ddd	� | j	|jdd
gd� |j 
¡  ¡ rîJ ‚| 
¡  ¡ sþJ ‚t ¡  | j ¡ \}}|d jjdd|d�}|d jj|dd� | j	|jddgd� |j 
¡  ¡ �sfJ ‚| 
¡  ¡ �sxJ ‚t ¡  d S )Nrt   rH   Úabcdrì   ru   T)rw   r   rp   )r   rw   Úsecondary_yz	b (right))Úlabels)rw   rý   r   z	a (right))r   rw   )r   r4   r5   r6   Úlistr(   r)   r…   r#   rx   Z	get_yaxisr¾   Zright_axr   r*   Zleft_axró   r   r   r   Útest_hist_secondary_legend  s,    z-TestDataFramePlots.test_hist_secondary_legend)r—   r˜   r™   rÈ   rÌ   r@   rÒ   rÝ   r+   rš   r›   ré   ro   r|   r€   rô   rû   r   r   r   r   r   r�   í   s4   U*
þþ
þ	
r�   c                   @   s^   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dg d¢¡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	| j
| j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 d   ƒ n1 �sÚ0    Y  d#}tjt|d$�� |jdd%d&� W d   ƒ n1 �s0    Y  d S )'Nr   rž   )Ú_grouped_histiô  r   rõ   rì   r¡   rö   rH   r÷   ÚXrø   r   rJ   rC   rt   )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¶   i  r·   zFTestDataFrameGroupByPlots.test_grouped_hist_legacy.<locals>.<listcomp>rF   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   rk   r»   r¼   r½   rõ   r÷   rR   r   r*   r#   r¿   ZravelrÀ   rÂ   rÁ   rŽ   rÃ   rÄ   r+   r,   r-   )r   r  r9   rV   rÅ   rÆ   r®   r°   r   rÇ   r?   r1   r   rž   r   Útest_grouped_hist_legacy9  sh    üÿ÷
ÿ2z2TestDataFrameGroupByPlots.test_grouped_hist_legacyc                 C   sÂ   d}t tjjdd|d�ƒ}t tjjdd|d�ƒ}t d¡�$ tjjddg|d�}W d   ƒ n1 sd0    Y  t|||d	œƒ}| d
¡}| 	¡ }t
|ƒdks J ‚t
| j ¡ ƒdks¶J ‚t ¡  d S )Nr   é¦   r¨   rë   é<   é*   r   r   )r?   ÚweightrQ   rQ   r    )r   r4   r5   Únormalr   rú   Úchoicer   Úgroupbyr#   r7   r(   r_   r*   )r   Únr	  r?   Z
gender_intZdf_intÚgbrV   r   r   r   Útest_grouped_hist_legacy2~  s    2
z3TestDataFrameGroupByPlots.test_grouped_hist_legacy2c                 C   s¾  | j }d}tjt|d��" |jd|jdd� W d   ƒ n1 s@0    Y  d}tjt|d��" |jd|jdd� W d   ƒ n1 s„0    Y  d	}tjt|d��" |jd|jd
d� W d   ƒ n1 sÈ0    Y  t t	¡�$ t
|jd|jdd�}W d   ƒ n1 �s0    Y  | j|ddd� t t	¡�$ t
|jd|jdd�}W d   ƒ n1 �sX0    Y  | 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 t	¡�" t
|jdddd�}W d   ƒ n1 �s0    Y  | j|ddd� t t	¡� t
|jdd�}W d   ƒ n1 �sb0    Y  | j|ddd� |jddd�}| j|ddd� |jg d¢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Ï   rA   r    rC   rI   rG   rH   )rF   r   rM   )rN   r   )rÛ   r   r=   r   rP   rT   rJ   rE   r   rQ   )rE   r   rB   ©r?   r	  rS   )rÛ   )r>   r+   r,   r-   r#   rQ   rS   r   r$   r%   r   rR   r*   )r   r9   r1   rV   r   r   r   Útest_grouped_hist_layout‹  sN    000ÿ&ÿ&
ÿ&.z2TestDataFrameGroupByPlots.test_grouped_hist_layoutc                 C   sú   | j }| j dd¡\}}|jg d¢|d d�}| j|ddd� t ||d ¡ |d j|u s`J ‚|jd|d	 d
�}| j|ddd� t ||d	 ¡ |d j|u s¤J ‚| j dd¡\}}d}tj	t
|d�� |jd|d�}W d   ƒ n1 sì0    Y  d S )Nr    rE   r  r   )rÛ   r   rä   rC   rT   r   )r   r   z@The number of passed axes must be 1, the same as the output plotr!   r?   )r>   r(   r)   r#   rR   r   Zassert_numpy_array_equalr   r+   r,   r-   )r   r9   r.   rV   Úreturnedr1   r   r   r   Útest_grouped_hist_multiple_axesÁ  s    z9TestDataFrameGroupByPlots.test_grouped_hist_multiple_axesc                 C   sx   | j }|jd|jdd�\}}|  |¡ ||¡s2J ‚|  |¡ ||¡sHJ ‚|  |¡ ||¡r^J ‚|  |¡ ||¡rtJ ‚d S )Nr?   T)rÛ   r   r¥   ©r>   r#   rQ   Ú
get_x_axisÚjoinedÚ
get_y_axis©r   r9   r/   r0   r   r   r   Útest_axis_share_xÕ  s    z+TestDataFrameGroupByPlots.test_axis_share_xc                 C   sx   | j }|jd|jdd�\}}|  |¡ ||¡s2J ‚|  |¡ ||¡sHJ ‚|  |¡ ||¡r^J ‚|  |¡ ||¡rtJ ‚d S )Nr?   T)rÛ   r   r¦   )r>   r#   rQ   r  r  r  r  r   r   r   Útest_axis_share_yâ  s    z+TestDataFrameGroupByPlots.test_axis_share_yc                 C   sz   | j }|jd|jddd�\}}|  |¡ ||¡s4J ‚|  |¡ ||¡sJJ ‚|  |¡ ||¡s`J ‚|  |¡ ||¡svJ ‚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   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ë   ru   rp   rì   )r   ri   rj   rî   rï   r   r   r   ro   ù  s    z0TestDataFrameGroupByPlots.test_histtype_argumentN)r—   r˜   r™   r  r  r  r  r  r  r  r+   rš   r›   ro   r   r   r   r   r  7  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   rš   ZslowZ
pytestmarkZskip_if_no_mplr   r�   r  r   r   r   r   Ú<module>   s"    U  K