a
    é´«jœˆ  ã                   @   sº   d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
 ddlmZ ddlmZmZmZmZmZmZmZmZmZmZ e d¡Zejdd„ ƒZG dd	„ d	ƒZG d
d„ dƒZG dd„ dƒZdS )z Test cases for .hist method é    N)Ú	DataFrameÚIndexÚSeriesÚ
date_rangeÚto_datetime)
Ú_check_ax_scalesÚ_check_axes_shapeÚ_check_colorsÚ_check_legend_labelsÚ_check_patches_all_filledÚ_check_plot_worksÚ_check_text_labelsÚ_check_ticks_propsÚ
get_x_axisÚ
get_y_axisZ
matplotlibc                   C   s$   t tjdtjd�tdddd�dd�S )Né   ©Údtypez
2020-01-01ÚB)ZperiodsÚfreqÚts©ÚindexÚname)r   ÚnpZarangeZfloat64r   © r   r   úe/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/plotting/test_hist_method.pyr      s
    ýr   c                   @   s   e Zd Zej di ddiddig¡dd„ ƒZej di dd	ig¡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jej dg d¢g d¢g d¢g d¢g d¢g d ¢g d!¢g¡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 d0d1d2g¡d3d4„ ƒZej d5d6d7g¡d8d9„ ƒZd:d;„ Zd<d=„ Zd>d?„ Zejjd@dA�dBdC„ ƒZdDdE„ ZdFdG„ Zejjd@dA�dHdI„ ƒZdJdK„ Z dLdM„ Z!d6S )NÚTestSeriesPlotsÚkwargsÚgridFÚfigsize©é   é
   c                 C   s   t |jfi |¤Ž d S ©N)r   Úhist©Úselfr   r   r   r   r   Útest_hist_legacy_kwargs)   s    z'TestSeriesPlots.test_hist_legacy_kwargsÚbinsé   c                 C   sL   t jtdd��* t|jfd|jji|¤Ž W d   ƒ n1 s>0    Y  d S )NF©Zcheck_stacklevelÚby)ÚtmÚassert_produces_warningÚUserWarningr   r%   r   Úmonthr&   r   r   r   Útest_hist_legacy_kwargs_warning-   s    z/TestSeriesPlots.test_hist_legacy_kwargs_warningc                 C   s&   t j dd¡\}}t|j|dd� d S )Né   T)ÚaxÚdefault_axes©ÚmplÚpyplotÚsubplotsr   r%   ©r'   r   Úfigr3   r   r   r   Útest_hist_legacy_ax3   s    z#TestSeriesPlots.test_hist_legacy_axc                 C   s(   t j dd¡\}}t|j||dd� d S )Nr2   T)r3   Úfigurer4   r5   r9   r   r   r   Útest_hist_legacy_ax_and_fig7   s    z+TestSeriesPlots.test_hist_legacy_ax_and_figc                 C   s&   t j dd¡\}}t|j|dd� d S )Nr2   T)r<   r4   r5   )r'   r   r:   Ú_r   r   r   Útest_hist_legacy_fig;   s    z$TestSeriesPlots.test_hist_legacy_figc                 C   s>   t j dd¡\}\}}t|j||dd� t|j||dd� d S )Nr2   é   T)r<   r3   r4   r5   )r'   r   r:   Úax1Úax2r   r   r   Útest_hist_legacy_multi_ax?   s    z)TestSeriesPlots.test_hist_legacy_multi_axc                 C   sX   t j dd¡\}}d}tjt|d��  |j|j|d� W d   ƒ n1 sJ0    Y  d S )Nr2   z`Cannot pass 'figure' when using the 'by' argument, since a new 'Figure' instance will be created©Úmatch)r,   r<   )r6   r7   r8   ÚpytestÚraisesÚ
ValueErrorr%   r   )r'   r   r:   r>   Úmsgr   r   r   Útest_hist_legacy_by_fig_errorD   s
    ÿz-TestSeriesPlots.test_hist_legacy_by_fig_errorc                 C   s@   t tj d¡ d¡ƒ}|jdd�d d }t|jƒdks<J ‚d S )Nr@   ©r#   r@   )r)   r   )r   r   ÚrandomÚdefault_rngÚstandard_normalr%   ÚlenÚpatches)r'   Údfr3   r   r   r   Útest_hist_bins_legacyM   s    z%TestSeriesPlots.test_hist_bins_legacyc                 C   sˆ   |}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 sz0    Y  d S )Nz7The 'layout' keyword is not supported when 'by' is NonerD   ©r2   r2   ©Úlayoutr2   )rF   rG   rH   Úheightr%   )r'   Úhist_dfrQ   rI   r   r   r   Útest_hist_layoutR   s    ,z TestSeriesPlots.test_hist_layoutz by, layout, axes_num, res_layout)Úgender©r@   r2   r@   rZ   )rY   ©é   éÿÿÿÿr@   )r\   r2   )Úcategory©é   r2   r`   r_   )r^   ©r@   r]   r`   ©r@   r@   )r^   r[   r`   )r\   r@   )r^   ©r]   r`   r`   ©r2   r`   )Ú	classroomrb   r\   rb   c                 C   s\   |}t jtdd��( t|jjt||ƒ|d�}W d   ƒ n1 s@0    Y  t|||d� d S )NFr+   ©r,   rU   ©Úaxes_numrU   )r-   r.   r/   r   rV   r%   Úgetattrr   )r'   rW   r,   rU   rh   Z
