a
    é´«jÏu  ã                   @  s  U d Z ddlmZ ddl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mZ ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZ e d¡Ze d	¡Zd
d„ Zeej ƒedƒk rÚddiddigZ!de"d< nddiddigZ!ej#e!d�dd„ ƒZ$G dd„ dƒZ%G dd„ dƒZ&dS )z  Test cases for .boxplot method é    )ÚannotationsN)Ú	DataFrameÚ
MultiIndexÚSeriesÚ
date_rangeÚplottingÚtimedelta_range)Ú_check_axes_shapeÚ_check_box_return_typeÚ_check_plot_worksÚ_check_ticks_propsÚ_check_visible)ÚVersion)Úpprint_thingZ
matplotlibzmatplotlib.pyplotc                 C  s0   |  ¡ \}}||  ¡ ksJ ‚||  ¡ ks,J ‚d S ©N)Zget_ylimÚminÚmax)ÚcolÚaxZy_minZy_max© r   úh/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/plotting/test_boxplot_method.pyÚ_check_ax_limits#   s    r   ú3.10ÚvertFTzlist[dict[str, bool | str]]ÚvertsÚorientationÚ
horizontalÚvertical)Úparamsc                 C  s   | j S r   )Úparam)Úrequestr   r   r   r   /   s    c                   @  sH  e Zd Zdd„ Zejjej dddidgddd	gidgdd	gd
dœegdgd
dgdœdgdd
iegdd
dgiegddidgd
ddœeg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d!d"„ Zej dg d#¢¡d$d%„ ƒZd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zej d2d3d4d5d6d7œd3d4d5d6d7œfd8d3id8d3ifd3d3d3d3d3d7œfg¡d9d:„ ƒZej d;d<d=d=d>d=d7œfd?d@d@dAd@d7œfg¡dBdC„ ƒZej dDd3d3dEœdFfg¡dGdH„ ƒZej dIg dJ¢¡dKdL„ ƒZej dM¡dNdO„ ƒZej dM¡dPdQ„ ƒZej dM¡dRdS„ ƒZ ej dM¡dTdU„ ƒZ!ej dM¡dVdW„ ƒZ"dS )XÚTestDataFramePlotsc                 C  sÞ   dd l m} d}ttj d¡ g d¢|¡tj d¡ g d¢|¡tj d¡ g d¢|¡dœt d|¡d�}|jddd	�}d
d„ | 	¡ D ƒ|j
 ¡ ks–J ‚| t ddd¡¡ | ¡  dd„ | 	¡ D ƒtt ddd¡ƒksÚJ ‚d S )Nr   éP   é   )r   é   r#   é   )ZClinicalZ	ConfirmedZ	Discarded©ÚindexÚbarT)ÚkindZstackedc                 S  s   g | ]}t | ¡ ƒ‘qS r   ©ÚintÚget_text©Ú.0Úxr   r   r   Ú
<listcomp>C   ó    zDTestDataFramePlots.test_stacked_boxplot_set_axis.<locals>.<listcomp>é
   c                 S  s   g | ]}t | ¡ ƒ‘qS r   r*   r-   r   r   r   r0   F   r1   )Úmatplotlib.pyplotÚpyplotr   ÚnpÚrandomÚdefault_rngÚchoiceZarangeÚplotÚget_xticklabelsr'   Zto_listZ
