o
    թZhr                     @   s   d 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 edZedZdd	 ZG d
d dZG dd dZdS )z  Test cases for .boxplot method     N)	DataFrame
MultiIndexSeries
date_rangeplottingtimedelta_range)_check_axes_shape_check_box_return_type_check_plot_works_check_ticks_props_check_visible)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   `/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/plotting/test_boxplot_method.py_check_ax_limits    s   r   c                   @   sf  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dMdNdOgdPdQ ZejdMdNdOgdRdS ZejdMdNdOgdTdU ZejdMdNdOgdVdW Z ejdMdNdOgdXdY Z!dS )Z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sKJ |tddd |  dd |	 D ttdddksmJ d S )Nr   P      )r      r      )ZClinicalZ	ConfirmedZ	DiscardedindexbarT)kindZstackedc                 S      g | ]}t | qS r   intget_text.0xr   r   r   
<listcomp>5       zDTestDataFramePlots.test_stacked_boxplot_set_axis.<locals>.<listcomp>
   c                 S   r   r   r    r#   r   r   r   r&   8   r'   )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_axis'   s    
 z0TestDataFramePlots.test_stacked_boxplot_set_axiszkwargs, warnreturn_typedictNcolumnonetwoindic)r9   byindic2r=   notchr   )r=   r?   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    d S 1 sCw   Y  d S )Nr         rA   r:   r;   threefourr   columnsfoor   r   r<   )rH   r   rH   r>   FZcheck_stacklevel)r   r+   r,   r-   standard_normalr1   stringascii_letterstmassert_produces_warningr
   boxplot)r2   kwargswarnr5   r   r   r   test_boxplot_legacy1<   s   "z'TestDataFramePlots.test_boxplot_legacy1c                 C   s,   t tjdd}ttjj|dd d S )Nr   rA   r8   )datar7   )	r   r+   r,   r-   rJ   r
   r   Z_corerO   )r2   Zserr   r   r   test_boxplot_legacy1_seriesW   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    d S 1 s:w   Y  d S )Nr   r(   r   Col1Col2rG   
ArZ   rZ   rZ   rZ   Br[   r[   r[   r[   XrZ   r(   YFrI   r=   )
r   r+   r,   r-   r   rM   rN   UserWarningr
   rO   r2   r5   r   r   r   test_boxplot_legacy2[   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 s8J d S )Nr   rU   rV   rW   rX   rY   r\   rZ   r(   r]   )r=   r   )
r   r+   r,   r-   r   mplr*   subplotsrO   axes)r2   r5   _r   rd   ax_axesr   r   r   test_boxplot_legacy2_with_axd   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 s<J d S )Nr   rU   rV   rW   rX   rY   r\   rZ   r(   r]   rd   r   r7   )r   r+   r,   r-   r   rb   r*   rc   groupbyrO   rd   )r2   r5   figr   rd   rf   r   r   r   (test_boxplot_legacy2_with_ax_return_typeq   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 sBw   Y  |d  |u sQJ d S )Nr   rU   rV   rW   rX   rY   r\   rZ   r(   r]   rd   )r9   r=   r   r7   )r   r+   r,   r-   r   rb   r*   rc   rM   rN   r_   rO   Z
get_figure)r2   r5   rj   r   rd   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sDJ d S )Nr   rU   rV   rW   rX   rY   r\   rZ   r(   r]   r8   rh   )r   r+   r,   r-   r   rb   r*   rc   rO   r1   	itertoolschainfrom_iterablevalueslen	get_lines)r2   r5   re   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   )rO   
isinstancerb   r*   ZAxes)r2   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 s1w   Y  | }t|d
 d S )Nr   r@   rA   rC   rF   z,return_type must be {'axes', 'dict', 'both'}matchZ
NOT_A_TYPEr7   rd   )r   r+   r,   r-   rJ   r1   rK   rL   pytestraises
ValueErrorrO   r	   )r2   r5   msgrx   r   r   r   test_boxplot_return_type_legacy   s   z2TestDataFramePlots.test_boxplot_return_type_legacyr8   rd   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 s-w   Y  t|| d S )Nr   r@   rA   rC   rF   Fr|   )r   r+   r,   r-   rJ   r1   rK   rL   rM   rN   rO   r	   )r2   r7   r5   rx   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s4J d S )
Nr   r      r   ageheightweightcategoryr^   	copyr+   r,   r-   integersshaperO   r   Z_sharey)r2   rw   r5   	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sKJ |j|ksRJ |jd u sYJ d S )Nr   r   r   r   r   )r   r   r   r   r^   )r   r   )r   r   )r   r   r   r   r   r   r   )r2   rw   r5   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   rB   r   rd   r|   )	r   r+   r,   r-   rJ   nanlocr
   rO   r`   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s(J d S )