res_layoutrQ   Úaxesr   r   r   Útest_hist_layout_with_by[   s    6z(TestSeriesPlots.test_hist_layout_with_byc                 C   s,   |}|j j|jddd�}t|dddd� d S )N©r`   r@   )é   é   )r,   rU   r    r`   ©rh   rU   r    )rV   r%   r^   r   ©r'   rW   rQ   rj   r   r   r   Útest_hist_layout_with_by_shaper   s    z.TestSeriesPlots.test_hist_layout_with_by_shapec                 C   s|   ddl m}m} ttj d¡ d¡ƒ}ttj d¡ d¡ƒ}|dƒ | ¡  |dƒ | ¡  |ƒ }|j	}t
|ƒdksxJ ‚d S )Nr   )ÚgcfÚsubplotr@   éy   éz   )Zmatplotlib.pyplotrr   rs   r   r   rL   rM   rN   r%   rj   rO   )r'   rr   rs   ÚxÚyr:   rj   r   r   r   Útest_hist_no_overlapx   s    z$TestSeriesPlots.test_hist_no_overlapc                 C   s.   |}|j j|jd� ttj ¡ ƒdks*J ‚d S )N©r,   r2   )rV   r%   rY   rO   r6   r7   Úget_fignums)r'   rW   rQ   r   r   r   Útest_hist_by_no_extra_plotsˆ   s    z+TestSeriesPlots.test_hist_by_no_extra_plotsc                 C   sf   ddl m} |ƒ }|ƒ }| d¡}d}tjt|d�� |j||d� W d   ƒ n1 sX0    Y  d S )Nr   )r<   éo   z&passed axis not bound to passed figurerD   )r3   r<   )Zpylabr<   Zadd_subplotrF   rG   ÚAssertionErrorr%   )r'   r   r<   Zfig1Zfig2rA   rI   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   s4   t tj d¡ dd¡ƒ}|j|d�}t||d� d S )Nr@   r2   r#   ©Úhisttype©Zfilled)r   r   rL   rM   Úintegersr%   r   )r'   r„   ÚexpectedÚserr3   r   r   r   Útest_histtype_argument—   s    z&TestSeriesPlots.test_histtype_argumentz&by, expected_axes_num, expected_layout)Nr2   rS   )Úbr@   )r2   r@   c                 C   sf   ddg ddg  }t tj d¡ d¡|dd�}d|j_t|jd	d	|d
�}t	|||d� t
|dƒ d S )Né   Ú1Ú2r@   r   Úar   rŠ   T)r4   Úlegendr,   rg   )r   r   rL   rM   rN   r   r   r   r%   r   r
   )r'   r,   Úexpected_axes_numÚexpected_layoutr   Úsrj   r   r   r   Útest_hist_with_legend¦   s    z%TestSeriesPlots.test_hist_with_legendr,   NrŠ   c                 C   sz   ddg ddg  }t tj d¡ d¡|dd�}d|j_tjt	d	d
��  |j
d|dd� W d   ƒ n1 sl0    Y  d S )Nr‹   rŒ   r�   r@   r   rŽ   r   rŠ   ú Cannot use both legend and labelrD   TÚc)r�   r,   Úlabel)r   r   rL   rM   rN   r   r   rF   rG   rH   r%   )r'   r,   r   r’   r   r   r   Útest_hist_with_legend_raises´   s
    z,TestSeriesPlots.test_hist_with_legend_raisesc                 C   sD   t j ¡ \}}|jjd|d�}t|jƒdks0J ‚t|j 	¡ dƒ d S )Nr*   ©r)   r3   Ú	Frequency)