set_xticksZdrawÚlist)ÚselfÚpltÚnÚdfr   r   r   r   Útest_stacked_boxplot_set_axis5   s     ý
ú ÿz0TestDataFramePlots.test_stacked_boxplot_set_axiszkwargs, warnÚreturn_typeÚdictNÚcolumnÚoneÚtwoÚindic)rC   ÚbyÚindic2rG   Únotchr$   )rG   rI   c                 C  s’   t tj d¡ d¡ttjd d… ƒg d¢d�}ddgd |d	< g d
¢d |d< tj	|dd��" t
|jfi |¤Ž W d   ƒ n1 s„0    Y  d S )Nr#   ©é   é   rK   ©rD   rE   ÚthreeÚfour©r'   ÚcolumnsÚfoor(   r%   rF   )rR   r(   rR   rH   F©Zcheck_stacklevel)r   r5   r6   r7   Ústandard_normalr;   ÚstringÚascii_lettersÚtmÚassert_produces_warningr   Úboxplot)r<   ÚkwargsÚwarnr?   r   r   r   Útest_boxplot_legacy1J   s    ýz'TestDataFramePlots.test_boxplot_legacy1c                 C  s,   t tj d¡ d¡ƒ}ttjj|dd� d S )Nr#   rK   rB   )ÚdatarA   )	r   r5   r6   r7   rT   r   r   Z_corerY   )r<   Zserr   r   r   Útest_boxplot_legacy1_seriese   s    z.TestDataFramePlots.test_boxplot_legacy1_seriesc                 C  s€   t tj d¡ d¡ddgd�}tg d¢ƒ|d< tdgd	 ƒ|d
< tjtdd�� t|j	dd� W d   ƒ n1 sr0    Y  d S )Nr#   ©r2   r#   ÚCol1ÚCol2©rQ   ©
ÚArd   rd   rd   rd   ÚBre   re   re   re   ÚXrd   r2   ÚYFrS   ©rG   )
r   r5   r6   r7   r   rW   rX   ÚUserWarningr   rY   ©r<   r?   r   r   r   Útest_boxplot_legacy2i   s    ÿz'TestDataFramePlots.test_boxplot_legacy2c                 C  st   t tj d¡ d¡ddgd�}tg d¢ƒ|d< tdgd	 ƒ|d
< tj ¡ \}}|jdd|d�}|j	}||u spJ ‚d S )Nr#   r_   r`   ra   rb   rc   rf   rd   r2   rg   )rG   r   )
r   r5   r6   r7   r   Úmplr4   ÚsubplotsrY   Úaxes)r<   r?   Ú_r   rn   Úax_axesr   r   r   Útest_boxplot_legacy2_with_axr   s    ÿz/TestDataFramePlots.test_boxplot_legacy2_with_axc                 C  s|   t tj d¡ d¡ddgd�}tg d¢ƒ|d< tdgd	 ƒ|d
< tj ¡ \}}| d
¡j	|dd�}|j
}||d u sxJ ‚d S )Nr#   r_   r`   ra   rb   rc   rf   rd   r2   rg   rn   ©r   rA   )r   r5   r6   r7   r   rl   r4   rm   ÚgroupbyrY   rn   )r<   r?   Úfigr   rn   rp   r   r   r   Ú(test_boxplot_legacy2_with_ax_return_type   s    ÿz;TestDataFramePlots.test_boxplot_legacy2_with_ax_return_typec                 C  s¦   t tj d¡ d¡ddgd�}tg d¢ƒ|d< tdgd	 ƒ|d
< tj ¡ \}}t 	t
¡�& |jddgd|dd�}W d   ƒ n1 s„0    Y  |d  ¡ |u s¢J ‚d S )Nr#   r_   r`   ra   rb   rc   rf   rd   r2   rg   rn   )rC   rG   r   rA   )r   r5   r6   r7   r   rl   r4   rm   rW   rX   ri   rY   Z
get_figure)r<   r?   rt   r   rn   r   r   r   Ú#test_boxplot_legacy2_with_multi_colŠ   s    ÿÿ$z6TestDataFramePlots.test_boxplot_legacy2_with_multi_colc                 C  sŒ   t tj d¡ d¡ddgd�}tg d¢ƒ|d< tdgd	 ƒ|d
< tj ¡ \}}|j|dd�}t	t
j | ¡ ¡ƒ}t| ¡ ƒt|ƒksˆJ ‚d S )Nr#   r_   r`   ra   rb   rc   rf   rd   r2   rg   rB   rr   )r   r5   r6   r7   r   rl   r4   rm   rY   r;   Ú	itertoolsÚchainÚfrom_iterableÚvaluesÚlenÚ	get_lines)r<   r?   ro   r   ÚdÚlinesr   r   r   Útest_boxplot_legacy2_by_none˜   s    ÿz/TestDataFramePlots.test_boxplot_legacy2_by_nonec                 C  s   |  ¡ }t|tjjƒsJ ‚d S r   )rY   Ú
isinstancerl   r4   ZAxes)r<   Úhist_dfÚresultr   r   r   Útest_boxplot_return_type_none¥   s    z0TestDataFramePlots.test_boxplot_return_type_nonec                 C  s‚   t tj d¡ d¡ttjd d… ƒg d¢d�}d}tj	t
|d�� |jdd	� W d   ƒ n1 sb0    Y  | ¡ }t|d
ƒ d S )Nr#   rJ   rK   rM   rP   z,return_type must be {'axes', 'dict', 'both'}©ÚmatchZ
NOT_A_TYPE©rA   rn   )r   r5   r6   r7   rT   r;   rU   rV   ÚpytestÚraisesÚ
ValueErrorrY   r
   )r<   r?   Úmsgr‚   r   r   r   Útest_boxplot_return_type_legacyª   s    ý*z2TestDataFramePlots.test_boxplot_return_type_legacy©rB   rn   Zbothc                 C  sr   t tj d¡ d¡ttjd d… ƒg d¢d�}t 	d¡� |j
