
    Pit                       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       }/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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}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                     t                                           d |                                D             t          t          j        d|d                    k    sJ d S )N      )r      r,      )Clinical	Confirmed	Discardedr   indexbarT)kindstackedc                P    g | ]#}t          |                                          $S  intget_text.0xs     r   
<listcomp>zDTestDataFramePlots.test_stacked_boxplot_set_axis.<locals>.<listcomp>A   (    @@@aAJJLL!!@@@r   
   c                P    g | ]#}t          |                                          $S r8   r9   r<   s     r   r?   zDTestDataFramePlots.test_stacked_boxplot_set_axis.<locals>.<listcomp>D   r@   r   )r   nprandomdefault_rngchoicearangeplotget_xticklabelsr3   to_list
set_xtickspltdrawlist)self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1b))***


@@2+=+=+?+?@@@DIaBE
 E
 
 
 
 
 
 
r   zkwargs, warnreturn_typedictNcolumnonetwoindic)rU   byindic2rY   notchr-   )rY   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^   rV   rW   threefourr3   columnsfoor4   r.   rX   )re   r4   re   rZ   Fcheck_stacklevel)r   rC   rD   rE   standard_normalrN   stringascii_letterstmassert_produces_warningr   boxplot)rO   kwargswarnrQ   s       r   test_boxplot_legacy1z'TestDataFramePlots.test_boxplot_legacy1H   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^   rT   )datarS   )	r   rC   rD   rE   rh   r   r   _corerm   )rO   sers     r   test_boxplot_legacy1_seriesz.TestDataFramePlots.test_boxplot_legacy1_seriesc   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rd   
Ar|   r|   r|   r|   Br}   r}   r}   r}   Xr|   rA   YFrf   rY   )
r   rC   rD   rE   r   rk   rl   UserWarningr   rm   rO   rQ   s     r   test_boxplot_legacy2z'TestDataFramePlots.test_boxplot_legacy2g   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,   rw   rx   ry   rz   r{   r~   r|   rA   r   )rY   r   )
r   rC   rD   rE   r   mplpyplotsubplotsrm   axes)rO   rQ   _r   r   ax_axess         r   test_boxplot_legacy2_with_axz/TestDataFramePlots.test_boxplot_legacy2_with_axp   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,   rw   rx   ry   rz   r{   r~   r|   rA   r   r   r   rS   )r   rC   rD   rE   r   r   r   r   groupbyrm   r   )rO   rQ   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                                        \  }}d}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,   rw   rx   ry   rz   r{   r~   r|   rA   r   z6the figure containing the passed axes is being clearedmatchr   )rU   rY   r   rS   )r   rC   rD   rE   r   r   r   r   rk   rl   r   rm   
get_figure)rO   rQ   r   r   msgr   s         r   #test_boxplot_legacy2_with_multi_colz6TestDataFramePlots.test_boxplot_legacy2_with_multi_col   sE   I!!!$$++G44vv>N
 
 
 KKKLL3#$$3*%%''RF'3??? 	 	::'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,   rw   rx   ry   rz   r{   r~   r|   rA   r   rT   r   )r   rC   rD   rE   r   r   r   r   rm   rN   	itertoolschainfrom_iterablevalueslen	get_lines)rO   rQ   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   )rm   
isinstancer   r   Axes)rO   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^   r`   rc   z,return_type must be {'axes', 'dict', 'both'}r   
NOT_A_TYPErS   r   )r   rC   rD   rE   rh   rN   ri   rj   pytestraises
ValueErrorrm   r   )rO   rQ   r   r   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(rT   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^   r`   rc   Fr   )r   rC   rD   rE   rh   rN   ri   rj   rk   rl   rm   r   )rO   rS   rQ   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   	copyrC   rD   rE   integersshaperm   r   _sharey)rO   r   rQ   	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   )rO   r   rQ   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   r_   r   r   r   )	r   rC   rD   rE   rh   nanlocr   rm   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Erz   r   )      )rS   figsizer   r   )	r   rC   rD   rE   rm   figurebbox_incheswidthr   )rO   rQ   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.   r_   r   r^      )fontsize
xlabelsize
ylabelsizer   r   rm   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-01rA   )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   rC   rD   rE   rh   astypestrr	   rH   rI   )rO   rQ   r   s      r   test_boxplot_numeric_dataz,TestDataFramePlots.test_boxplot_numeric_data   s    b999Y**1--==bAAY**1--==bAAAEb999@@EEbUCCC$Xr::: 	
 	
 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,   rw   rT   colorrS   r   )r   rC   rD   rE   rm   items	get_color)rO   