r6   r7   r8   Úplotr%   rO   rP   r   ÚyaxisÚ	get_label©r'   r   r>   r3   r   r   r   Útest_hist_kwargs¾   s    z TestSeriesPlots.test_hist_kwargsc                 C   sB   t j ¡ \}}|jjd|d�}|jjd|d�}t|j ¡ dƒ d S )Nr*   r˜   Ú
horizontal)Zorientationr3   r™   )r6   r7   r8   rš   r%   r   Zxaxisrœ   r�   r   r   r   Útest_hist_kwargs_horizontalÄ   s    z+TestSeriesPlots.test_hist_kwargs_horizontalc                 C   s4   t j ¡ \}}|jjd|d�}|jjdd|d�}d S )Nr*   r˜   ÚleftT)ÚalignZstackedr3   )r6   r7   r8   rš   r%   r�   r   r   r   Útest_hist_kwargs_alignÊ   s    z&TestSeriesPlots.test_hist_kwargs_alignzApi changed in 3.6.0)Úreasonc                 C   sp   t  d¡ tj ¡ \}}|jjd|d�}t|dd� | ¡ }t	|dgt
|ƒ ƒ | ¡ }t	|dgt
|ƒ ƒ d S ©NÚscipyT)Úlogyr3   Úlog©r›   Ú )rF   Úimportorskipr6   r7   r8   rš   r%   r   Úget_xticklabelsr   rO   Úget_yticklabels©r'   r   r>   r3   ZxlabelsZylabelsr   r   r   Útest_hist_kdeÏ   s    
zTestSeriesPlots.test_hist_kdec                 C   s   t  d¡ t|jjƒ d S ©Nr¦   )rF   r«   r   rš   Úkde©r'   r   r   r   r   Útest_hist_kde_plot_worksÛ   s    
z(TestSeriesPlots.test_hist_kde_plot_worksc                 C   s   t  d¡ t|jjƒ d S r°   )rF   r«   r   rš   Údensityr²   r   r   r   Útest_hist_kde_density_worksß   s    
z+TestSeriesPlots.test_hist_kde_density_worksc                 C   sp   t  d¡ tj ¡ \}}|jjd|d�}t|dd� | ¡ }t	|dgt
|ƒ ƒ | ¡ }t	|dgt
|ƒ ƒ d S r¥   )rF   r«   r6   r7   r8   rš   r±   r   r¬   r   rO   r­   r®   r   r   r   Útest_hist_kde_logyã   s    
z"TestSeriesPlots.test_hist_kde_logyc                 C   sb   t  d¡ tj ¡ \}}|jjddd|d�}t|dd� t|j	ƒdksJJ ‚t
|j	dgd d� d S )	Nr¦   Tr#   rŠ   )r§   r)   Úcolorr3   r¨   r©   )Z
facecolors)rF   r«   r6   r7   r8   rš   r%   r   rO   rP   r	   r�   r   r   r   Útest_hist_kde_color_binsî   s    
z(TestSeriesPlots.test_hist_kde_color_binsc                 C   s^   t  d¡ tj ¡ \}}|jjdd|d�}t|dd� | ¡ }t	|ƒdksNJ ‚t
|dgƒ d S )Nr¦   TÚr)r§   r·   r3   r¨   r©   r2   )rF   r«   r6   r7   r8   rš   r±   r   Ú	get_linesrO   r	   )r'   r   r>   r3   Úlinesr   r   r   Útest_hist_kde_colorö   s    
z#TestSeriesPlots.test_hist_kde_color)"Ú__name__Ú
__module__Ú__qualname__rF   ÚmarkÚparametrizer(   r1   r;   r=   r?   rC   rJ   rR   rX   Úslowrk   rq   rx   r{   r~   r‰   r“   r—   rž   r    r£   Zxfailr¯   r³   rµ   r¶   r¸   r¼   r   r   r   r   r   (   sd   

		ùþ

þ	
ÿ

	


r   c                   @   s  e Zd Zejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZ	ejjej 
d	d
d
dœddiddig¡dd„ ƒƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZdd„ Ze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œf	¡d'd(„ ƒZd)d*„ Zd+d,„ Zd-d.„ Zej 
d/dg d0¢fg d1¢g d1¢fg¡d2d3„ ƒZej 
d4g d5¢¡d6d7„ ƒZej 
d8dd9g¡ej 
d:dd;g¡d<d=„ ƒƒZej 
d8dd9g¡ej 
d:dd;g¡d>d?„ ƒƒZd@dA„ ZdBdC„ ZdDdE„ ZdFdG„ ZdHdI„ ZdJdK„ ZdLdM„ ZdS )NÚTestDataFramePlotsc                 C   s<   t jtdd�� t|jƒ W d   ƒ n1 s.0    Y  d S )NFr+   )r-   r.   r/   r   r%   )r'   rW   r   r   r   Útest_hist_df_legacy  s    z&TestDataFramePlots.test_hist_df_legacyc                 C   s¨   t tj d¡ d¡ƒ}ttj d¡jdddtjd�ƒ|d< tj	t
dd�� t|jdd	�}W d   ƒ n1 sl0    Y  t|d
dd� |d  ¡ r”J ‚t|dg jƒ d S )Nr@   rK   ì     jÕ+2Zì     ÊRŠeöZr#   ©Úsizer   Fr+   )r   r\   rb   rg   rS   )r   r   rL   rM   rN   r   r†   Úint64r-   r.   r/   r   r%   r   Úget_visible©r'   rQ   rj   r   r   r   Útest_hist_df_legacy_layout  s    üÿ,z-TestDataFramePlots.test_hist_df_legacy_layoutc                 C   s$   t tj d¡ d¡ƒ}t|jƒ d S )Nr@   ©r#   r2   )r   r   rL   rM   rN   r   r%   ©r'   rQ   r   r   r   Útest_hist_df_legacy_layout2  s    z.TestDataFramePlots.test_hist_df_legacy_layout2c                 C   sˆ   t tj d¡ d¡ƒ}ttj d¡jdddtjd�ƒ|d< tj	t
dd	�� t|jd
d�}W d   ƒ n1 sl0    Y  t|dd
d� d S )Nr@   ©r#   r*   rÅ   rÆ   r#   rÇ   r*   Fr+   rl   rT   é   rg   )r   r   rL   rM   rN   r   r†   rÉ   r-   r.   r/   r   r%   r   rË   r   r   r   Útest_hist_df_legacy_layout3  s    üÿ,z.TestDataFramePlots.test_hist_df_legacy_layout3r   T)ÚsharexÚshareyr    r!   r)   r*   c                 C   s~   t tj d¡ d¡ƒ}ttj d¡jdddtjd�ƒ|d< tj	t
dd	��" t|jfi |¤Ž W d   ƒ n1 sp0    Y  d S )
Nr@   rÐ   rÅ   rÆ   r#   rÇ   r*   Fr+   )r   r   rL   rM   rN   r   r†   rÉ   r-   r.   r/   r   r%   )r'   r   rQ   r   r   r   Ú!test_hist_df_legacy_layout_kwargs.  s    üÿz4TestDataFramePlots.test_hist_df_legacy_layout_kwargsc                 C   sD   |t dƒƒ}d\}}d\}}|j||||d�}t|||||d� d S )Nr#   ©é   é   ©r   é(   ©Ú
xlabelsizeÚxrotÚ
ylabelsizeÚyrot)Úranger%   r   )r'   Zframe_or_seriesÚobjÚxfÚyfrÝ   rß   rj   r   r   r   Ú(test_hist_df_legacy_layout_labelsize_rotB  s
    z;TestDataFramePlots.test_hist_df_legacy_layout_labelsize_rotc                    sV   ddl m‰  ttdƒƒ}|jdddd�}‡ fdd„| ¡ D ƒ}t |d	  ¡ d