|d�}W d   ƒ n1 sZ0    Y  t||ƒ d S )Nr#   rJ   rK   rM   rP   Fr†   )r   r5   r6   r7   rT   r;   rU   rV   rW   rX   rY   r
   )r<   rA   r?   r‚   r   r   r   Ú+test_boxplot_return_type_legacy_return_type¹   s    ý*z>TestDataFramePlots.test_boxplot_return_type_legacy_return_typec                 C  sl   |  ¡ }tj d¡ dd|jd ¡|d< |jddgdd	�\}}t|d |ƒ t|d |ƒ |j|kshJ ‚d S )
Nr#   r$   é   r   ÚageÚheightÚweightÚcategoryrh   ©	Úcopyr5   r6   r7   ÚintegersÚshaperY   r   Z_sharey)r<   r�   r?   Ú	height_axÚ	weight_axr   r   r   Útest_boxplot_axis_limitsÆ   s     z+TestDataFramePlots.test_boxplot_axis_limitsc                 C  s¶   |  ¡ }tj d¡ dd|jd ¡|d< |jg d¢dd�}|d	 |d
 |d   }}}|d }t|d |ƒ t|d |ƒ t|d |ƒ |j|ks–J ‚|j|ks¤J ‚|jd u s²J ‚d S )Nr#   r$   rŽ   r   r�   )r�   r‘   r�   r’   rh   )r   r   )r   r$   )r$   r   ©r$   r$   r�   r‘   r“   )r<   r�   r?   Úpr—   r˜   Zage_axZdummy_axr   r   r   Ú!test_boxplot_axis_limits_two_rowsÏ   s     z4TestDataFramePlots.test_boxplot_axis_limits_two_rowsc                 C  s<   t tj d¡ d¡ƒ}tj|jd d …df< t|jdd� d S )Nr#   )rŽ   rL   r   rn   r†   )	r   r5   r6   r7   rT   ÚnanÚlocr   rY   rj   r   r   r   Útest_boxplot_empty_columnÞ   s    z,TestDataFramePlots.test_boxplot_empty_columnc                 C  sT   t tj d¡ d¡g d¢d�}|jddd�}|jjjdks>J ‚|jjjd	ksPJ ‚d S )
Nr#   )r2   é   )rd   re   ÚCÚDÚErb   rn   )é   é   )rA   Úfigsizer¤   r¥   )	r   r5   r6   r7   rY   ÚfigureZbbox_inchesÚwidthr�   )r<   r?   r‚   r   r   r   Útest_figsizeã   s    ÿzTestDataFramePlots.test_figsizec                 C  s,   t dg d¢iƒ}t|jddd�ddd� d S )NÚa©r$   r#   r%   rL   r    rK   é   )Úfontsize©Z
xlabelsizeZ
ylabelsize©r   r   rY   rj   r   r   r   Útest_fontsizeë   s    z TestDataFramePlots.test_fontsizec              
   C  sŒ   t tddd�tj d¡ d¡tj d¡ d¡d tddd� t¡tdddd�tddd�dœƒ}|j	d	d
�}dd„ | 
¡ D ƒddgksˆJ ‚d S )Nz
2012-01-01éd   )Úperiodsr#   ÚUTC)r²   Útzz1 days)rª   ÚbÚcr}   ÚeÚfÚbox)r)   c                 S  s   g | ]}|  ¡ ‘qS r   ©r,   r-   r   r   r   r0   ü   r1   z@TestDataFramePlots.test_boxplot_numeric_data.<locals>.<listcomp>rµ   r¶   )r   r   r5   r6   r7   rT   ÚastypeÚstrr   r9   r:   )r<   r?   r   r   r   r   Útest_boxplot_numeric_dataï   s    

