
    bMhu                       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j        d          Z ej        d	          Z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             Z$ G d d          Z% G 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_thing
matplotlibzmatplotlib.pyplotc                    |                                 \  }}||                                 k    sJ ||                                 k    sJ d S N)get_ylimminmax)colaxy_miny_maxs       i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/plotting/test_boxplot_method.py_check_ax_limitsr   #   sK    ;;==LE5CGGIICGGII    3.10vertFTzlist[dict[str, bool | str]]vertsorientation
horizontalvertical)paramsc                    | j         S r   )param)requests    r   r   r   /   s
    =r   c                  n   e Zd Z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                         Z	d Z
d Zd Zd Zd Zd Zd Zd Zej                            dg d          d             Zd Zd Zd Zd Zd Zd  Zej                            d!d"d#d$d%d&d"d#d$d%d&fd'd"id'd"ifd"d"d"d"d"d&fg          d(             Zej                            d)d*d+d+d,d+d&fd-d.d.d/d.d&fg          d0             Zej                            d1d"d"d2d3fg          d4             Zej                            d5g d6          d7             Zej                            d8          d9             Zej                            d8          d:             Zej                            d8          d;             Z ej                            d8          d<             Z!ej                            d8          d=             Z"dS )>TestDataFramePlotsc                @   dd l m} d}t          t          j                            d                              g d|          t          j                            d                              g d|          t          j                            d                              g d|          dt          j        d|                    }|                    dd	          }d
 |	                                D             |j
                                        k    sJ |                    t          j        ddd                     |                                 d |	                                D             t          t          j        ddd                    k    sJ d S )Nr   P      )r      r,      )Clinical	Confirmed	DiscardedindexbarT)kindstackedc                P    g | ]#}t          |                                          $S  intget_text.0xs     r   
<listcomp>zDTestDataFramePlots.test_stacked_boxplot_set_axis.<locals>.<listcomp>C   (    @@@aAJJLL!!@@@r   
   c                P    g | ]#}t          |                                          $S r8   r9   r<   s     r   r?   zDTestDataFramePlots.test_stacked_boxplot_set_axis.<locals>.<listcomp>F   r@   r   )matplotlib.pyplotpyplotr   nprandomdefault_rngchoicearangeplotget_xticklabelsr3   to_list
set_xticksdrawlist)selfpltndfr   s        r   test_stacked_boxplot_set_axisz0TestDataFramePlots.test_stacked_boxplot_set_axis5   s   ''''''I11!44;;LLL!LLY22155<<\\\1MMY22155<<\\\1MM 
 )Aq//
 
 
 WW%W..@@2+=+=+?+?@@@BHDTDTDVDVVVVV
bi2r**+++


@@2+=+=+?+?@@@DIaR  E
 E
 
 
 
 
 
 
r   zkwargs, warnreturn_typedictNcolumnonetwoindic)rW   byindic2r[   notchr-   )r[   r]   c                v   t          t          j                            d                              d          t          t          j        d d                   g d          }ddgdz  |d	<   g d
dz  |d<   t          j	        |d          5  t          |j        fi | d d d            d S # 1 swxY w Y   d S )Nr,         r`   rX   rY   threefourr3   columnsfoor4   r.   rZ   )rg   r4   rg   r\   Fcheck_stacklevel)r   rE   rF   rG   standard_normalrO   stringascii_letterstmassert_produces_warningr   boxplot)rP   kwargswarnrS   s       r   test_boxplot_legacy1z'TestDataFramePlots.test_boxplot_legacy1J   s    I!!!$$44V<<v+BQB/00333
 
 

 enq(7,,,q08 'uEEE 	4 	4bj33F333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   B..B25B2c                    t          t          j                            d                              d                    }t          t          j        j        |d           d S )Nr,   r`   rV   )datarU   )	r   rE   rF   rG   rj   r   r   _corero   )rP   sers     r   test_boxplot_legacy1_seriesz.TestDataFramePlots.test_boxplot_legacy1_seriese   sM    RY**1--==a@@AA(.0sOOOOOOr   c                t   t          t          j                            d                              d          ddg          }t	          g d          |d<   t	          dgd	z            |d
<   t          j        t          d          5  t          |j	        d           d d d            d S # 1 swxY w Y   d S )Nr,   rA   r,   Col1Col2rf   
Ar~   r~   r~   r~   Br   r   r   r   Xr~   rA   YFrh   r[   )
r   rE   rF   rG   r   rm   rn   UserWarningr   ro   rP   rS   s     r   test_boxplot_legacy2z'TestDataFramePlots.test_boxplot_legacy2i   s    I!!!$$++G44vv>N
 
 
 KKKLL3#$$3'eLLL 	2 	2bjS1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   	B--B14B1c                l   t          t          j                            d                              d          ddg          }t	          g d          |d<   t	          dgd	z            |d
<   t
          j                                        \  }}|                    dd|          }|j	        }||u sJ d S )Nr,   ry   rz   r{   r|   r}   r   r~   rA   r   )r[   r   )