¡ d S )Nr   ©Ú	Rectangler#   Tr`   )Ú
cumulativer)   r´   c                    s   g | ]}t |ˆ ƒr|‘qS r   ©Ú
isinstance©Ú.0rv   rå   r   r   Ú
<listcomp>R  ó    zETestDataFramePlots.test_hist_df_legacy_rectangles.<locals>.<listcomp>r]   ç      ð?)	Úmatplotlib.patchesræ   r   rà   r%   Úget_childrenr-   Úassert_almost_equalÚ
get_height)r'   rˆ   r3   Úrectsr   rå   r   Útest_hist_df_legacy_rectanglesK  s
    z1TestDataFramePlots.test_hist_df_legacy_rectanglesc                 C   s(   t tdƒƒ}|jdd�}t|dd� d S )Nr#   T)r¨   r¨   r©   )r   rà   r%   r   )r'   rˆ   r3   r   r   r   Útest_hist_df_legacy_scaleU  s    z,TestDataFramePlots.test_hist_df_legacy_scalec                 C   sF   t tdƒƒ}t t¡� |jdd� W d   ƒ n1 s80    Y  d S )Nr#   r�   )Úfoo)r   rà   r-   Úexternal_error_raisedÚAttributeErrorr%   )r'   rˆ   r   r   r   Ú"test_hist_df_legacy_external_error\  s    z5TestDataFramePlots.test_hist_df_legacy_external_errorc                 C   s¶   t tj d¡ d¡tj d¡ ddd¡ttj d¡jdddtjd�ƒttj d¡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#   r   l     úÛp¹/ l    @©spcÍ/ r   T)Úutc)rŽ   rŠ   r•   ÚdzDhist method requires numerical or datetime columns, nothing to plot.rD   )r   r   rL   rM   r†   r   rÉ   ZastypeÚobjectrF   rG   rH   r%   )r'   rQ   Zdf_orI   r   r   r   Ú*test_hist_non_numerical_or_datetime_raisesc  s(    