úÿ
z,TestDataFramePlots.test_boxplot_numeric_datazcolors_kwd, expectedÚrrµ   Úgr¶   )ÚboxesÚwhiskersÚmediansÚcapsrÀ   c                 C  sR   t tj d¡ d¡ƒ}|j|dd�}| ¡ D ] \}}|| d  ¡ |ks,J ‚q,d S )Nr#   r_   rB   ©ÚcolorrA   r   )r   r5   r6   r7   rY   ÚitemsÚ	get_color)r<   Z
colors_kwdÚexpectedr?   r‚   ÚkÚvr   r   r   Útest_color_kwdþ   s    z!TestDataFramePlots.test_color_kwdzscheme,expectedZdark_backgroundz#8dd3c7z#bfbbd9Údefaultz#1f77b4z#2ca02cc                 C  sj   t tj d¡ d¡ƒ}dd lm} |j |¡ |jj	dd�}| 
¡ D ] \}}|| d  ¡ |ksDJ ‚qDd S )Nr#   r_   r   rB   r†   )r   r5   r6   r7   r3   r4   ÚstyleZuser9   r¹   rÆ   rÇ   )r<   ÚschemerÈ   r?   r=   r‚   rÉ   rÊ   r   r   r   Útest_colors_in_theme  s    z'TestDataFramePlots.test_colors_in_themezdict_colors, msg)rÀ   Zinvalid_keyzinvalid key 'invalid_key'c                 C  sV   t tj d¡ d¡ƒ}tjt|d�� |j|dd� W d   ƒ n1 sH0    Y  d S )Nr#   r_   r„   rB   rÄ   )r   r5   r6   r7   r‡   rˆ   r‰   rY   )r<   Zdict_colorsrŠ   r?   r   r   r   Útest_color_kwd_errors1  s    z(TestDataFramePlots.test_color_kwd_errorszprops, expected))ZboxpropsrÀ   )ZwhiskerpropsrÁ   )ZcappropsrÃ   )ZmedianpropsrÂ   c                 C  sN   t dd„ dD ƒƒ}|ddii}|jf ddi|¤Ž}|| d  ¡ dksJJ ‚d S )	Nc                 S  s    i | ]}|t j d ¡ d¡“qS )r#   r2   )r5   r6   r7   )r.   rÉ   r   r   r   Ú
<dictcomp>F  r1   z?TestDataFramePlots.test_specified_props_kwd.<locals>.<dictcomp>ÚABCrÅ   ZC1rA   rB   r   )r   rY   rÇ   )r<   ÚpropsrÈ   r?   Zkwdr‚   r   r   r   Útest_specified_props_kwd;  s    z+TestDataFramePlots.test_specified_props_kwdz!ignore:set_ticklabels:UserWarningc                 C  s„   t tj d¡ d¡tj d¡ d¡tj d¡ ddgd¡dœƒ}d\}}|jf d||dœ|¤Ž}| ¡ |kspJ ‚| ¡ |ks€J ‚d S )	Nr#   r2   Úgroup1Úgroup2©rª   rµ   Úgroup©r/   Úyr¹   )r)   ÚxlabelÚylabel)	r   r5   r6   r7   rT   r8   r9   Ú
get_xlabelÚ
get_ylabel©r<   r   r?   rÛ   rÜ   r   r   r   r   Útest_plot_xlabel_ylabelL  s    ýÿz*TestDataFramePlots.test_plot_xlabel_ylabelc           
      C  sÔ   t j d¡}t|jdddd�tdƒd�}t|jdddd�tdƒd�}d\}}tjdd	d
d�\}}|jj	f |d ||dœ|¤Ž |jj	f |d ||dœ|¤Ž |D ]$}	|	 
¡ |ks´J ‚|	 ¡ |ks J ‚q tj ¡  d S )Nr#   r   r±   )r±   rL   ©ÚsizeÚABCDrb   rÙ   )r2   é   T)Zncolsr¦   Zsharey)r   rÛ   rÜ   r$   )r5   r6   r7   r   r•   r;   r=   rm   r9   r¹   rÝ   rÞ   rl   r4   Úclose)
r<   r   ÚrngZdf1Údf2rÛ   rÜ   ro   Zaxsr   r   r   r   Útest_plot_boxZ  s    z TestDataFramePlots.test_plot_boxc                 C  s‚   t tj d¡ d¡tj d¡ d¡tj d¡ ddgd¡dœƒ}d\}}|jf ||dœ|¤Ž}| ¡ |ksnJ ‚| ¡ |ks~J ‚d S )Nr#   r2   rÕ   rÖ   r×   rÙ   )rÛ   rÜ   )	r   r5   r6   r7   rT   r8   rY   rÝ   rÞ   rß   r   r   r   Útest_boxplot_xlabel_ylabelj  s    ýÿz-TestDataFramePlots.test_boxplot_xlabel_ylabelc                 C  s˜   t tj d¡ d¡tj d¡ d¡tj d¡ ddgd¡dœƒ}d\}}|jf d||dœ|¤Ž}|D ]$}| ¡ |ksxJ ‚| ¡ |ksdJ ‚qdt	j
 ¡  d S )	Nr#   r2   rÕ   rÖ   r×   rÙ   rØ   )rG   rÛ   rÜ   )r   r5   r6   r7   rT   r8   rY   rÝ   rÞ   rl   r4   rå   )r<   r   r?   rÛ   rÜ   r   Úsubplotr   r   r   Ú test_boxplot_group_xlabel_ylabelx  s    ýÿz3TestDataFramePlots.test_boxplot_group_xlabel_ylabelc                 C  sÞ   t tjƒt dƒkr8|ddikr8| tjj|› d�d�¡ ttj	 