colors_kwdexpectedrQ   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                x   t          t          j                            d                              d                    }t          j                            |           |j                            d          }|	                                D ]+\  }}||         d         
                                |k    sJ ,d S )Nr,   rw   rT   r   r   )r   rC   rD   rE   rL   styleuserH   r   r   r   )rO   schemer   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,   rw   r   rT   r   )r   rC   rD   rE   r   r   r   rm   )rO   dict_colorsr   rQ   s       r   test_color_kwd_errorsz(TestDataFramePlots.test_color_kwd_errors.  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   )rC   rD   rE   )r=   r   s     r   
<dictcomp>z?TestDataFramePlots.test_specified_props_kwd.<locals>.<dictcomp>C  s8    NNN1290033::2>>NNNr   ABCr   C1rS   rT   r   r8   )r   rm   r   )rO   propsr   rQ   kwdr   s         r   test_specified_props_kwdz+TestDataFramePlots.test_specified_props_kwd8  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   rC   rD   rE   rh   rF   rH   
get_xlabel
get_ylabelrO   r   rQ   r  r  r   s         r   test_plot_xlabel_ylabelz*TestDataFramePlots.test_plot_xlabel_ylabelI  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 7d S )Nr,   r   d   )rA   r_   sizeABCDrz   r  )rA      T)ncolsr   sharey)r   r  r  r-   r8   )rC   rD   rE   r   r   rN   rL   r   rH   r   r  r  )
rO   r   rngdf1df2r  r  r   axsr   s
             r   test_plot_boxz TestDataFramePlots.test_plot_boxW  s-    i##A&&Q'::DLLQQQQ'::DLLQQQ!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   rC   rD   rE   rh   rF   rm   r  r  r   s         r   test_boxplot_xlabel_ylabelz-TestDataFramePlots.test_boxplot_xlabel_ylabelf  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 7d S )
Nr,   rA   r  r  r  r  r  )rY   r  r  r8   r0  )rO   r   rQ   r  r  r   subplots          r    test_boxplot_group_xlabel_ylabelz3TestDataFramePlots.test_boxplot_group_xlabel_ylabelt  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	2 	2r   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 ]J}|ddiddifv r|                                n|                                }|t!          dg          k    sJ Kd S )Nr   r!   r"   z$ fails starting with matplotlib 3.10)reasonr,   rA   r  r  r  rY   r  r   Tr#   r8   )r   r   __version__applymarkerr   markxfailr   rC   rD   rE   rh   rF   rm   r  r  r   )rO   r   r'   rQ   r   r3  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 VTN]J,GHHH ""$$$'')) 
  <	#:#::::::	; 	;r   )#__name__