r   rE   rF   rG   r   mplrD   subplotsro   axes)rP   rS   _r   r   ax_axess         r   test_boxplot_legacy2_with_axz/TestDataFramePlots.test_boxplot_legacy2_with_axr   s    I!!!$$++G44vv>N
 
 
 KKKLL3#$$3 
##%%2zz&SRz00'$r   c                   t          t          j                            d                              d          ddg          }t	          g d          |d<   t	          dgd	z            |d
<   t
          j                                        \  }}|                    d
          	                    |d          }|j
        }||d         u sJ d S )Nr,   ry   rz   r{   r|   r}   r   r~   rA   r   r   r   rU   )r   rE   rF   rG   r   r   rD   r   groupbyro   r   )rP   rS   figr   r   r   s         r   (test_boxplot_legacy2_with_ax_return_typez;TestDataFramePlots.test_boxplot_legacy2_with_ax_return_type   s    I!!!$$++G44vv>N
 
 
 KKKLL3#$$3*%%''Rzz#&&"&&AA'$s)######r   c                   t          t          j                            d                              d          ddg          }t	          g d          |d<   t	          dgd	z            |d
<   t
          j                                        \  }}t          j	        t                    5  |                    ddgd|d          }d d d            n# 1 swxY w Y   |d                                         |u sJ d S )Nr,   ry   rz   r{   r|   r}   r   r~   rA   r   r   )rW   r[   r   rU   )r   rE   rF   rG   r   r   rD   r   rm   rn   r   ro   
get_figure)rP   rS   r   r   r   s        r   #test_boxplot_legacy2_with_multi_colz6TestDataFramePlots.test_boxplot_legacy2_with_multi_col   s;   I!!!$$++G44vv>N
 
 
 KKKLL3#$$3*%%''R'44 	 	::'CBF   D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 F|&&((C//////s   (CCCc                4   t          t          j                            d                              d          ddg          }t	          g d          |d<   t	          dgd	z            |d
<   t
          j                                        \  }}|                    |d          }t          t          j                            |                                                    }t          |                                          t          |          k    sJ d S )Nr,   ry   rz   r{   r|   r}   r   r~   rA   r   rV   r   )r   rE   rF   rG   r   r   rD   r   ro   rO   	itertoolschainfrom_iterablevalueslen	get_lines)rP   rS   r   r   dliness         r   test_boxplot_legacy2_by_nonez/TestDataFramePlots.test_boxplot_legacy2_by_none   s    I!!!$$++G44vv>N
 
 
 KKKLL3#$$3 
##%%2JJ"&J11Y_22188::>>??2<<>>""c%jj000000r   c                p    |                                 }t          |t          j        j                  sJ d S r   )ro   
isinstancer   rD   Axes)rP   hist_dfresults      r   test_boxplot_return_type_nonez0TestDataFramePlots.test_boxplot_return_type_none   s1    ""&#*/2222222r   c                   t          t          j                            d                              d          t          t          j        d d                   g d          }d}t          j	        t          |          5  |                    d	           d d d            n# 1 swxY w Y   |                                }t          |d
           d S )Nr,   r_   r`   rb   re   z,return_type must be {'axes', 'dict', 'both'}match
NOT_A_TYPErU   r   )r   rE   rF   rG   rj   rO   rk   rl   pytestraises
ValueErrorro   r   )rP   rS   msgr   s       r   test_boxplot_return_type_legacyz2TestDataFramePlots.test_boxplot_return_type_legacy   s    I!!!$$44V<<v+BQB/00333
 
 

 =]:S111 	1 	1JJ<J000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 vv.....s   B$$B(+B(rV   r   bothc                p   t          t          j                            d                              d          t          t          j        d d                   g d          }t          j	        d          5  |
                    |          }d d d            n# 1 swxY w Y   t          ||           d S )Nr,   r_   r`   rb   re   Fr   )r   rE   rF   rG   rj   rO   rk   rl   rm   rn   ro   r   )rP   rU   rS   r   s       r   +test_boxplot_return_type_legacy_return_typez>TestDataFramePlots.test_boxplot_return_type_legacy_return_type   s     I!!!$$44V<<v+BQB/00333
 
 

 '.. 	9 	9ZZKZ88F	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9v{33333s   8BB"Bc                \   |                                 }t          j                            d                              dd|j        d                   |d<   |                    ddgd	          \  }}t          |d         |           t          |d         |           |j        |k    sJ d S )