d¡ d¡tj	 
d¡ d¡tj	 
d¡ dd	gd¡d
œƒ}|jf ddi|¤Ž}|D ]>}|ddiks¬|ddikr´| ¡ n| ¡ }|tdgƒks�J ‚q�tj ¡  d S )Nr   r   r   z$ fails starting with matplotlib 3.10)Úreasonr#   r2   rÕ   rÖ   r×   rG   rØ   r   Tr   )r   rl   Ú__version__Zapplymarkerr‡   ÚmarkZxfailr   r5   r6   r7   rT   r8   rY   rÝ   rÞ   r   r4   rå   )r<   r   r    r?   r   rê   Ztarget_labelr   r   r   Ú#test_boxplot_group_no_xlabel_ylabelˆ  s,    ÿÿýÿ
ÿ
þ
üz6TestDataFramePlots.test_boxplot_group_no_xlabel_ylabel)#Ú__name__Ú
__module__Ú__qualname__r@   r‡   rî   ÚslowÚparametrizeri   r\   r^   rk   rq   ru   rv   r   rƒ   r‹   r�   r™   rœ   rŸ   r©   r°   r½   rË   rÏ   rÐ   rÔ   Úfilterwarningsrà   rè   ré   rë   rï   r   r   r   r   r!   4   s    


øþ	
	þúþ
üþ
üþöþ

þ
þ	









r!   c                
   @  s‚  e Zd Zdd„ Zdd„ Zejjdd„ ƒZejjdd„ ƒZ	ej 
d	d
eddgg d¢g¡dd„ ƒZdd„ Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjej 
dg d¢¡dd„ ƒƒZejjej 
dg d¢¡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$g d%¢g d&¢g d'¢g¡d(d)„ ƒƒZejjej 
d*d+d,gd-d
gd.d
gg¡d/d0„ ƒƒZejjd1d2„ ƒZejjej 
d3d4d5g¡d6d7„ ƒƒZejjej 
d8d9d9gd5dgg¡d:d;„ ƒƒZejjej 
d<d9d9gd5dgg¡d=d>„ ƒƒZejjd?d@„ ƒZejjdAdB„ ƒZejjdCdD„ ƒZdEdF„ Zej 
dGdHg dI¢fdHgg dI¢fdJg dK¢fdHdJgg dL¢fdMg dL¢fg¡dNdO„ ƒZ dPdQ„ Z!dRdS„ Z"dMS )TÚTestDataFrameGroupByPlotsc                 C  s`   |j dd�}tjtdd�� t|jdd�}W d   ƒ n1 s>0    Y  tt|jƒddd	� d S )
NÚgenderrh   FrS   rn   r†   r#   )r$   r#   ©Úaxes_numÚlayout)	rs   rW   rX   ri   r   rY   r	   r;   rz   ©r<   r�   Úgroupedrn   r   r   r   r\   ¤  s    ,z.TestDataFrameGroupByPlots.test_boxplot_legacy1c                 C  s.   |j dd�}t|jddd�}t|ddd� d S )	Nr÷   rh   Frn   ©rm   rA   r$   rš   rø   )rs   r   rY   r	   rû   r   r   r   Ú test_boxplot_legacy1_return_typeª  s    z:TestDataFrameGroupByPlots.test_boxplot_legacy1_return_typec                 C  s˜   t tjd d… tdƒƒ}ttj d¡ d¡t 	|¡d�}|j
dd�}tjtdd�� t|jd	d
�}W d   ƒ n1 sv0    Y  tt|jƒddd� d S )Nr2   r#   ©r2   r%   r&   r$   ©ÚlevelFrS   rn   r†   )rL   r%   rø   )ÚziprU   rV   Úranger   r5   r6   r7   r   Úfrom_tuplesrs   rW   rX   ri   r   rY   r	   r;   rz   ©r<   Útuplesr?   rü   rn   r   r   r   rk   ¯  s    þ,z.TestDataFrameGroupByPlots.test_boxplot_legacy2c                 C  sf   t tjd d… tdƒƒ}ttj d¡ d¡t 	|¡d�}|j
dd�}t|jddd	�}t|dd
d� d S )Nr2   r#   rÿ   r&   r$   r   Frn   rý   rš   rø   )r  rU   rV   r  r   r5   r6   r7   r   r  rs   r   rY   r	   r  r   r   r   Ú test_boxplot_legacy2_return_type»  s    þz:TestDataFrameGroupByPlots.test_boxplot_legacy2_return_typez subplots, warn, axes_num, layoutTr%   ©r#   r#   )FNr$   rš   c           
      C  sÐ   t tjd d… tdƒƒ}ttj d¡ d¡t 	|¡d�}d}t