ÿÿ
ÿüøÿ
z=TestDataFramePlots.test_hist_non_numerical_or_datetime_raisesÚlayout_testNrb   )rU   Úexpected_sizer_   rd   )r\   r\   rc   )r`   r]   )r]   r@   ra   c                 C   sd   t tj d¡ d¡ƒ}ttj d¡jdddtjd�ƒ|d< |j|d d�}|d	 }t	|d
|d� d S )Nr@   rK   rÅ   rÆ   r#   rÇ   rU   rT   rÿ   r\   rg   )
r   r   rL   rM   rN   r   r†   rÉ   r%   r   )r'   rþ   rQ   rj   r‡   r   r   r   rX   |  s    üÿz#TestDataFramePlots.test_hist_layoutc                 C   sþ   t tj d¡ d¡ƒ}ttj d¡jdddtjd�ƒ|d< d}tj	t
|d�� |jd	d
� W d   ƒ n1 sn0    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 sð0    Y  d S )Nr@   rK   rÅ   rÆ   r#   rÇ   z1Layout of 1x1 must be larger than required size 3rD   rS   rT   z)Layout must be a tuple of (rows, columns))r2   ú1At least one dimension of layout must be positive©r]   r]   )r   r   rL   rM   rN   r   r†   rÉ   rF   rG   rH   r%   ÚreÚescape)r'   rQ   rI   r   r   r   Útest_hist_layout_error˜  s$    üÿ	*
*z)TestDataFramePlots.test_hist_layout_errorc                 C   sV   t tj d¡ d¡ƒ}ttj d¡jdddtjd�ƒ|d< t|j	dd� t
j ¡  d S )	Nr@   ©éd   r@   rÅ   rÆ   r  rÇ   T)r4   )r   r   rL   rM   rN   r   r†   rÉ   r   r%   r6   r7   Ztight_layoutrÎ   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	�}t|dd
� d S )N©g      ø?ç      à?g333333ó?çÍÌÌÌÌÌì?r\   )ÚpigÚrabbitr  r  r  )ÚlengthÚanimalTr  r  r*   r   )r4   Úcolumnr,   r)   rÝ   ©rÝ   )r   r   r%   r   rË   r   r   r   Útest_hist_subplot_xrot¾  s    þÿúz)TestDataFramePlots.test_hist_subplot_xrotzcolumn, expected©Úwidthr  rV   )r  r  rV   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)çffffffæ?çš™™™™™É?g333333Ã?r  gš™™™™™ñ?r  )r\   r	  g333333@r@   r2   r  )r  r  ÚduckÚchickenÚhorse)r   T©r2   r\   )r4   r  rU   c                    s   g | ]}ˆ d |f   ¡ ‘qS )r   )Z	get_title)rë   Úi©rj   r   r   rì   ë  rí   zGTestDataFramePlots.test_hist_column_order_unchanged.<locals>.<listcomp>r\   )r   r   r%   rà   )r'   r  r‡   rQ   Úresultr   r  r   Ú test_hist_column_order_unchangedÑ  s    
ýú
üz3TestDataFramePlots.test_hist_column_order_unchangedr   r€   c                 C   s@   t tj d¡jdddd�ddgd�}|j|d	�}t||d
� d S )Nr@   r2   r#   r  ©rÈ   rŽ   rŠ   ©Úcolumnsrƒ   r…   ©r   r   rL   rM   r†   r%   r   ©r'   r„   r‡   rQ   r3   r   r   r   r‰   î  s
    ÿz)TestDataFramePlots.test_histtype_argumentr,   r•   r  rŠ   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�}t|||d� |d u r´|d u r´|d }t	||ƒD ]\}	}
t
|
|	ƒ q¾d S )Nr2   r@   rŽ   rŠ   r‹   rŒ   r�   r•   ©r   ©r   r@   ©r   r   T)r4   r�   r,   r  rg   r   )r   r   r   rL   rM   rN   r   r%   r   Úzipr
   )r'   r,   r  r�   r‘   Zexpected_labelsr   rQ   rj   Zexpected_labelr3   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 sr0    Y  d S )Nr‹   rŒ   r�   r•   r#  r@   r$  rŽ   rŠ   r%  r”   rD   Trû   )r�   r,   r  r–   )
r   r   r   rL   rM   rN   rF   rG   rH   r%   )r'   r,   r  r   rQ   r   r   r   r—     s    ýz/TestDataFramePlots.test_hist_with_legend_raisesc                 C   sJ   t tj d¡ d¡ƒ}tj ¡ \}}|jj	d|d�}t
|jƒdksFJ ‚d S )Nr@   rK   r*   r˜   r#   ©r   r   rL   rM   rN   r6   r7   r8   rš   r%   rO   rP   ©r'   rQ   r>   r3   r   r   r   Útest_hist_df_kwargs-  s    z&TestDataFramePlots.test_hist_df_kwargsc                 C   sb   t tj d¡ d¡g d¢d�}ddgd |d< tj ¡ \}}|jj	d|d	�}t
|jƒd
ks^J ‚d S )Nr@   ©r#   r`   ©ÚAr   ÚCÚDr  rv   rw   r*   ÚEr˜   r×   r'  r(  r   r   r   Útest_hist_df_with_nonnumerics3  s    þz0TestDataFramePlots.test_hist_df_with_nonnumericsc                 C   s`   t tj d¡ d¡g d¢d�}ddgd |d< tj ¡ \}}|jj	|d	�}t
|jƒd
ks\J ‚d S )Nr@   r*  r+  r  rv   rw   r*   r/  )r3   rÚ   r'  r(  r   r   r   Ú%test_hist_df_with_nonnumerics_no_bins>  s    þz8TestDataFramePlots.test_hist_df_with_nonnumerics_no_binsc                 C   sŒ   t tj d¡ d¡tdƒd�}tj ¡ \}}|d j	j
d|d�}|d j	j
|ddd	� t|dd
gd� | ¡  ¡ svJ ‚|j ¡  ¡ sˆJ ‚d S )Nr@   ©r   r`   Úabcdr  rŽ   T)r�   r3   rŠ   ©r3   r�   Úsecondary_yú	b (right)©Úlabels)r   r   rL   rM   rN   Úlistr6   r7   r8   rš   r%   r
   Ú	get_yaxisrÊ   Zright_axr(  r   r   r   Útest_hist_secondary_legendI  s    ÿz-TestDataFramePlots.test_hist_secondary_legendc                 C   s�   t tj d¡ d¡tdƒd�}tj ¡ \}}|d j	j
dd|d�}|d j	j
|ddd	� t|jd
dgd� |j ¡  ¡ r|J ‚| ¡  ¡ sŒJ ‚d S )Nr@   r2  r3  r  rŽ   T©r�   r5  r3   rŠ   r4  ú	a (right)r6  r7  ©r   r   rL   rM   rN   r9  r6   r7   r8   rš   r%   r
   Zleft_axr:  rÊ   r(  r   r   r   Útest_hist_secondary_secondaryY  s    ÿz0TestDataFramePlots.test_hist_secondary_secondaryc                 C   sŽ   t tj d¡ d¡tdƒd�}tj ¡ \}}|d j	j
dd|d�}|d j	j
|dd	� t|jd
dgd� |j ¡  ¡ szJ ‚| ¡  ¡ sŠJ ‚d S )Nr@   r2  r3  r  rŽ   Tr<  rŠ   )r3   r�   r=  r7  r>  r(  r   r   r   Útest_hist_secondary_primaryh  s    ÿz.TestDataFramePlots.test_hist_secondary_primaryc                    s„  t  d¡‰ ttjddgdtjtjgg d¢gtdƒd�}t g d¢¡}tg d	¢g d¢gtdƒd�}t g d
¢g d¢g¡}tj 	¡ \}}|j
j||d� ‡ fdd„| ¡ D ƒ}dd„ |D ƒ}tj 	¡ \}}	|j
j|	|d� ‡ fdd„|	 ¡ D ƒ}
dd„ |
D ƒ}tdd„ t||ƒD ƒƒ�sJ ‚t ddgddgg¡}d}t jt|d��. tj 	¡ \}}|j
j||d� W d   ƒ n1 �sv0    Y  d S )Nzmatplotlib.patchesr  ç333333Ó?çš™™™™™Ù?)r  gš™™™™™é?r
  Úabcr  )ç      Ð?rA  çÍÌÌÌÌÌÜ?)rB  r  rA  )rA  rD  rD  )rE  rE  rE  )r3   Úweightsc                    s   g | ]}t |ˆ jƒr|‘qS r   ©ré   ræ   rê   ©Zmpl_patchesr   r   rì   …  rí   zFTestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r   ©rò   ©rë   Zrectr   r   r   rì   †  rí   c                    s   g | ]}t |ˆ jƒr|‘qS r   rG  rê   rH  r   r   rì   ‰  s   c                 S   s   g | ]}|  ¡ ‘qS r   rI  rJ  r   r   r   rì   Œ  rí   c                 s   s   | ]\}}||kV  qd S r$   r   )rë   Zh0Úh1r   r   r   Ú	<genexpr>�  rí   zETestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<genexpr>rD  rE  z?weights must have the same shape as data, or be a single columnrD   )rF   r«   r   r   Únanr9  Úarrayr6   r7   r8   rš   r%   rð   Úallr&  rG   rH   )r'   rQ   rF  Z	no_nan_dfZno_nan_weightsr>   Zax0ró   ZheightsrA   Zno_nan_rectsZno_nan_heightsZidxerror_weightsrI   rB   r   rH  r   Útest_hist_with_nans_and_weightsx  s0    
þ
ÿz2TestDataFramePlots.test_hist_with_nans_and_weights) r½   r¾   r¿   rF   rÀ   rÂ   rÄ   rÌ   rÏ   rÒ   rÁ   rÕ   rä   rô   rõ   rù   rý   rX   r  r  r  r  r‰   r“   r—   r)  r0  r1  r;  r?  r@  rP  r   r   r   r   rÃ      s€   



ÿ

	

÷þ

þþ
þ	
rÃ   c                   @   sj  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jej dg d¢g d¢g d¢g¡dd„ ƒƒZejjdd„ ƒZejjej dg d¢g d¢g d¢g¡dd„ ƒƒZejjej di d d!d"œg¡d#d$„ ƒƒZejjej d%d&d'd(œd)d'gd*g d+¢id,d!gg¡d-d.„ ƒƒZd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zej d;g d<¢¡d=d>„ ƒZd?S )@ÚTestDataFrameGroupByPlotsc                 C   sŠ   ddl m} tj d¡}t| d¡dgd�}t|jdddtj	d	�ƒ|d
< | ddd¡|d< dgd |d< ||j
|jd�}t|ddd� d S )Nr   ©Ú_grouped_histr#   rÍ   r,  r  rÅ   rÆ   rÇ   r   r`   r-  ÚXr.  ry   rb   rg   )Ú pandas.plotting._matplotlib.histrS  r   rL   rM   r   rN   r   r†   rÉ   r,  r-  r   ©r'   rS  ÚrsrQ   rj   r   r   r   Útest_grouped_hist_legacy˜  s    üÿz2TestDataFrameGroupByPlots.test_grouped_hist_legacyc                 C   s|   t j d¡}t| d¡dgd�}t|jdddt jd�ƒ|d< | d	d
d¡|d< dgd |d< |j|j	d�}t
|d
dd� d S )Nr#   rÍ   r,  r  rÅ   rÆ   rÇ   r   r   r`   r-  rT  r.  ry   rb   rg   )r   rL   rM   r   rN   r   r†   rÉ   r%   r-  r   ©r'   rW  rQ   rj   r   r   r   Ú*test_grouped_hist_legacy_axes_shape_no_col«  s    üÿzDTestDataFrameGroupByPlots.test_grouped_hist_legacy_axes_shape_no_colc                 C   sˆ   t j d¡}t| d¡dgd�}t|jdddt jd�ƒ|d	< | d
dd¡|d< dgd |d< |jddd�}t	|ddd� t
|dd� d S )Nr@   rÍ   r,  r  rÅ   rÆ   r#   rÇ   r   r   r`   r-  rT  r.  r   )r,   Zrotr2   rS   rg   r  )r   rL   rM   r   rN   r   r†   rÉ   r%   r   r   rY  r   r   r   Ú#test_grouped_hist_legacy_single_key»  s    üÿz=TestDataFrameGroupByPlots.test_grouped_hist_legacy_single_keyc                    sæ   ddl m‰  ddlm} tj d¡}t| d¡dgd�}t	|j
dd	d
tjd�ƒ|d< | 
ddd
¡|d< d\}}d\}}||j|jdd||||dd�	}| ¡ D ]2}	‡ fdd„|	 ¡ D ƒ}
|
d  ¡ }t |d¡ qœt|||||d� d S )Nr   rå   rR  r@   rÍ   r,  r  rÅ   rÆ   r#   rÇ   r   r`   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ì   î  rí   zZTestDataFrameGroupByPlots.test_grouped_hist_legacy_grouped_hist_kwargs.<locals>.<listcomp>r]   rî   rÛ   )rï   ræ   rU  rS  r   rL   rM   r   rN   r   r†   rÉ   r,  r-  Zravelrð   rò   r-   rñ   r   )r'   rS  rW  rQ   râ   rã   rÝ   rß   rj   r3   ró   rV   r   rå   r   Ú,test_grouped_hist_legacy_grouped_hist_kwargsÍ  s>    üÿ÷zFTestDataFrameGroupByPlots.test_grouped_hist_legacy_grouped_hist_kwargsc                 C   sŠ   ddl m} tj d¡}t| d¡dgd�}t|jddd	tj	d
�ƒ|d< | ddd	¡|d< dgd	 |d< ||j
|jdd�}t|dd� d S )Nr   rR  r@   rÍ   r,  r  rÅ   rÆ   r#   rÇ   r   r`   r-  rT  r.  T)r,   r¨   r¨   r©   )rU  rS  r   rL   rM   r   rN   r   r†   rÉ   r,  r-  r   rV  r   r   r   Ú%test_grouped_hist_legacy_grouped_histó  s    üÿz?TestDataFrameGroupByPlots.test_grouped_hist_legacy_grouped_histc                 C   s¨   ddl m} tj d¡}t| d¡dgd�}t|jddd	tj	d
�ƒ|d< | ddd	¡|d< dgd	 |d< t
 t¡�" ||j|jdd� W d   ƒ n1 sš0    Y  d S )Nr   rR  r@   rÍ   r,  r  rÅ   rÆ   r#   rÇ   r   r`   r-  rT  r.  r�   )r,   rö   )rU  rS  r   rL   rM   r   rN   r   r†   rÉ   r-   r÷   rø   r,  r-  )r'   rS  rW  rQ   r   r   r   Ú%test_grouped_hist_legacy_external_err  s    üÿz?TestDataFrameGroupByPlots.test_grouped_hist_legacy_external_errc                 C   s    t j d¡}t| d¡dgd�}t|jdddt jd�ƒ|d	< | d