__module____qualname__rR   r   r9  slowparametrizer   rp   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  filterwarningsr!  r.  r1  r4  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2 2 ED2 [ 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	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+d,g d-fd,gg d-fd.g d/fd,d.gg d0fd1g d0fg          d2             Zd3 Zd4 Z ej                            d5d6d6d7gg          d8             Z!d1S )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   Frf   r   r   r,   )r-   r,   axes_numlayout)	r   rk   rl   r   r   rm   r
   rN   r   rO   r   groupedr   s       r   rp   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 )	NrF  r   Fr   r   rS   r-   r   rG  )r   r   rm   r
   rJ  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          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   Tstrictr,   rA   r.   r2   r-   levelFrf   r   r   )r_   r.   rG  )zipri   rj   ranger   rC   rD   rE   r   from_tuplesr   rk   rl   r   r   rm   r
   rN   r   rO   tuplesrQ   rK  r   s        r   r   z.TestDataFrameGroupByPlots.test_boxplot_legacy2  s5   V)#2#.b		$GGG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   6CC Cc                   t          t          j        d d         t          d          d          }t	          t
          j                            d                              d          t          j	        |                    }|
                    d          }t          |j        d	d
          }t          |dd           d S )NrA   TrP  r,   rR  r2   r-   rS  Fr   rM  r   rG  )rU  ri   rj   rV  r   rC   rD   rE   r   rW  r   r   rm   r
   rX  s        r    test_boxplot_legacy2_return_typez:TestDataFrameGroupByPlots.test_boxplot_legacy2_return_type  s    V)#2#.b		$GGGI!!!$$++G44(00
 
 
 **1*%% 5fUUU$6::::::r   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   rF  rF  allr   r   r-   )r   rC   rD   rE   normalrF   r   r   rH   r   r   r   get_fignumsrL   closerm   )rO   rP   r   r   rF  rQ   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,   r]  r   r$  r^  r_  r`  ra  rF  )	r   rC   rD   rE   rc  rF   r   r   hist)rO   rP   r   r   rF  rQ   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 )NrF  r   r   r   r   expected_keys)rm   r   rC   ndarrayr   rO   r   rQ   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 )NrF  rT   r   MaleFemalern  r   rm   r   rq  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   rS   r   c                    |}|                     d                              |          }t          ||g d           |                    d|          }t          ||g d           d S )N	classroomr   r|   r}   r   rn  rY   rS   rm  rv  )rO   r   rS   rQ   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   rz   zA Br.   r   r   rn  r{  )	splitr   rC   rD   rE   rh   r   rm   r   )rO   rS   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   rU   rY   rI  r   r   r   rm   rF  rO   r   rQ   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   rm  )r,   r-   rT   rU   rI  rS   )r   r   r   rm   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_layout  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)rF  r,   r-   )r   r_   r,   )ry  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 )NFrf   r   rT   rU   rS   r,   rG  rk   rl   r   r   r   rm   r
   r   r   gcfr   )rO   r   gb_keyrH  rowsrQ   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   Tr   c                L   |}|                     g ddd          }t          t          j                                        j        dd           ||         }t          |                                |           t          |j        	                                g|           d S )	Nrm  rF  r   )rU   rY   rS   r.   r,   r,   rG  )visible)
rm   r
   r   r   r  r   r   rI   xaxis	get_label)rO   r   r   r  rQ   r   r   s          r   test_grouped_box_layout_visiblez9TestDataFrameGroupByPlots.test_grouped_box_layout_visible2  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 )Nry  rm  rT   r  r.   r  rG  r   rm   r
   r   r   r  r   )rO   r   rQ   s      r   test_grouped_box_layout_shapez7TestDataFrameGroupByPlots.test_grouped_box_layout_shapeA  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 )NFrf   r   r   r.   rT   r  r_   )r.   r,   rG  r  )rO   r   r  rQ   s       r   test_grouped_box_layout_worksz7TestDataFrameGroupByPlots.test_grouped_box_layout_worksI  s     'eLLL 	 	

:&&.4y"	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#*..**/!FKKKKKKs   .AAAz	rows, resr_   r.   c                    |}|                     g dd|df           t          t          j                                        j        d|df           d S )Nrm  rF  r-   r  r.   rG  )rm   r
   r   r   r  r   )rO   r   r  rg  rQ   s        r   'test_grouped_box_layout_axes_shape_rowszATestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_rowsV  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 )Nry  rm  r-   rT   r  r.   rG  r  )rO   r   r  rg  rQ   s        r   /test_grouped_box_layout_axes_shape_cols_groupbyzITestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_cols_groupby_  su     


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

 	#*..**/!QHMMMMMMr   c                t   |}t          j        t          d          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 )Nsharex and shareyr   r,   r   r   r   rU   rS   r   r_   r  rG  )rk   rl   r   r   r   r   r   rm   r
   r  r   )rO   r   rQ   r   r   s        r   test_grouped_box_multiple_axesz8TestDataFrameGroupByPlots.test_grouped_box_multiple_axesj  s     ';NOOO 	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--B14B1c                T   |}t           j                            dd          \  }}t          j        t
          d          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
          d          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.   r  r   rm  rF  r   r   )rU   rY   rS   r   )r-   r.   rG  ry  r-   r  )r   r   r   rk   rl   r   rm   rC   arrayrN   r   r
   assert_numpy_array_equalr   r   )rO   r   rQ   r   r   r|  s         r   %test_grouped_box_multiple_axes_on_figz?TestDataFrameGroupByPlots.test_grouped_box_multiple_axes_on_figy  s*    J''1--	T';NOOO 	 	zz777"7	 "  H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 8D1122(Qv>>>>
#Hd1g666{!S(((( ';NOOO 	 	zz+..66777VPTUVPW 7  H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 8D1122(Qv>>>>
#Hd1g666{!S((((((s$   "A//A36A394D99D= D=c                t   |}d}t           j                            dd          \  }}t          j        t
          |          5  t          j        t          d          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  ry  )r   )r   r   r   r   r   r   rk   rl   r   r   rm   )rO   r   rQ   r   r   r   s         r   'test_grouped_box_multiple_axes_ax_errorzATestDataFrameGroupByPlots.test_grouped_box_multiple_axes_ax_error  sU    P*%%a++4]:S111 	@ 	@+K?RSSS @ @zz+..66$6??@ @ @ @ @ @ @ @ @ @ @ @ @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s6   B-*B	B-B	B-B	B--B14B1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   )rY   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   rU   rS   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   rC   rD   rE   rF   rN   r   r   rm   rI   )rO   r   expected_xticklabelrQ   rK  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objectrF  z:boxplot method requires numerical columns, nothing to plotr   F)r   )r   r   r   r   r   r   rm   )rO   r   rQ   rK  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          |ddi          }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  re   re   quxr  )rV   rW   rV   rW   rV   rW   rV   rW   rQ  Tfirstsecond)namesr,   )r.   r   rz  rc   )r4   rV   )r4   rW   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   )rN   rU  r   rW  r   rC   rD   rE   rh   r   rm   rI   )	rO   arraysrY  r3   rQ   r   r   r  r  s	            r   test_boxplot_multiindex_columnz8TestDataFrameGroupByPlots.test_boxplot_multiindex_column  s     EDDDDD
 c6/$//00&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   c           	     .   d}t          t          j                            d                              |df          ddg          }t          t          j        dd	gt          |dz                                |d
<   t          t          j        ddgt          |dz                                |d<   |	                    |          }t          |j        |d           t          |j        j        |d           t          |j        d           d S )Nr   r   r,   r$  rx   ry   rz   r|   r}   r~   r   r   r   T)rY   default_axes)r  )r   rC   rD   rE   rc  r   repeatr:   tiler   r   rm   rH   r   )rO   r  r  rQ   rK  s        r   !test_boxplot_multi_groupby_groupsz;TestDataFrameGroupByPlots.test_boxplot_multi_groupby_groups  s     I!!"%%,,4),<<vvFV
 
 
 C:s4!8}}==>>3#sS]];;<<3**U##"*TBBBB"'+%dCCCC'/======r   )"r=  r>  r?  rp   rN  r   r9  r@  r   r[  rh  rk  rr  rw  rA  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r8   r   r   rD  rD    s       H H H; ; ;
 [	I 	I 	I [; ; ;  "$ $ $ [
 
 
 [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* [WsS#J&788> > 98> > >r   rD  )'__doc__
__future__r   r   ri   numpyrC   r   pandasr   r   r   r   r   r	   pandas._testing_testingrk   pandas.tests.plotting.commonr
   r   r   r   r   pandas.util.versionr   pandas.io.formats.printingr   importorskipr   rL   r   r7  r    __annotations__fixturer   r)   rD  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  e; e; e; e; e; e; e; e;Pj> j> j> j> j> j> j> j> j> j>r   