jt|d��& |jdd�jd	dd
�}W d   ƒ n1 sv0    Y  t
j|dd��  t|j|dd�}	W d   ƒ n1 s´0    Y  t|	||d� d S )Nr2   r#   rÿ   r&   z+DataFrame.groupby with axis=1 is deprecatedr„   r$   r   r   )r  ZaxisFrS   rn   rý   rø   )r  rU   rV   r  r   r5   r6   r7   r   r  rW   rX   ÚFutureWarningZunstackrs   r   rY   r	   )
r<   rm   r[   rù   rú   r  r?   rŠ   rü   rn   r   r   r   Útest_boxplot_legacy3Æ  s    þ4ÿ$z.TestDataFrameGroupByPlots.test_boxplot_legacy3c                 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	t
j ¡ ƒdksŽJ ‚t	|ƒdksžJ ‚t d¡ |jdd�}t	t
j ¡ ƒdksÊJ ‚t	|ƒdksÚJ ‚d S )Nr2   r#   é¦   rŽ   rá   é<   ÚmaleÚfemale©r�   r‘   r÷   r÷   Úallrn   r†   r$   )r   r5   r6   r7   Únormalr8   r   rs   r9   r{   rl   r4   Zget_fignumsr=   rå   rY   )r<   r>   r‘   r�   r÷   r?   ÚgbÚresr   r   r   Útest_grouped_plot_fignumsÙ  s    

z3TestDataFrameGroupByPlots.test_grouped_plot_fignumsc                 C  sx   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
¡ ¡  d S )Nr2   r#   r  rŽ   rá   r  r  r  r  r÷   )	r   r5   r6   r7   r  r8   r   rs   Úhist)r<   r>   r‘   r�   r÷   r?   r   r   r   Ú&test_grouped_plot_fignums_excluded_colê  s    z@TestDataFrameGroupByPlots.test_grouped_plot_fignums_excluded_colc                 C  s6   |}|j dd�}t|tjƒs J ‚t|d g d¢d� d S )Nr÷   rh   ©r�   r‘   r’   ©Zexpected_keys)rY   r€   r5   Zndarrayr
   ©r<   r�   r?   r‚   r   r   r   Útest_grouped_box_return_typeó  s    
ÿz6TestDataFrameGroupByPlots.test_grouped_box_return_typec                 C  s,   |}|  d¡jdd�}t|dddgd� d S )Nr÷   rB   r†   ZMaleZFemaler  ©rs   rY   r
   r  r   r   r   Ú$test_grouped_box_return_type_groupbyþ  s    z>TestDataFrameGroupByPlots.test_grouped_box_return_type_groupbyrA   rŒ   c                 C  sL   |}|  d¡j|d�}t||g d¢d� |jd|d�}t||g d¢d� d S )NÚ	classroomr†   ©rd   re   r¡   r  ©rG   rA   r  r  )r<   r�   rA   r?   Úreturnedr   r   r   Ú test_grouped_box_return_type_arg  s    
ÿz:TestDataFrameGroupByPlots.test_grouped_box_return_type_argc                 C  sv   d  ¡ }ttj d¡ d¡|d�}d  ¡ }|d |d< | d¡j|d�}t|||d	� |jd|d
�}t|||d	� d S )Nz	X B C D Ar#   )rK   r    rb   zA Br%   r’   r†   r  r  )	Úsplitr   r5   r6   r7   rT   rs   rY   r
   )r<   rA   Zcolumns2rç   Zcategories2r   r   r   r   Ú.test_grouped_box_return_type_arg_duplcate_cats  s    ÿzHTestDataFrameGroupByPlots.test_grouped_box_return_type_arg_duplcate_catsc                 C  sP   |}d}t jt|d��& |jddg|jdd� W d   ƒ n1 sB0    Y  d S )Nz1Layout of 1x1 must be larger than required size 2r„   r‘   r�   rš   ©rC   rG   rú   ©r‡   rˆ   r‰   rY   r÷   ©r<   r�   r?   rŠ   r   r   r   Ú!test_grouped_box_layout_too_small"  s    z;TestDataFrameGroupByPlots.test_grouped_box_layout_too_smallc                 C  sN   |}d}t jt|d��$ |jg d¢ddd� W d   ƒ n1 s@0    Y  d S )Nz7The 'layout' keyword is not supported when 'by' is Noner„   r  )r#   r$   rB   ©rC   rú   rA   )r‡   rˆ   r‰   rY   r&  r   r   r   Ú test_grouped_box_layout_needs_by*  s    ýz:TestDataFrameGroupByPlots.test_grouped_box_layout_needs_byc                 C  sP   |}d}t jt|d��& |jddg|jdd� W d   ƒ n1 sB0    Y  d S )Nz1At least one dimension of layout must be positiver„   r‘   r�   )éÿÿÿÿr*  r$  r%  r&  r   r   r   Ú'test_grouped_box_layout_positive_layout5  s    zATestDataFrameGroupByPlots.test_grouped_box_layout_positive_layoutzgb_key, axes_num, rows)r÷   r#   r$   )r’   rL   r#   )r  r%   r#   c                 C  sf   |}t jtdd��& t| |¡jddd� W d   ƒ n1 s>0    Y  ttj 	¡ j