Nr,   r-      r   ageheightweightcategoryr   	copyrE   rF   rG   integersshapero   r   _sharey)rP   r   rS   	height_ax	weight_axs        r   test_boxplot_axis_limitsz+TestDataFramePlots.test_boxplot_axis_limits   s    \\^^I))!,,55aRXa[II5	!zz8X*>:zNN	9Hy111Hy111 I------r   c                   |                                 }t          j                            d                              dd|j        d                   |d<   |                    g dd          }|d	         |d
         |d         }}}|d         }t          |d         |           t          |d         |           t          |d         |           |j        |k    sJ |j        |k    sJ |j        J d S )Nr,   r-   r   r   r   )r   r   r   r   r   )r   r   )r   r-   )r-   r   r-   r-   r   r   r   )rP   r   rS   pr   r   age_axdummy_axs           r   !test_boxplot_axis_limits_two_rowsz4TestDataFramePlots.test_boxplot_axis_limits_two_rows   s    \\^^I))!,,55aRXa[II5	JJ222zJBB'(w$4f9	T7Hy111Hy111EF+++ I----~****'''''r   c                    t          t          j                            d                              d                    }t          j        |j        d d df<   t          |j        d           d S )Nr,   )r   ra   r   r   r   )	r   rE   rF   rG   rj   nanlocr   ro   r   s     r   test_boxplot_empty_columnz,TestDataFramePlots.test_boxplot_empty_column   s]    ry,,Q//??HHIIvqqq!t"*&999999r   c                   t          t          j                            d                              d          g d          }|                    dd          }|j        j        j        dk    sJ |j        j        j        d	k    sJ d S )
Nr,   )rA      )r~   r   CDEr|   r   )      )rU   figsizer   r   )	r   rE   rF   rG   ro   figurebbox_incheswidthr   )rP   rS   r   s      r   test_figsizezTestDataFramePlots.test_figsize   s    I!!!$$++G44>W>W>W
 
 
 @@}(."4444}(/1444444r   c                z    t          dg di          }t          |                    dd          dd           d S )Nar-   r,   r.   ra   r   r`      )fontsize
xlabelsize
ylabelsizer   r   ro   r   s     r   test_fontsizez TestDataFramePlots.test_fontsize   sG    ///0112::cB:77BSUVVVVVVr   c                   t          t          dd          t          j                            d                              d          t          j                            d                              d          dz   t          dd                              t                    t          ddd          t          dd          d          }|	                    d	
          }d |
                                D             ddgk    sJ d S )Nz
2012-01-01d   )periodsr,   UTC)r   tzz1 days)r   bcr   efbox)r5   c                6    g | ]}|                                 S r8   r;   r<   s     r   r?   z@TestDataFramePlots.test_boxplot_numeric_data.<locals>.<listcomp>   s     ;;;

;;;r   r   r   )r   r   rE   rF   rG   rj   astypestrr	   rJ   rK   )rP   rS   r   s      r   test_boxplot_numeric_dataz,TestDataFramePlots.test_boxplot_numeric_data   s    c:::Y**1--==cBBY**1--==cBBQFc:::AA#FFceDDD$Xs;;; 	
 	
 WW%W  ;;b&8&8&:&:;;;SzIIIIIIr   zcolors_kwd, expectedrr   gr   )boxeswhiskersmedianscapsr   c                2   t          t          j                            d                              d                    }|                    |d          }|                                D ]+\  }}||         d                                         |k    sJ ,d S )Nr,   ry   rV   colorrU   r   )r   rE   rF   rG   ro   items	get_color)rP   
colors_kwdexpectedrS   r   kvs          r   test_color_kwdz!TestDataFramePlots.test_color_kwd   s     ry,,Q//66w??@@*&AANN$$ 	1 	1DAq!9Q<))++q00000	1 	1r   zscheme,expecteddark_backgroundz#8dd3c7z#bfbbd9defaultz#1f77b4z#2ca02cc                z   t          t          j                            d                              d                    }dd lm} |j                            |           |j        	                    d          }|
                                D ]+\  }}||         d                                         |k    sJ ,d S )Nr,   ry   r   rV   r   )r   rE   rF   rG   rC   rD   styleuserJ   r   r   r   )rP   schemer   rS   rQ   r   r   r   s           r   test_colors_in_themez'TestDataFramePlots.test_colors_in_theme  s    2 ry,,Q//66w??@@''''''	f00NN$$ 	1 	1DAq!9Q<))++q00000	1 	1r   zdict_colors, msg)r   invalid_keyzinvalid key 'invalid_key'c                   t          t          j                            d                              d                    }t	          j        t          |          5  |                    |d           d d d            d S # 1 swxY w Y   d S )Nr,   ry   r   rV   r   )r   rE   rF   rG   r   r   r   ro   )rP   dict_colorsr   rS   s       r   test_color_kwd_errorsz(TestDataFramePlots.test_color_kwd_errors1  s     ry,,Q//66w??@@]:S111 	> 	>JJ[fJ===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   B  BBzprops, expected))boxpropsr   )whiskerpropsr   )cappropsr   )medianpropsr   c                    t          d dD                       }|ddii} |j        dddi|}||         d                                         dk    sJ d S )	Nc                t    i | ]5}|t           j                            d                               d          6S )r,   rA   )rE   rF   rG   )r=   r   s     r   
<dictcomp>z?TestDataFramePlots.test_specified_props_kwd.<locals>.<dictcomp>F  s8    NNN1290033::2>>NNNr   ABCr   C1rU   rV   r   r8   )r   ro   r   )rP   propsr   rS   kwdr   s         r   test_specified_props_kwdz+TestDataFramePlots.test_specified_props_kwd;  sw     NNNNNOOwo&666#66h",,..$666666r   z!ignore:set_ticklabels:UserWarningc                   t          t          j                            d                              d          t          j                            d                              d          t          j                            d                              ddgd          d          }d\  }} |j        d	d||d|}|                                |k    sJ |                                |k    sJ d S )
Nr,   rA   group1group2r   r   groupr>   yr   )r5   xlabelylabelr8   )	r   rE   rF   rG   rj   rH   rJ   
get_xlabel
get_ylabelrP   r   rS   r  r  r   s         r   test_plot_xlabel_ylabelz*TestDataFramePlots.test_plot_xlabel_ylabelL  s    Y**1--==bAAY**1--==bAA..q1188(H9MrRR 
 
 "RWF%vFFFF}}&((((}}&((((((r   c                |   t           j                            d          }t          |                    ddd          t          d                    }t          |                    ddd          t          d                    }d\  }}t                              dd	d
          \  }} |j        j	        d|d         ||d|  |j        j	        d|d         ||d| |D ]6}	|	
                                |k    sJ |	                                |k    sJ 7t          j                                         d S )Nr,   r   r   )r   ra   sizeABCDr|   r  )rA      T)ncolsr   sharey)r   r  r  r-   r8   )rE   rF   rG   r   r   rO   rQ   r   rJ   r   r   r!  r   rD   close)
rP   r   rngdf1df2r  r  r   axsr   s
             r   test_plot_boxz TestDataFramePlots.test_plot_boxZ  s=    i##A&&Q(;;T&\\RRRQ(;;T&\\RRR!AwtDD3EAvfEEEEEEAvfEEEEE 	- 	-B==??f,,,,==??f,,,,,
r   c                   t          t          j                            d                              d          t          j                            d                              d          t          j                            d                              ddgd          d          }d\  }} |j        d||d|}|                                |k    sJ |                                |k    sJ d S )	Nr,   rA   r  r  r  r  )r  r  r8   )	r   rE   rF   rG   rj   rH   ro   r   r!  r"  s         r   test_boxplot_xlabel_ylabelz-TestDataFramePlots.test_boxplot_xlabel_ylabelj  s    Y**1--==bAAY**1--==bAA..q1188(H9MrRR 
 
 "RZ=vf====}}&((((}}&((((((r   c                ,   t          t          j                            d                              d          t          j                            d                              d          t          j                            d                              ddgd          d          }d\  }} |j        d	d||d|}|D ]6}|                                |k    sJ |                                |k    sJ 7t          j
                                         d S )
Nr,   rA   r  r  r  r  r  )r[   r  r  r8   )r   rE   rF   rG   rj   rH   ro   r   r!  r   rD   r+  )rP   r   rS   r  r  r   subplots          r    test_boxplot_group_xlabel_ylabelz3TestDataFramePlots.test_boxplot_group_xlabel_ylabelx  s   Y**1--==bAAY**1--==bAA..q1188(H9MrRR 
 
 "RZI76&IIDII 	2 	2G%%''61111%%''611111
r   c                "   t          t          j                  t          d          k    r>|ddik    r6|                    t          j                            | d                     t          t          j	        
                    d                              d          t          j	        
                    d                              d          t          j	        
                    d                              dd	gd          d
          } |j        dddi|}|D ]P}|ddik    s|ddik    r|                                n|                                }|t!          dg          k    sJ Qt          j                                         d S )Nr   r!   r"   z$ fails starting with matplotlib 3.10)reasonr,   rA   r  r  r  r[   r  r   Tr#   r8   )r   r   __version__applymarkerr   markxfailr   rE   rF   rG   rj   rH   ro   r   r!  r   rD   r+  )rP   r   r'   rS   r   r4  target_labels          r   #test_boxplot_group_no_xlabel_ylabelz6TestDataFramePlots.test_boxplot_group_no_xlabel_ylabel  s   3?##wv664<D
 <
 <
 !!D)V)V)V!WW   Y**1--==bAAY**1--==bAA..q1188(H9MrRR 
 
 RZ++7+d++ 	; 	;G FD>))M:666 ""$$$ ''))	   <	#:#::::::
r   )#__name__
__module____qualname__rT   r   r:  slowparametrizer   rr   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  filterwarningsr#  r0  r2  r5  r=  r8   r   r   r)   r)   4   si       
 
 
* [[V$d+'.g66D':;;TBG_k*Wh'(+6q\4 a((+6		
 4 4  4P P P2 2 2  	$ 	$ 	$0 0 01 1 13 3 3
/ / / [],D,D,DEE
4 
4 FE
4. . .( ( (: : :
5 5 5W W WJ J J [ 33LL33LL s^gs^,CSS#NNO	

 
1 1
 
1 [ "& )(%	  & )(%	 	
 .1 1/ .1 [
,
,.I	JK > >	 > [	
 	
 	
 7 7 7 [ CDD) ) ED) [ CDD  ED [ CDD) ) ED) [ CDD  ED [ CDD  ED  r   r)   c            
         e Zd Zd Zd Zej        j        d             Zej        j        d             Z	ej        
                    ddeddgg d	g          d
             Zd Zd Zej        j        d             Zej        j        d             Zej        j        ej        
                    dg d          d                         Zej        j        ej        
                    dg d          d                         Zej        j        d             Zej        j        d             Zej        j        d             Zej        j        ej        
                    dg dg dg dg          d                         Zej        j        ej        
                    dddgddgddgg          d                          Zej        j        d!             Zej        j        ej        
                    d"d#d$g          d%                         Zej        j        ej        
                    d&d'd'gd$dgg          d(                         Zej        j        ej        
                    d)d'd'gd$dgg          d*                         Zej        j        d+             Zej        j        d,             Zej        j        d-             Zd. Zej        
                    d/d0g d1fd0gg d1fd2g d3fd0d2gg d4fd5g d4fg          d6             Z d7 Z!d8 Z"d5S )9TestDataFrameGroupByPlotsc                   |                     d          }t          j        t          d          5  t	          |j        d          }d d d            n# 1 swxY w Y   t          t          |j                  dd	           d S )
Ngenderr   Frh   r   r   r,   )r-   r,   axes_numlayout)	r   rm   rn   r   r   ro   r
   rO   r   rP   r   groupedr   s       r   rr   z.TestDataFrameGroupByPlots.test_boxplot_legacy1  s    //X/..'eLLL 	J 	J$W_&IIID	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J$t{++aGGGGGGs   AAAc                    |                     d          }t          |j        dd          }t          |dd           d S )	NrG  r   Fr   r   rU   r-   r   rH  )r   r   ro   r
   rK  s       r    test_boxplot_legacy1_return_typez:TestDataFrameGroupByPlots.test_boxplot_legacy1_return_type  sF    //X/.. 5fUUU$6::::::r   c                   t          t          j        d d         t          d                    }t	          t
          j                            d                              d          t          j	        |                    }|
                    d          }t          j        t          d          5  t          |j        d	
          }d d d            n# 1 swxY w Y   t!          t#          |j                  dd           d S )NrA   r,   rA   r.   r2   r-   levelFrh   r   r   )ra   r.   rH  )ziprk   rl   ranger   rE   rF   rG   r   from_tuplesr   rm   rn   r   r   ro   r
   rO   r   rP   tuplesrS   rL  r   s        r   r   z.TestDataFrameGroupByPlots.test_boxplot_legacy2  s0   V)#2#.b		::I!!!$$++G44(00
 
 
 **1*%%'eLLL 	J 	J$W_&IIID	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J$t{++bHHHHHHs   4CCCc                   t          t          j        d d         t          d                    }t	          t
          j                            d                              d          t          j	        |                    }|
                    d          }t          |j        dd	          }t          |dd
           d S )NrA   r,   rQ  r2   r-   rR  Fr   rN  r   rH  )rT  rk   rl   rU  r   rE   rF   rG   r   rV  r   r   ro   r
   rW  s        r    test_boxplot_legacy2_return_typez:TestDataFrameGroupByPlots.test_boxplot_legacy2_return_type  s    V)#2#.b		::I!!!$$++G44(00
 
 
 **1*%% 5fUUU$6::::::r   z subplots, warn, axes_num, layoutTr.   r,   r,   )FNr-   r   c                x   t          t          j        d d         t          d                    }t	          t
          j                            d                              d          t          j	        |                    }d}t          j        t          |          5  |                    d                              d	d
          }d d d            n# 1 swxY w Y   t          j        |d          5  t          |j        |d          }	d d d            n# 1 swxY w Y   t#          |	||           d S )NrA   r,   rQ  r2   z+DataFrame.groupby with axis=1 is deprecatedr   r-   rR  r   )rS  axisFrh   r   rN  rH  )rT  rk   rl   rU  r   rE   rF   rG   r   rV  rm   rn   FutureWarningunstackr   r   ro   r
   )
rP   r   rq   rI  rJ  rX  rS   r   rL  r   s
             r   test_boxplot_legacy3z.TestDataFrameGroupByPlots.test_boxplot_legacy3  s   
 V)#2#.b		::I!!!$$++G44(00
 
 
 <'SAAA 	C 	Cjjqj))111BBG	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C'uEEE 	 	$(  D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	$&AAAAAAs$    ,CCC9DD!$D!c                n   d}t          t          j                            d                              dd|                    }t          t          j                            d                              dd|                    }t          j                            d                              ddg|          }t          |||d	          }|                    d
          }|                                }t          t          j                                                  dk    sJ t          |          dk    sJ t                              d           |                    d          }t          t          j                                                  dk    sJ t          |          dk    sJ d S )NrA   r,      r   r%  <   malefemaler   r   rG  rG  allr   r   r-   )r   rE   rF   rG   normalrH   r   r   rJ   r   r   rD   get_fignumsrQ   r+  ro   )rP   rR   r   r   rG  rS   gbress           r   test_grouped_plot_fignumsz3TestDataFrameGroupByPlots.test_grouped_plot_fignums  sj   	--a0077Ra7HHII	--a0077BQ7GGHH&&q))00&(1C!0LL&FfMMNNZZ!!ggii3:))++,,11113xx1}}}}		%jjVj,,3:))++,,11113xx1}}}}}}r   c                   d}t          t          j                            d                              dd|                    }t          t          j                            d                              dd|                    }t          j                            d                              ddg|          }t          |||d	          }|                    d
                                           d S )NrA   r,   rb  r   r%  rc  rd  re  rf  rG  )	r   rE   rF   rG   rh  rH   r   r   hist)rP   rR   r   r   rG  rS   s         r   &test_grouped_plot_fignums_excluded_colz@TestDataFrameGroupByPlots.test_grouped_plot_fignums_excluded_col  s    	--a0077Ra7HHII	--a0077BQ7GGHH&&q))00&(1C!0LL&FfMMNN


8!!#####r   c                    |}|                     d          }t          |t          j                  sJ t	          |d g d           d S )NrG  r   r   r   r   expected_keys)ro   r   rE   ndarrayr   rP   r   rS   r   s       r   test_grouped_box_return_typez6TestDataFrameGroupByPlots.test_grouped_box_return_type  sc     x((&"*-----D(H(H(H	
 	
 	
 	
 	
 	
r   c                    |}|                     d                              d          }t          |dddg           d S )NrG  rV   r   MaleFemalerr  r   ro   r   ru  s       r   $test_grouped_box_return_type_groupbyz>TestDataFrameGroupByPlots.test_grouped_box_return_type_groupby  sI    H%%--&-AAvvfh=OPPPPPPr   rU   r   c                    |}|                     d                              |          }t          ||g d           |                    d|          }t          ||g d           d S )N	classroomr   r~   r   r   rr  r[   rU   rq  rz  )rP   r   rU   rS   returneds        r    test_grouped_box_return_type_argz:TestDataFrameGroupByPlots.test_grouped_box_return_type_arg  s     ::k**22{2KKxOOOTTTT::+:FFk1Q1Q1Q	
 	
 	
 	
 	
 	
r   c                   d                                 }t          t          j                            d                              d          |          }d                                 }|dz  |d<   |                    d                              |          }t          |||	           |                    d|
          }t          |||	           d S )Nz	X B C D Ar,   )r`   r   r|   zA Br.   r   r   rr  r  )	splitr   rE   rF   rG   rj   r   ro   r   )rP   rU   columns2r.  categories2r  s         r   .test_grouped_box_return_type_arg_duplcate_catszHTestDataFrameGroupByPlots.test_grouped_box_return_type_arg_duplcate_cats  s     $$&&I!!!$$44V<<h
 
 
 kkmm%/J;;z**22{2KKxKPPPP;;*+;FFxHMMMMMMr   c                    |}d}t          j        t          |          5  |                    ddg|j        d           d d d            d S # 1 swxY w Y   d S )Nz1Layout of 1x1 must be larger than required size 2r   r   r   r   rW   r[   rJ  r   r   r   ro   rG  rP   r   rS   r   s       r   !test_grouped_box_layout_too_smallz;TestDataFrameGroupByPlots.test_grouped_box_layout_too_small"  s    A]:S111 	Q 	QJJx2ryJPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q    AAAc                    |}d}t          j        t          |          5  |                    g ddd           d d d            d S # 1 swxY w Y   d S )Nz7The 'layout' keyword is not supported when 'by' is Noner   rq  )r,   r-   rV   rW   rJ  rU   )r   r   r   ro   r  s       r    test_grouped_box_layout_needs_byz:TestDataFrameGroupByPlots.test_grouped_box_layout_needs_by*  s    G]:S111 	 	JJ777"    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                    |}d}t          j        t          |          5  |                    ddg|j        d           d d d            d S # 1 swxY w Y   d S )Nz1At least one dimension of layout must be positiver   r   r   )r  r  r  r  s       r   'test_grouped_box_layout_positive_layoutzATestDataFrameGroupByPlots.test_grouped_box_layout_positive_layout5  s    A]:S111 	S 	SJJx2ryJRRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	Sr  zgb_key, axes_num, rows)rG  r,   r-   )r   ra   r,   )r}  r.   r,   c                .   |}t          j        t          d          5  t          |                    |          j        dd           d d d            n# 1 swxY w Y   t          t          j        	                                j
        ||df           d S )NFrh   r   rV   rW   rU   r,   rH  rm   rn   r   r   r   ro   r
   r   rD   gcfr   )rP   r   gb_keyrI  rowsrS   s         r   ,test_grouped_box_layout_positive_layout_axeszFTestDataFrameGroupByPlots.test_grouped_box_layout_positive_layout_axes<  s     'eLLL 	 	

6""*8   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#*..**/(DRS9UUUUUUs   +AAAzcol, visibler   Fr   r   c                L   |}|                     g ddd          }t          t          j                                        j        dd           ||         }t          |                                |           t          |j        	                                g|           d S )	Nrq  rG  r   )rW   r[   rU   r.   r[  rH  )visible)
ro   r
   r   rD   r  r   r   rK   xaxis	get_label)rP   r   r   r  rS   r   r   s          r   test_grouped_box_layout_visiblez9TestDataFrameGroupByPlots.test_grouped_box_layout_visibleL  s    
 zz333f  
 
 	#*..**/!FKKKK#Yr))++W====**,,-w??????r   c                    |}|                     d                              g dd           t          t          j                                        j        dd           d S )Nr}  rq  rV   r  r.   r[  rH  r   ro   r
   r   rD   r  r   )rP   r   rS   s      r   test_grouped_box_layout_shapez7TestDataFrameGroupByPlots.test_grouped_box_layout_shape[  sg    


;''333 	( 	
 	
 	
 	#*..**/!FKKKKKKr   colsr,   r  c                0   |}t          j        t          d          5  t          |                    d          j        dd|fd           d d d            n# 1 swxY w Y   t          t          j        	                                j
        dd	
           d S )NFrh   r   r   r.   rV   r  ra   )r.   r,   rH  r  )rP   r   r  rS   s       r   test_grouped_box_layout_worksz7TestDataFrameGroupByPlots.test_grouped_box_layout_worksc  s     'eLLL 	 	

:&&.4y"	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#*..**/!FKKKKKKs   .AAAz	rows, resra   c                    |}|                     g dd|df           t          t          j                                        j        d|df           d S )Nrq  rG  r-   r  r.   rH  )ro   r
   r   rD   r  r   )rP   r   r  rk  rS   s        r   'test_grouped_box_layout_axes_shape_rowszATestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_rowsp  sf     


333$PQ 	 	
 	
 	
 	#*..**/!S!HMMMMMMr   z	cols, resc                    |}|                     d                              g dd|fd           t          t          j                                        j        dd|f           d S )Nr}  rq  r-   rV   r  r.   rH  r  )rP   r   r  rk  rS   s        r   /test_grouped_box_layout_axes_shape_cols_groupbyzITestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_cols_groupbyy  su     


;''333t9 	( 	
 	
 	

 	#*..**/!QHMMMMMMr   c                p   |}t          j        t                    5  t          j                            dd          \  }}|                    d                              dd|           t          t          j        	                                j
        dd           d d d            d S # 1 swxY w Y   d S )	Nr,   r   r   r   rW   rU   r   ra   r[  rH  )rm   rn   r   r   rD   r   r   ro   r
   r  r   )rP   r   rS   r   r   s        r   test_grouped_box_multiple_axesz8TestDataFrameGroupByPlots.test_grouped_box_multiple_axes  s      '44 	P 	Pj))!Q//GAtJJz""**(SW*XXXcjnn..3aOOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   BB++B/2B/c                L   |}t           j                            dd          \  }}t          j        t
                    5  |                    g ddd|d                   }d d d            n# 1 swxY w Y   t          j        t          |j
                            }t          |dd	           t          j        ||d                    |d         j        |u sJ t          j        t
                    5  |                    d
                              g dd|d                   }d d d            n# 1 swxY w Y   t          j        t          |j
                            }t          |dd	           t          j        ||d                    |d         j        |u sJ d S )Nr,   r.   rq  rG  r   r   )rW   r[   rU   r   )r-   r.   rH  r}  r-   r  )r   rD   r   rm   rn   r   ro   rE   arrayrO   r   r
   assert_numpy_array_equalr   r   )rP   r   rS   r   r   r  s         r   %test_grouped_box_multiple_axes_on_figz?TestDataFrameGroupByPlots.test_grouped_box_multiple_axes_on_fig  s    J''1--	T'44 	 	zz777"7	 "  H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 8D1122(Qv>>>>
#Hd1g666{!S(((( '44 	 	zz+..66777VPTUVPW 7  H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 8D1122(Qv>>>>
#Hd1g666{!S((((((s#   "A--A14A154D55D9<D9c                p   |}d}t          j        t          |          5  t          j                            dd          \  }}t          j        t                    5  |	                    d          
                    |          }d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w 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   r   rD   r   rm   rn   r   r   ro   )rP   r   rS   r   r   r   s         r   'test_grouped_box_multiple_axes_ax_errorzATestDataFrameGroupByPlots.test_grouped_box_multiple_axes_ax_error  sO    P]:S111 	@ 	@
++Aq11IC+K88 @ @zz+..66$6??@ @ @ @ @ @ @ @ @ @ @ @ @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s5   =B+*BB+B	B+B	B++B/2B/c                    t          g dg dd          }t          |                    ddd          dd           d S )	Nr   )r   r   r   r-   r-   r-   )r   r   r   r   r   )r[   r   r   r   r   s     r   r   z'TestDataFrameGroupByPlots.test_fontsize  s_    ///6H6H6HIIJJJJssRJ00RB	
 	
 	
 	
 	
 	
r   z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  r  r  r  r  r  r  r  r  r  Nc                   t          t          j                            d                              t          d          d          t          j                            d                              d          t          j                            d                              d          d          }|                    d          }t          |j        d|d          }d	 |	                                D             }||k    sJ d S )
Nr,   abcder   )catr   r  r  Fr   )r   rW   rU   c                6    g | ]}|                                 S r8   r   r<   s     r   r?   zQTestDataFrameGroupByPlots.test_groupby_boxplot_subplots_false.<locals>.<listcomp>       JJJaQZZ\\JJJr   )
r   rE   rF   rG   rH   rO   r   r   ro   rK   )rP   r   expected_xticklabelrS   rL  r   result_xticklabels          r   #test_groupby_boxplot_subplots_falsez=TestDataFrameGroupByPlots.test_groupby_boxplot_subplots_false  s    P y,,Q//66tG}}cJJY**1--44S99i++A..55c:: 
 
 **U## OeCV
 
 
 KJ43G3G3I3IJJJ"&7777777r   c                    |                     d          }|                    d          }d}t          j        t          |          5  t          |j        d           d d d            d S # 1 swxY w Y   d S )NobjectrG  z:boxplot method requires numerical columns, nothing to plotr   F)r   )r   r   r   r   r   r   ro   )rP   r   rS   rL  r   s        r   test_groupby_boxplot_objectz5TestDataFrameGroupByPlots.test_groupby_boxplot_object  s    ^^H%%**X&&J]:S111 	? 	?go>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   A,,A03A0c                   g dg dg}t          t          |           }t          j        |ddg          }t	          t
          j                            d                              d          g d|	          }d
dg}t          |j
        |d          }ddg}d |                                D             }||k    sJ d S )N)r4   r4   bazr  rg   rg   quxr  )rX   rY   rX   rY   rX   rY   rX   rY   firstsecond)namesr,   )r.   r   r~  re   )r4   rX   )r4   rY   r   r  z
(bar, one)z
(bar, two)c                6    g | ]}|                                 S r8   r   r<   s     r   r?   zLTestDataFrameGroupByPlots.test_boxplot_multiindex_column.<locals>.<listcomp>  r  r   )rO   rT  r   rV  r   rE   rF   rG   rj   r   ro   rK   )	rP   arraysrX  r3   rS   r   r   r  r  s	            r   test_boxplot_multiindex_columnz8TestDataFrameGroupByPlots.test_boxplot_multiindex_column  s     EDDDDD
 c6l##&vgx5HIIII!!!$$44V<<!//
 
 
 ~. CVLLL+\:JJ43G3G3I3IJJJ"&7777777r   )#r>  r?  r@  rr   rO  r   r:  rA  r   rZ  rB  r   r`  rl  ro  rv  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r8   r   r   rE  rE    s       H H H; ; ;
 [	I 	I 	I [; ; ; [*
Q	')A)A)AB B B	 B  "$ $ $ [
 
 
 [Q Q Q [[],D,D,DEE	
 	
 FE 	
 [[],D,D,DEEN N FE N [Q Q Q [   [S S S [[ 			---/B/B/BC 	V 	V	  
	V [[(E*Xt,<z4>PQ 	@ 	@  	@ [L L L [[VaW--	L 	L .- 	L [[[Aq6B7*;<<N N =< N [[[Aq6B7*;<<N N =< N [P P P [) ) )4 [@ @ @
 
 
 ["DDDEUFFFGJJJKd      '"	
% %L8 8M% %L8$? ? ?8 8 8 8 8r   rE  )'__doc__
__future__r   r   rk   numpyrE   r   pandasr   r   r   r   r   r	   pandas._testing_testingrm   pandas.tests.plotting.commonr
   r   r   r   r   pandas.util.versionr   pandas.io.formats.printingr   importorskipr   rQ   r   r8  r    __annotations__fixturer   r)   rE  r8   r   r   <module>r     s<   & & & " " " " " "                                             ( ' ' ' ' ' 3 3 3 3 3 3f,''f-..   73?ggfoo--+15/FD>)JEJJJJJ\*]J,GHE u  l l l l l l l l^o8 o8 o8 o8 o8 o8 o8 o8 o8 o8r   