Nr   )r(      )rZ   r[   CDErX   rd   )      )r7   figsizer   r   )	r   r+   r,   r-   rO   figureZbbox_incheswidthr   )r2   r5   rx   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   rB   r   rA      )fontsizeZ
xlabelsizeZ
ylabelsizer   r   rO   r`   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sDJ d S )Nz
2012-01-01d   )periodsr   UTC)r   tzz1 days)r   bcrs   efbox)r   c                 S      g | ]}|  qS r   r"   r#   r   r   r   r&          z@TestDataFramePlots.test_boxplot_numeric_data.<locals>.<listcomp>r   r   )r   r   r+   r,   r-   rJ   astypestrr   r/   r0   )r2   r5   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   rU   r8   colorr7   r   )r   r+   r,   r-   rO   items	get_color)r2   Z
colors_kwdexpectedr5   rx   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s2J q"d S )Nr   rU   r   r8   r|   )r   r+   r,   r-   r)   r*   styleZuser/   r   r   r   )r2   schemer   r5   r3   rx   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   sX   t tjdd}tjt|d |j|dd W d    d S 1 s%w   Y  d S )Nr   rU   rz   r8   r   )r   r+   r,   r-   r}   r~   r   rO   )r2   Zdict_colorsr   r5   r   r   r   test_color_kwd_errors#  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d	ddi|}|| d  dks%J d S )
Nc                 S   s    i | ]}|t jd dqS )r   r(   )r+   r,   r-   )r$   r   r   r   r   
<dictcomp>8  s     z?TestDataFramePlots.test_specified_props_kwd.<locals>.<dictcomp>ABCr   ZC1r7   r8   r   r   )r   rO   r   )r2   propsr   r5   Zkwdrx   r   r   r   test_specified_props_kwd-  s   z+TestDataFramePlots.test_specified_props_kwdvertTFc                 C   s~   t tjddtjddtjdddgdd}d\}}|jd|||d}| |ks5J | |ks=J d S )	Nr   r(   group1group2r   r   groupr%   yr   )r   r   xlabelylabel)	r   r+   r,   r-   rJ   r.   r/   
get_xlabel
get_ylabelr2   r   r5   r   r   r   r   r   r   test_plot_xlabel_ylabel>  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	|d |||d |jj	|d |||d |D ]}	|	
 |ksTJ |	 |ks\J qJtj  d S )Nr   r   r   )r   rB   sizeZABCDrX   r   )r(      T)Zncolsr   Zsharey)r   r   r   r   r   )r+   r,   r-   r   r   r1   r3   rc   r/   r   r   r   rb   r*   close)
r2   r   rngZdf1df2r   r   re   Zaxsr   r   r   r   test_plot_boxL  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|||d}| |ks4J | |ks<J d S )Nr   r(   r   r   r   r   )r   r   r   )	r   r+   r,   r-   rJ   r.   rO   r   r   r   r   r   r   test_boxplot_xlabel_ylabel\  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d|||d}|D ]}| |ks9J | |ksAJ q/t	j
  d S )	Nr   r(   r   r   r   r   r   )r=   r   r   r   )r   r+   r,   r-   rJ   r.   rO   r   r   rb   r*   r   )r2   r   r5   r   r   r   subplotr   r   r    test_boxplot_group_xlabel_ylabelj  s   z3TestDataFramePlots.test_boxplot_group_xlabel_ylabelc                 C   s   t tjddtjddtjdddgdd}|jd|d}|D ]}|r1| n| }|t	dgks>J q)t
j  d S )Nr   r(   r   r   r   r   )r=   r   )r   r+   r,   r-   rJ   r.   rO   r   r   r   rb   r*   r   )r2   r   r5   r   r   Ztarget_labelr   r   r   #test_boxplot_group_no_xlabel_ylabelz  s   z6TestDataFramePlots.test_boxplot_group_no_xlabel_ylabel)"__name__
__module____qualname__r6   r}   markslowparametrizer_   rR   rT   ra   rg   rk   rl   ru   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   &   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w   Y  tt|jddd	 d S )
Ngenderr^   FrI   rd   r|   r   )r   r   axes_numlayout)	ri   rM   rN   r_   r
   rO   r   r1   rp   r2   rw   groupedrd   r   r   r   rR     s
   z.TestDataFrameGroupByPlots.test_boxplot_legacy1c                 C   s.   |j dd}t|jddd}t|ddd d S )	Nr   r^   Frd   rc   r7   r   r   r   )ri   r
   rO   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 s;w   Y  tt|jddd d S )Nr(   r   r(   r   r   r   levelFrI   rd   r|   )rB   r   r   )ziprK   rL   ranger   r+   r,   r-   r   from_tuplesri   rM   rN   r_   r
   rO   r   r1   rp   r2   tuplesr5   r   rd   r   r   r   ra     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 )Nr(   r   r   r   r   r   Frd   r   r   r   )r   rK   rL   r   r   r+   r,   r-   r   r   ri   r
   rO   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 s;w   Y  t
j|dd t|j|dd}	W d    n1 sZw   Y  t|	||d d S )Nr(   r   r   r   z+DataFrame.groupby with axis=1 is deprecatedrz   r   r   r   )r   ZaxisFrI   rd   r   r   )r   rK   rL   r   r   r+   r,   r-   r   r   rM   rN   FutureWarningZunstackri   r
   rO   r   )
r2   rc   rQ   r   r   r   r5   r   r   rd   r   r   r   test_boxplot_legacy3  s   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sGJ t	|dksOJ td |jdd}t	t
j dkseJ t	|dksmJ d S )Nr(   r      r   r   <   malefemaler   r   r   r   allrd   r|   r   )r   r+   r,   r-   normalr.   r   ri   r/   rq   rb   r*   Zget_fignumsr3   r   rO   )r2   r4   r   r   r   r5   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 )Nr(   r   r   r   r   r  r  r  r  r   )	r   r+   r,   r-   r  r.   r   ri   hist)r2   r4   r   r   r   r5   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   r^   r   r   r   Zexpected_keys)rO   rv   r+   Zndarrayr	   r2   rw   r5   rx   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   r8   r|   ZMaleZFemaler  ri   rO   r	   r  r   r   r   $test_grouped_box_return_type_groupby  s   z>TestDataFrameGroupByPlots.test_grouped_box_return_type_groupbyr7   r   c                 C   sL   |}| dj|d}t||g dd |jd|d}t||g dd d S )N	classroomr|   rZ   r[   r   r  r=   r7   r  r  )r2   rw   r7   r5   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   )rA   r   rX   zA Br   r   r|   r  r  )	splitr   r+   r,   r-   rJ   ri   rO   r	   )r2   r7   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   R   |}d}t jt|d |jddg|jdd W d    d S 1 s"w   Y  d S )Nz1Layout of 1x1 must be larger than required size 2rz   r   r   r   r9   r=   r   r}   r~   r   rO   r   r2   rw   r5   r   r   r   r   !test_grouped_box_layout_too_small	  s
   "z;TestDataFrameGroupByPlots.test_grouped_box_layout_too_smallc                 C   sP   |}d}t jt|d |jg dddd W d    d S 1 s!w   Y  d S )Nz7The 'layout' keyword is not supported when 'by' is Nonerz   r  )r   r   r8   r9   r   r7   )r}   r~   r   rO   r  r   r   r    test_grouped_box_layout_needs_by  s   "z:TestDataFrameGroupByPlots.test_grouped_box_layout_needs_byc                 C   r  )Nz1At least one dimension of layout must be positiverz   r   r   )r   r  r  r  r   r   r   'test_grouped_box_layout_positive_layout  s
   "zATestDataFrameGroupByPlots.test_grouped_box_layout_positive_layoutzgb_key, axes_num, rows)r   r   r   )r   rB   r   )r  r   r   c                 C   sf   |}t jtdd t||jddd W d    n1 sw   Y  ttj	 j
||dfd d S )NFrI   r   r8   r9   r7   r   r   rM   rN   r_   r
   ri   rO   r   rb   r*   gcfrd   )r2   rw   Zgb_keyr   rowsr5   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   rd   )r9   r=   r7   r   r   r   )visible)
rO   r   rb   r*   r$  rd   r   r0   ZxaxisZ	get_label)r2   rw   r   r'  r5   rd   r   r   r   r   test_grouped_box_layout_visible3  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  r8   r"  r   r   r   ri   rO   r   rb   r*   r$  rd   )r2   rw   r5   r   r   r   test_grouped_box_layout_shapeB  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 s"w   Y  ttj	 j
dd	d
 d S )NFrI   r   r   r   r8   r  rB   )r   r   r   r#  )r2   rw   r+  r5   r   r   r   test_grouped_box_layout_worksJ  s   
z7TestDataFrameGroupByPlots.test_grouped_box_layout_worksz	rows, resrB   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   )rO   r   rb   r*   r$  rd   )r2   rw   r%  r  r5   r   r   r   'test_grouped_box_layout_axes_shape_rowsW  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   r8   r  r   r   r)  )r2   rw   r+  r  r5   r   r   r   /test_grouped_box_layout_axes_shape_cols_groupby`  s   
zITestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_cols_groupbyc                 C   sr   |}t t( tjdd\}}|djdd|d ttj	 j
ddd W d    d S 1 s2w   Y  d S )	Nr   r   r   rd   r9   r7   r   rB   r   r   )rM   rN   r_   rb   r*   rc   ri   rO   r   r$  rd   )r2   rw   r5   re   rd   r   r   r   test_grouped_box_multiple_axesk  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 s(w   Y  tt	|j
}t|ddd	 t||d  |d j|u sMJ tt |d
jg dd|d d}W d    n1 slw   Y  tt	|j
}t|ddd	 t||d  |d j|u sJ d S )Nr   r   r  r   rd   r   )r9   r=   r7   r   )r   r   r   r  r   r/  )rb   r*   rc   rM   rN   r_   rO   r+   arrayr1   rp   r   Zassert_numpy_array_equalr   ri   )r2   rw   r5   rj   rd   r  r   r   r   %test_grouped_box_multiple_axes_on_figz  s.   
z?TestDataFrameGroupByPlots.test_grouped_box_multiple_axes_on_figc              	   C   s   |}d}t jt|d8 tjdd\}}tt |	dj
|d}W d    n1 s.w   Y  W d    d S W d    d S 1 sFw   Y  d S )Nz@The number of passed axes must be 3, the same as the output plotrz   r   r   r  )r   )r}   r~   r   rb   r*   rc   rM   rN   r_   ri   rO   )r2   rw   r5   r   rj   rd   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   )r=   r   r   r   r`   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))
r4  r:  r5  r;  r6  r<  r7  r=  r8  r>  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s=J d S )Nr   Zabcder   )catr   r9  r?  Frd   )rc   r9   r7   c                 S   r   r   r   r#   r   r   r   r&     r   zQTestDataFrameGroupByPlots.test_groupby_boxplot_subplots_false.<locals>.<listcomp>)
r   r+   r,   r-   r.   r1   ri   r
   rO   r0   )r2   r   expected_xticklabelr5   r   rd   result_xticklabelr   r   r   #test_groupby_boxplot_subplots_false  s   (

z=TestDataFrameGroupByPlots.test_groupby_boxplot_subplots_falsec                 C   sZ   | d}|d}d}tjt|d t|jdd W d    d S 1 s&w   Y  d S )Nobjectr   z:boxplot method requires numerical columns, nothing to plotrz   F)rc   )r   ri   r}   r~   r   r
   rO   )r2   rw   r5   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sFJ d S )N)r   r   bazrE  rH   rH   quxrF  )r:   r;   r:   r;   r:   r;   r:   r;   firstsecond)namesr   )r   r   r  rF   )r   r:   )r   r;   rd   r"  z
(bar, one)z
(bar, two)c                 S   r   r   r   r#   r   r   r   r&     r   zLTestDataFrameGroupByPlots.test_boxplot_multiindex_column.<locals>.<listcomp>)r1   r   r   r   r   r+   r,   r-   rJ   r
   rO   r0   )	r2   Zarraysr   r   r5   r   rd   r@  rA  r   r   r   test_boxplot_multiindex_column  s   z8TestDataFrameGroupByPlots.test_boxplot_multiindex_column)#r   r   r   rR   r   r}   r   r   ra   r   r   r_   r   r	  r  r  r  r  r  r  r  r!  r&  r(  r*  r,  r-  r.  r0  r2  r3  r   rB  rD  rJ  r   r   r   r   r     s    



	


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


	






&r   )__doc__rm   rK   numpyr+   r}   Zpandasr   r   r   r   r   r   Zpandas._testingZ_testingrM   Zpandas.tests.plotting.commonr   r	   r
   r   r   Zpandas.io.formats.printingr   Zimportorskiprb   r3   r   r   r   r   r   r   r   <module>   s      

  f