||dfd� d S )NFrS   r�   rB   ©rC   rA   r#   rø   ©rW   rX   ri   r   rs   rY   r	   rl   r4   Úgcfrn   )r<   r�   Zgb_keyrù   Úrowsr?   r   r   r   Ú,test_grouped_box_layout_positive_layout_axes<  s    ÿ$zFTestDataFrameGroupByPlots.test_grouped_box_layout_positive_layout_axeszcol, visibler�   Fr‘   r’   c                 C  s^   |}|j g d¢ddd�}ttj ¡ jddd� || }t| ¡ |d� t|j 	¡ g|d� d S )	Nr  r÷   rn   )rC   rG   rA   r%   r  rø   )Úvisible)
rY   r	   rl   r4   r.  rn   r   r:   ZxaxisZ	get_label)r<   r�   r   r1  r?   rn   r   r   r   r   Útest_grouped_box_layout_visibleL  s    
ÿz9TestDataFrameGroupByPlots.test_grouped_box_layout_visiblec                 C  s6   |}|  d¡jg d¢dd� ttj ¡ jddd� d S )Nr  r  rB   r,  r%   r  rø   ©rs   rY   r	   rl   r4   r.  rn   )r<   r�   r?   r   r   r   Útest_grouped_box_layout_shape[  s
    
ÿz7TestDataFrameGroupByPlots.test_grouped_box_layout_shapeÚcolsr#   r*  c                 C  sh   |}t jtdd��, t| d¡jdd|fdd� W d   ƒ n1 sD0    Y  ttj 	¡ j
dd	d
� d S )NFrS   r’   r�   r%   rB   r(  rL   )r%   r#   rø   r-  )r<   r�   r5  r?   r   r   r   Útest_grouped_box_layout_worksc  s    
ü$z7TestDataFrameGroupByPlots.test_grouped_box_layout_worksz	rows, resrL   c                 C  s:   |}|j g d¢d|dfd� ttj ¡ jd|dfd� d S )Nr  r÷   r$   r$  r%   rø   )rY   r	   rl   r4   r.  rn   )r<   r�   r/  r  r?   r   r   r   Ú'test_grouped_box_layout_axes_shape_rowsp  s
    ÿzATestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_rowsz	cols, resc                 C  s@   |}|  d¡jg d¢d|fdd� ttj ¡ jdd|fd� d S )Nr  r  r$   rB   r(  r%   rø   r3  )r<   r�   r5  r  r?   r   r   r   Ú/test_grouped_box_layout_axes_shape_cols_groupbyy  s    
ýzITestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_cols_groupbyc                 C  sp   |}t  t¡�N tj dd¡\}}| d¡jdd|d� ttj 	¡ j
ddd� W d   ƒ n1 sb0    Y  d S )	Nr#   r’   r�   rn   ©rC   rA   r   rL   r  rø   )rW   rX   ri   rl   r4   rm   rs   rY   r	   r.  rn   )r<   r�   r?   ro   rn   r   r   r   Útest_grouped_box_multiple_axes„  s
    z8TestDataFrameGroupByPlots.test_grouped_box_multiple_axesc                 C  s(  |}t j dd¡\}}t t¡�* |jg d¢dd|d d�}W d   ƒ n1 sP0    Y  t t	|j