dd¡|d< dgd |d< d}tj	t
|d�� |jddd� W d   ƒ n1 s’0    Y  d S )Nr@   rÍ   r,  r  rÅ   rÆ   r#   rÇ   r   r   r`   r-  rT  r.  z$Specify figure size by tuple insteadrD   Údefault)r,   r    )r   rL   rM   r   rN   r   r†   rÉ   rF   rG   rH   r%   )r'   rW  rQ   rI   r   r   r   Ú$test_grouped_hist_legacy_figsize_err  s    üÿz>TestDataFrameGroupByPlots.test_grouped_hist_legacy_figsize_errc                 C   s¢   d}t tj d¡jdd|d�ƒ}t tj d¡jdd|d�ƒ}tj d¡jddg|d�}t|||d	œƒ}| d
¡}| ¡ }t	|ƒdksˆJ ‚t	t
j ¡ ƒdksžJ ‚d S )Nr#   r@   é¦   r×   r  é<   r   r2   )rV   ÚweightrY   rY   )r   r   rL   rM   ÚnormalÚchoicer   Úgroupbyr%   rO   r6   r7   rz   )r'   Únrc  rV   Z
gender_intZdf_intÚgbrj   r   r   r   Útest_grouped_hist_legacy2*  s    
z3TestDataFrameGroupByPlots.test_grouped_hist_legacy2zmsg, plot_col, by_col, layout)z1Layout of 1x1 must be larger than required size 2rc  rY   rS   )z1Layout of 1x3 must be larger than required size 4rV   r^   r  )r   rV   r^   r  c                 C   sL   |}t jt|d��& |j|t||ƒ|d� W d   ƒ n1 s>0    Y  d S )NrD   ©r  r,   rU   )rF   rG   rH   r%   ri   )r'   rW   rI   Zplot_colZby_colrU   rQ   r   r   r   Útest_grouped_hist_layout_error5  s    z8TestDataFrameGroupByPlots.test_grouped_hist_layout_errorc                 C   sX   |}t jtdd��$ t|jd|jdd�}W d   ƒ n1 s<0    Y  t|ddd� d S )NFr+   rV   rZ   rj  r@   rg   )r-   r.   r/   r   r%   rY   r   rp   r   r   r   Ú test_grouped_hist_layout_warningR  s    ÿ$z:TestDataFrameGroupByPlots.test_grouped_hist_layout_warningzlayout, check_layout, figsize)r_   r_   N))r]   r2   r_   N)rl   rl   )rm   r"   c                 C   s,   |}|j d|j||d�}t|d||d� d S )NrV   )r  r,   rU   r    r`   ro   )r%   r^   r   )r'   rW   rU   Zcheck_layoutr    rQ   rj   r   r   r   Ú test_grouped_hist_layout_figsize[  s    z:TestDataFrameGroupByPlots.test_grouped_hist_layout_figsizer   rV   rb   )r  rU   c                 C   sZ   |}t jtdd��& t|jfddi|¤Ž}W d   ƒ n1 s>0    Y  t|ddd� d S )NFr+   r,   re   r\   rb   rg   )r-   r.   r/   r   r%   r   )r'   rW   r   rQ   rj   r   r   r   Ú#test_grouped_hist_layout_by_warninge  s    4z=TestDataFrameGroupByPlots.test_grouped_hist_layout_by_warningzkwargs, axes_num, layoutrY   )r\   r*   rf   r@   r  ©rV   rc  r^   r\   c                 C   s&   |}|j f i |¤Ž}t|||d� d S )Nrg   )r%   r   )r'   rW   r   rh   rU   rQ   rj   r   r   r   Útest_grouped_hist_layout_axesn  s    	z7TestDataFrameGroupByPlots.test_grouped_hist_layout_axesc                 C   s`   |}t j dd¡\}}|jg d¢|d d�}t|ddd� t ||d ¡ |d j|u s\J ‚d S )Nr@   r\   ro  r   ©r  r3   r  rg   ©r6   r7   r8   r%   r   r-   Zassert_numpy_array_equalr<   ©r'   rW   rQ   r:   rj   Úreturnedr   r   r   Útest_grouped_hist_multiple_axes{  s    z9TestDataFrameGroupByPlots.test_grouped_hist_multiple_axesc                 C   s\   |}t j dd¡\}}|jd|d d�}t|ddd� t ||d ¡ |d j|u sXJ ‚d S )	Nr@   r\   re   r2   )r,   r3   r  rg   r   rr  rs  r   r   r   Ú'test_grouped_hist_multiple_axes_no_cols…  s    zATestDataFrameGroupByPlots.test_grouped_hist_multiple_axes_no_colsc                 C   sZ   |}t j dd¡\}}d}tjt|d�� |jd|d�}W d   ƒ n1 sL0    Y  d S )Nr@   r\   z@The number of passed axes must be 1, the same as the output plotrD   rV   rq  )r6   r7   r8   rF   rG   rH   r%   )r'   rW   rQ   r:   rj   rI   r   r   r   Ú%test_grouped_hist_multiple_axes_error�  s
    z?TestDataFrameGroupByPlots.test_grouped_hist_multiple_axes_errorc                 C   sn   |}|j d|jdd�\}}t|ƒ ||¡s.J ‚t|ƒ ||¡sBJ ‚t|ƒ ||¡rVJ ‚t|ƒ ||¡rjJ ‚d S )NrV   T)r  r,   rÓ   ©r%   rY   r   Újoinedr   ©r'   rW   rQ   rA   rB   r   r   r   Útest_axis_share_x˜  s    z+TestDataFrameGroupByPlots.test_axis_share_xc                 C   sn   |}|j d|jdd�\}}t|ƒ ||¡s.J ‚t|ƒ ||¡sBJ ‚t|ƒ ||¡rVJ ‚t|ƒ ||¡rjJ ‚d S )NrV   T)r  r,   rÔ   )r%   rY   r   ry  r   rz  r   r   r   Útest_axis_share_y¥  s    z+TestDataFrameGroupByPlots.test_axis_share_yc                 C   sp   |}|j d|jddd�\}}t|ƒ ||¡s0J ‚t|ƒ ||¡sDJ ‚t|ƒ ||¡sXJ ‚t|ƒ ||¡slJ ‚d S )NrV   T)r  r,   rÓ   rÔ   rx  rz  r   r   r   Útest_axis_share_xy±  s    z,TestDataFrameGroupByPlots.test_axis_share_xyr   r€   c                 C   sB   t tj d¡jdddd�ddgd�}|jd|d	�}t||d
� d S )Nr@   r2   r#   rK   r  rŽ   rŠ   r  )r,   r„   r…   r!  r"  r   r   r   r‰   ¼  s
    ÿz0TestDataFrameGroupByPlots.test_histtype_argumentN)r½   r¾   r¿   rX  rZ  r[  r\  r]  r^  r`  ri  rF   rÀ   rÂ   rÁ   rk  rl  rm  rn  rp  ru  rv  rw  r{  r|  r}  r‰   r   r   r   r   rQ  —  s^   &óþ
þþþ

	þ	rQ  ) Ú__doc__r  Únumpyr   rF   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr-   Zpandas.tests.plotting.commonr   r   r	   r
   r   r   r   r   r   r   r«   r6   Zfixturer   r   rÃ   rQ  r   r   r   r   Ú<module>   s    0

 Y   