ƒ¡}t|ddd	� t ||d ¡ |d j|u sšJ ‚t t¡�. | d
¡jg d¢d|d d�}W d   ƒ n1 sØ0    Y  t t	|j
ƒ¡}t|ddd	� t ||d ¡ |d j|u �s$J ‚d S )Nr#   r%   r  r÷   rn   r   )rC   rG   rA   r   )r$   r%   rø   r  r$   r9  )rl   r4   rm   rW   rX   ri   rY   r5   Úarrayr;   rz   r	   Zassert_numpy_array_equalr§   rs   )r<   r�   r?   rt   rn   r   r   r   r   Ú%test_grouped_box_multiple_axes_on_fig“  s*    ü$
ÿ$z?TestDataFrameGroupByPlots.test_grouped_box_multiple_axes_on_figc              	   C  sˆ   |}d}t jt|d��^ tj dd¡\}}t t¡�" | 	d¡j
|d�}W d   ƒ n1 s\0    Y  W d   ƒ n1 sz0    Y  d S )Nz@The number of passed axes must be 3, the same as the output plotr„   r#   r%   r  )r   )r‡   rˆ   r‰   rl   r4   rm   rW   rX   ri   rs   rY   )r<   r�   r?   rŠ   rt   rn   r   r   r   Ú'test_grouped_box_multiple_axes_ax_error®  s    zATestDataFrameGroupByPlots.test_grouped_box_multiple_axes_ax_errorc                 C  s4   t g d¢g d¢dœƒ}t|jdddd�ddd� d S )	Nr«   )r   r   r   r$   r$   r$   )rª   rµ   rª   rµ   r¬   )rG   r­   r®   r¯   rj   r   r   r   r°   ¹  s    ÿz'TestDataFrameGroupByPlots.test_fontsizezcol, expected_xticklabelrÊ   )ú(a, v)ú(b, v)ú(c, v)ú(d, v)ú(e, v)Úv1)ú(a, v1)ú(b, v1)ú(c, v1)ú(d, v1)ú(e, v1))
r>  rD  r?  rE  r@  rF  rA  rG  rB  rH  Nc                 C  s~   t tj d¡ tdƒd¡tj d¡ d¡tj d¡ d¡dœƒ}| d¡}t|jd|dd�}d	d
„ | 	¡ D ƒ}||kszJ ‚d S )Nr#   Zabcder±   )ÚcatrÊ   rC  rI  Frn   )rm   rC   rA   c                 S  s   g | ]}|  ¡ ‘qS r   rº   r-   r   r   r   r0   ô  r1   zQTestDataFrameGroupByPlots.test_groupby_boxplot_subplots_false.<locals>.<listcomp>)
r   r5   r6   r7   r8   r;   rs   r   rY   r:   )r<   r   Úexpected_xticklabelr?   rü   rn   Úresult_xticklabelr   r   r   Ú#test_groupby_boxplot_subplots_false¿  s    (ýÿ

ÿz=TestDataFrameGroupByPlots.test_groupby_boxplot_subplots_falsec                 C  sX   |  d¡}| d¡}d}tjt|d�� t|jdd� W d   ƒ n1 sJ0    Y  d S )NÚobjectr÷   z:boxplot method requires numerical columns, nothing to plotr„   F)rm   )r»   rs   r‡   rˆ   r‰   r   rY   )r<   r�   r?   rü   rŠ   r   r   r   Útest_groupby_boxplot_object÷  s
    

z5TestDataFrameGroupByPlots.test_groupby_boxplot_objectc           	      C  s�   g d¢g d¢g}t t|Ž ƒ}tj|ddgd�}ttj d¡ d¡g d¢|d	�}d
dg}t	|j
|dd�}ddg}dd„ | ¡ D ƒ}||ksŒJ ‚d S )N)r(   r(   ÚbazrO  rR   rR   ÚquxrP  )rD   rE   rD   rE   rD   rE   rD   rE   ÚfirstÚsecond)Únamesr#   )r%   r¥   r  rP   )r(   rD   )r(   rE   rn   r,  z
(bar, one)z
(bar, two)c                 S  s   g | ]}|  ¡ ‘qS r   rº   r-   r   r   r   r0     r1   zLTestDataFrameGroupByPlots.test_boxplot_multiindex_column.<locals>.<listcomp>)r;   r  r   r  r   r5   r6   r7   rT   r   rY   r:   )	r<   Zarraysr  r'   r?   r   rn   rJ  rK  r   r   r   Útest_boxplot_multiindex_columnÿ  s    þýz8TestDataFrameGroupByPlots.test_boxplot_multiindex_column)#rð   rñ   rò   r\   rþ   r‡   rî   ró   rk   r  rô   ri   r
  r  r  r  r  r!  r#  r'  r)  r+  r0  r2  r4  r6  r7  r8  r:  r<  r=  r°   rL  rN  rT  r   r   r   r   rö   £  s”   


þ
	






þÿ
	





þþíþ&
rö   )'Ú__doc__Ú
__future__r   rw   rU   Únumpyr5   r‡   Zpandasr   r   r   r   r   r   Zpandas._testingZ_testingrW   Zpandas.tests.plotting.commonr	   r
   r   r   r   Zpandas.util.versionr   Zpandas.io.formats.printingr   Zimportorskiprl   r=   r   rí   r   Ú__annotations__Zfixturer   r!   rö   r   r   r   r   Ú<module>   s,    



  q