
    A>it                       % S r SSKJr  SSKrSSKrSSKrSSKrSSKJ	r	J
r
JrJrJrJr  SSKJr  SSKJrJrJrJrJr  SSKJr  SSKJr  \R8                  " S5      r\R8                  " S	5      rS
 r\" \R@                  5      \" S5      :  a  SS0SS0/r!S\"S'   OSS0SS0/r!\RF                  " \!S9S 5       r$ " S S5      r% " S S5      r&g)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                |    UR                  5       u  p#X R                  5       ::  d   eX0R                  5       :  d   eg N)get_ylimminmax)colaxy_miny_maxs       h/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/plotting/test_boxplot_method.py_check_ax_limitsr   #   s3    ;;=LEGGIGGI    3.10vertFTzlist[dict[str, bool | str]]vertsorientation
horizontalvertical)paramsc                    U R                   $ r   )param)requests    r   r   r   /   s    ==r   c                  V   \ rS rSrS r\R                  R                  \R                  R                  SSS0S/SSS	/0S/SS	/S
S.\	/S/S
S/S.S/SS
0\	/SS
S/0\	/SS0S/S
SS.\	//5      S 5       5       r
S rS rS rS rS rS rS rS r\R                  R                  S/ SQ5      S 5       rS rS rS rS rS  rS! r\R                  R                  S"S#S$S%S&S'.S#S$S%S&S'.4S(S#0S(S#04S#S#S#S#S#S'.4/5      S) 5       r\R                  R                  S*S+S,S,S-S,S'.4S.S/S/S0S/S'.4/5      S1 5       r\R                  R                  S2S#S#S3.S44/5      S5 5       r\R                  R                  S6/ S7Q5      S8 5       r\R                  R=                  S95      S: 5       r\R                  R=                  S95      S; 5       r \R                  R=                  S95      S< 5       r!\R                  R=                  S95      S= 5       r"\R                  R=                  S95      S> 5       r#S?r$g)@TestDataFramePlots4   c                x   Sn[        [        R                  R                  S5      R	                  / SQU5      [        R                  R                  S5      R	                  / SQU5      [        R                  R                  S5      R	                  / SQU5      S.[        R
                  " SU5      S9nUR                  SSS	9nUR                  5        Vs/ s H  n[        UR                  5       5      PM     snUR                  R                  5       :X  d   eUR                  [        R
                  " SUS
5      5        [        R                  5         UR                  5        Vs/ s H  n[        UR                  5       5      PM     sn[        [        R
                  " SUS
5      5      :X  d   eg s  snf s  snf )N      )r      r-      )Clinical	Confirmed	Discardedr   indexbarT)kindstacked
   )r   nprandomdefault_rngchoicearangeplotget_xticklabelsintget_textr4   to_list
set_xtickspltdrawlist)selfndfr   xs        r   test_stacked_boxplot_set_axis0TestDataFramePlots.test_stacked_boxplot_set_axis5   sS   II11!4;;L!LYY2215<<\1MYY2215<<\1M
 ))Aq/
 WW%W.+-+=+=+?@+?aAJJL!+?@BHHDTDTDVVVV
bii1b)*
+-+=+=+?@+?aAJJL!+?@DIIaBE
 
 	
 
 A As   #F2&#F7zkwargs, warnreturn_typedictNcolumnonetwoindic)rO   byindic2rS   notchr.   )rS   rU   c                \   [        [        R                  R                  S5      R	                  S5      [        [        R                  S S 5      / SQS9nSS/S-  US	'   / S
QS-  US'   [        R                  " USS9   [        UR                  40 UD6  S S S 5        g ! , (       d  f       g = f)Nr-         rX   rP   rQ   threefourr4   columnsfoor5   r/   rR   )r_   r5   r_   rT   Fcheck_stacklevel)r   r9   r:   r;   standard_normalrF   stringascii_letterstmassert_produces_warningr   boxplot)rG   kwargswarnrI   s       r   test_boxplot_legacy1'TestDataFramePlots.test_boxplot_legacy1H   s     II!!!$44V<v++BQ/03

 enq(7,q08 ''uEbjj3F3 FEEs   =B
B+c                    [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  USS9  g )Nr-   rX   rN   )datarM   )	r   r9   r:   r;   rb   r   r   _corerg   )rG   sers     r   test_boxplot_legacy1_series.TestDataFramePlots.test_boxplot_legacy1_seriesc   s<    RYY**1-==a@A(..00sOr   c                F   [        [        R                  R                  S5      R                  S5      SS/S9n[	        / SQ5      US'   [	        S/S	-  5      US
'   [
        R                  " [        SS9   [        UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nr-   r8   r-   Col1Col2r^   
Arx   rx   rx   rx   Bry   ry   ry   ry   Xrx   r8   YFr`   rS   )
r   r9   r:   r;   r   re   rf   UserWarningr   rg   rG   rI   s     r   test_boxplot_legacy2'TestDataFramePlots.test_boxplot_legacy2g   s    II!!!$++G4vv>N
 KL3#$3''eLbjjS1 MLLs   4B
B c                >   [        [        R                  R                  S5      R                  S5      SS/S9n[	        / SQ5      US'   [	        S/S	-  5      US
'   [
        R                  R                  5       u  p#UR                  SSUS9nUR                  nXTL d   eg )Nr-   rs   rt   ru   rv   rw   rz   rx   r8   r{   )rS   r   )
r   r9   r:   r;   r   mplpyplotsubplotsrg   axes)rG   rI   _r   r   ax_axess         r   test_boxplot_legacy2_with_ax/TestDataFramePlots.test_boxplot_legacy2_with_axp   s    II!!!$++G4vv>N
 KL3#$3 

##%zz&SRz0''r   c                `   [        [        R                  R                  S5      R                  S5      SS/S9n[	        / SQ5      US'   [	        S/S	-  5      US
'   [
        R                  R                  5       u  p#UR                  S
5      R                  USS9nUR                  nXTS   L d   eg )Nr-   rs   rt   ru   rv   rw   rz   rx   r8   r{   r   r   rM   )r   r9   r:   r;   r   r   r   r   groupbyrg   r   )rG   rI   figr   r   r   s         r   (test_boxplot_legacy2_with_ax_return_type;TestDataFramePlots.test_boxplot_legacy2_with_ax_return_type}   s    II!!!$++G4vv>N
 KL3#$3**%%'zz#&&"&&A''s)###r   c                   [        [        R                  R                  S5      R                  S5      SS/S9n[	        / SQ5      US'   [	        S/S	-  5      US
'   [
        R                  R                  5       u  p#Sn[        R                  " [        US9   UR                  SS/SUSS9nS S S 5        WS   R                  5       UL d   eg ! , (       d  f       N'= f)Nr-   rs   rt   ru   rv   rw   rz   rx   r8   r{   z6the figure containing the passed axes is being clearedmatchr   )rO   rS   r   rM   )r   r9   r:   r;   r   r   r   r   re   rf   r}   rg   
get_figure)rG   rI   r   r   msgr   s         r   #test_boxplot_legacy2_with_multi_col6TestDataFramePlots.test_boxplot_legacy2_with_multi_col   s    II!!!$++G4vv>N
 KL3#$3**%%'F''3?::'CBF  D @ F|&&(C///	 @?s   C
Cc                   [        [        R                  R                  S5      R                  S5      SS/S9n[	        / SQ5      US'   [	        S/S	-  5      US
'   [
        R                  R                  5       u  p#UR                  USS9n[        [        R                  R                  UR                  5       5      5      n[        UR                  5       5      [        U5      :X  d   eg )Nr-   rs   rt   ru   rv   rw   rz   rx   r8   r{   rN   r   )r   r9   r:   r;   r   r   r   r   rg   rF   	itertoolschainfrom_iterablevalueslen	get_lines)rG   rI   r   r   dliness         r   test_boxplot_legacy2_by_none/TestDataFramePlots.test_boxplot_legacy2_by_none   s    II!!!$++G4vv>N
 KL3#$3 

##%JJ"&J1Y__22188:>?2<<>"c%j000r   c                z    UR                  5       n[        U[        R                  R                  5      (       d   eg r   )rg   
isinstancer   r   Axes)rG   hist_dfresults      r   test_boxplot_return_type_none0TestDataFramePlots.test_boxplot_return_type_none   s)    "&#**//2222r   c                j   [        [        R                  R                  S5      R	                  S5      [        [        R                  S S 5      / SQS9nSn[        R                  " [        US9   UR                  SS	9  S S S 5        UR                  5       n[        US
5        g ! , (       d  f       N+= f)Nr-   rW   rX   rZ   r]   z,return_type must be {'axes', 'dict', 'both'}r   
NOT_A_TYPErM   r   )r   r9   r:   r;   rb   rF   rc   rd   pytestraises
ValueErrorrg   r   )rG   rI   r   r   s       r   test_boxplot_return_type_legacy2TestDataFramePlots.test_boxplot_return_type_legacy   s     II!!!$44V<v++BQ/03

 =]]:S1JJ<J0 2 vv.	 21s   /B$$
B2rN   r   bothc                @   [        [        R                  R                  S5      R	                  S5      [        [        R                  S S 5      / SQS9n[        R                  " S5         UR                  US9nS S S 5        [        WU5        g ! , (       d  f       N= f)Nr-   rW   rX   rZ   r]   Fr   )r   r9   r:   r;   rb   rF   rc   rd   re   rf   rg   r   )rG   rM   rI   r   s       r   +test_boxplot_return_type_legacy_return_type>TestDataFramePlots.test_boxplot_return_type_legacy_return_type   s{     II!!!$44V<v++BQ/03

 ''.ZZKZ8F /v{3 /.s   *B
Bc                ,   UR                  5       n[        R                  R                  S5      R	                  SSUR
                  S   5      US'   UR                  SS/SS	9u  p4[        US   U5        [        US   U5        UR                  U:X  d   eg )
Nr-   r.      r   ageheightweightcategoryr|   	copyr9   r:   r;   integersshaperg   r   _sharey)rG   r   rI   	height_ax	weight_axs        r   test_boxplot_axis_limits+TestDataFramePlots.test_boxplot_axis_limits   s    \\^II))!,55aRXXa[I5	!zz8X*>:zN	Hy1Hy1  I---r   c                   UR                  5       n[        R                  R                  S5      R	                  SSUR
                  S   5      US'   UR                  / SQSS9nUS	   US
   US   penUS   n[        US   U5        [        US   U5        [        US   U5        UR                  U:X  d   eUR                  U:X  d   eUR                  b   eg )Nr-   r.   r   r   r   )r   r   r   r   r|   )r   r   )r   r.   )r.   r   r.   r.   r   r   r   )rG   r   rI   pr   r   age_axdummy_axs           r   !test_boxplot_axis_limits_two_rows4TestDataFramePlots.test_boxplot_axis_limits_two_rows   s    \\^II))!,55aRXXa[I5	JJ2zJB'(w$4f	T7Hy1Hy1EF+  I---~~***'''r   c                    [        [        R                  R                  S5      R	                  S5      5      n[        R
                  UR                  S S 2S4'   [        UR                  SS9  g )Nr-   )r   rY   r   r   r   )	r   r9   r:   r;   rb   nanlocr   rg   r~   s     r   test_boxplot_empty_column,TestDataFramePlots.test_boxplot_empty_column   sI    ryy,,Q/??HIvvq!t"**&9r   c                ,   [        [        R                  R                  S5      R                  S5      / SQS9nUR	                  SSS9nUR
                  R                  R                  S:X  d   eUR
                  R                  R                  S	:X  d   eg )
Nr-   )r8      )rx   ry   CDErv   r   )      )rM   figsizer   r   )	r   r9   r:   r;   rg   figurebbox_incheswidthr   )rG   rI   r   s      r   test_figsizeTestDataFramePlots.test_figsize   s|    II!!!$++G4>W
 @}}((.."444}}((//1444r   c                T    [        S/ SQ05      n[        UR                  SSS9SSS9  g )Nar.   r-   r/   rY   r   rX      )fontsize
xlabelsize
ylabelsizer   r   rg   r~   s     r   test_fontsize TestDataFramePlots.test_fontsize   s,    /012::cB:7BSUVr   c                   [        [        SSS9[        R                  R	                  S5      R                  S5      [        R                  R	                  S5      R                  S5      S-   [        SSS9R                  [        5      [        SSSS9[        SSS9S.5      nUR                  S	S
9nUR                  5        Vs/ s H  o3R                  5       PM     snSS/:X  d   eg s  snf )Nz
2012-01-01r8   )periodsr-   UTC)r   tzz1 days)r   bcr   efbox)r6   r   r   )r   r   r9   r:   r;   rb   astypestrr	   r>   r?   rA   )rG   rI   r   rJ   s       r   test_boxplot_numeric_data,TestDataFramePlots.test_boxplot_numeric_data   s    b9YY**1-==bAYY**1-==bAAEb9@@EbUC$Xr:	
 WW%W &(&8&8&:;&:

&:;SzIII;s   C(zcolors_kwd, expectedrr   gr   )boxeswhiskersmedianscapsr   c                    [        [        R                  R                  S5      R                  S5      5      nUR	                  USS9nUR                  5        H   u  pVXE   S   R                  5       U:X  a  M    e   g )Nr-   rs   rN   colorrM   r   )r   r9   r:   r;   rg   items	get_color)rG   
colors_kwdexpectedrI   r   kvs          r   test_color_kwd!TestDataFramePlots.test_color_kwd   sj     ryy,,Q/66w?@*&ANN$DA9Q<))+q000 %r   zscheme,expecteddark_backgroundz#8dd3c7z#bfbbd9defaultz#1f77b4z#2ca02cc                J   [        [        R                  R                  S5      R                  S5      5      n[        R
                  R                  U5        UR                  R                  SS9nUR                  5        H   u  pVXE   S   R                  5       U:X  a  M    e   g )Nr-   rs   rN   r   r   )r   r9   r:   r;   rD   styleuser>   r   r   r   )rG   schemer  rI   r   r  r  s          r   test_colors_in_theme'TestDataFramePlots.test_colors_in_theme  s|    2 ryy,,Q/66w?@		f0NN$DA9Q<))+q000 %r   zdict_colors, msg)r   invalid_keyzinvalid key 'invalid_key'c                    [        [        R                  R                  S5      R                  S5      5      n[        R
                  " [        US9   UR                  USS9  S S S 5        g ! , (       d  f       g = f)Nr-   rs   r   rN   r   )r   r9   r:   r;   r   r   r   rg   )rG   dict_colorsr   rI   s       r   test_color_kwd_errors(TestDataFramePlots.test_color_kwd_errors.  sR     ryy,,Q/66w?@]]:S1JJ[fJ= 211s   A++
A9zprops, expected))boxpropsr   )whiskerpropsr   )cappropsr   )medianpropsr   c           	        [        S Vs0 s H1  o3[        R                  R                  S5      R                  S5      _M3     sn5      nUSS00nUR                  " S	SS0UD6nXb   S   R                  5       S:X  d   eg s  snf )
NABCr-   r8   r   C1rM   rN   r    )r   r9   r:   r;   rg   r   )rG   propsr  r  rI   kwdr   s          r   test_specified_props_kwd+TestDataFramePlots.test_specified_props_kwd8  s     N1299003::2>>NOwo&66#6",,.$666	 Os   8A?z!ignore:set_ticklabels:UserWarningc                   [        [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R                  SS/S5      S.5      nSu  p4UR                  " S	SX4S.UD6nUR                  5       U:X  d   eUR                  5       U:X  d   eg )
Nr-   r8   group1group2r   r   grouprJ   yr   )r6   xlabelylabelr  )	r   r9   r:   r;   rb   r<   r>   
get_xlabel
get_ylabelrG   r   rI   r'  r(  r   s         r   test_plot_xlabel_ylabel*TestDataFramePlots.test_plot_xlabel_ylabelI  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "WWF%FF}}&(((}}&(((r   c                   [         R                  R                  S5      n[        UR	                  SSSS9[        S5      S9n[        UR	                  SSSS9[        S5      S9nSu  pV[        R                  SS	S
S9u  pxUR                  R                  " SUS   XVS.UD6  UR                  R                  " SUS   XVS.UD6  U H/  n	U	R                  5       U:X  d   eU	R                  5       U:X  a  M/   e   g )Nr-   r   d   )r8   rY   sizeABCDrv   r%  )r8      T)ncolsr   sharey)r   r'  r(  r.   r  )r9   r:   r;   r   r   rF   rD   r   r>   r   r)  r*  )
rG   r   rngdf1df2r'  r(  r   axsr   s
             r   test_plot_box TestDataFramePlots.test_plot_boxW  s     ii##A&Q':DLQQ':DLQ!AwtDEAvEEEAvEEB==?f,,,==?f,,, r   c                   [        [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R                  SS/S5      S.5      nSu  p4UR                  " SX4S.UD6nUR                  5       U:X  d   eUR                  5       U:X  d   eg )	Nr-   r8   r!  r"  r#  r%  )r'  r(  r  	r   r9   r:   r;   rb   r<   rg   r)  r*  r+  s         r   test_boxplot_xlabel_ylabel-TestDataFramePlots.test_boxplot_xlabel_ylabelf  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "ZZ=v==}}&(((}}&(((r   c                   [        [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R                  SS/S5      S.5      nSu  p4UR                  " S	SX4S.UD6nU H/  nUR                  5       U:X  d   eUR                  5       U:X  a  M/   e   g )
Nr-   r8   r!  r"  r#  r%  r$  )rS   r'  r(  r  r=  )rG   r   rI   r'  r(  r   subplots          r    test_boxplot_group_xlabel_ylabel3TestDataFramePlots.test_boxplot_group_xlabel_ylabelt  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "ZZI76IDIG%%'6111%%'6111 r   c                   [        [        R                  5      [        S5      :  a7  USS0:X  a/  UR                  [        R
                  R                  U S3S95        [        [        R                  R                  S5      R                  S5      [        R                  R                  S5      R                  S5      [        R                  R                  S5      R                  SS	/S5      S
.5      nUR                  " SSS0UD6nU HA  nUSS0SS04;   a  UR                  5       OUR                  5       nU[!        S/5      :X  a  MA   e   g )Nr   r!   r"   z$ fails starting with matplotlib 3.10)reasonr-   r8   r!  r"  r#  rS   r$  r   Tr#   r  )r   r   __version__applymarkerr   markxfailr   r9   r:   r;   rb   r<   rg   r)  r*  r   )rG   r   r'   rI   r   rA  target_labels          r   #test_boxplot_group_no_xlabel_ylabel6TestDataFramePlots.test_boxplot_group_no_xlabel_ylabel  s5   3??#wv64<D
 <
 !!D61U)V!W YY**1-==bAYY**1-==bA..q188(H9MrR
 ZZ+7+d+G VTN]J,GHH ""$'') 
  <	#:::: r   r  )%__name__
__module____qualname____firstlineno__rK   r   rH  slowparametrizer}   rj   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  filterwarningsr,  r:  r>  rB  rK  __static_attributes__r  r   r   r)   r)   4   s   
& [[[[V$d+'.g6D':;TBG_k*Wh'(+6q\4 a(+6		
4 4P2	$013
/ [[],DE
4 F
4.(:
5WJ [[ 33L33L s^gs^,CSS#NO	

1
1 [[ "& )(%	 & )(%		
.1/.1 [[
,.I	JK>	> [[	
77 [[ CD) E) [[ CD- E- [[ CD) E) [[ CD2 E2 [[ CD; E;r   r)   c            
         \ rS rSrS rS r\R                  R                  S 5       r	\R                  R                  S 5       r
S rS r\R                  R                  S 5       r\R                  R                  S	 5       r\R                  R                  \R                  R                  S
/ SQ5      S 5       5       r\R                  R                  \R                  R                  S
/ SQ5      S 5       5       r\R                  R                  S 5       r\R                  R                  S 5       r\R                  R                  S 5       r\R                  R                  \R                  R                  S/ SQ/ SQ/ SQ/5      S 5       5       r\R                  R                  \R                  R                  SSS/SS/SS//5      S 5       5       r\R                  R                  S 5       r\R                  R                  \R                  R                  SSS /5      S! 5       5       r\R                  R                  \R                  R                  S"S#S#/S S$//5      S% 5       5       r\R                  R                  \R                  R                  S&S#S#/S S$//5      S' 5       5       r\R                  R                  S( 5       r\R                  R                  S) 5       r\R                  R                  S* 5       rS+ r\R                  R                  S,S-/ S.Q4S-// S.Q4S// S0Q4S-S/// S1Q4S2/ S1Q4/5      S3 5       rS4 r S5 r!\R                  R                  S6S7S7S8//5      S9 5       r"S:r#g2);TestDataFrameGroupByPlotsi  c                    UR                  SS9n[        R                  " [        SS9   [	        UR
                  SS9nS S S 5        [        [        WR                  5      SSS	9  g ! , (       d  f       N-= f)
Ngenderr|   Fr`   r   r   r-   )r.   r-   axes_numlayout)	r   re   rf   r}   r   rg   r
   rF   r   rG   r   groupedr   s       r   rj   .TestDataFrameGroupByPlots.test_boxplot_legacy1  sW    //X/.''eL$W__&ID M$t{{+aG MLs   A%%
A3c                b    UR                  SS9n[        UR                  SSS9n[        USSS9  g )	NrX  r|   Fr   r   rM   r.   r   rY  )r   r   rg   r
   r\  s       r    test_boxplot_legacy1_return_type:TestDataFrameGroupByPlots.test_boxplot_legacy1_return_type  s0    //X/. 5fU$6:r   c                   [        [        R                  S S [        S5      SS9n[	        [
        R                  R                  S5      R                  S5      [        R                  " U5      S9nUR                  SS9n[        R                  " [        S	S
9   [        UR                  SS9nS S S 5        [!        [#        WR$                  5      SSS9  g ! , (       d  f       N-= f)Nr8   Tstrictr-   r8   r/   r3   r.   levelFr`   r   r   )rY   r/   rY  )ziprc   rd   ranger   r9   r:   r;   r   from_tuplesr   re   rf   r}   r   rg   r
   rF   r   rG   tuplesrI   r]  r   s        r   r   .TestDataFrameGroupByPlots.test_boxplot_legacy2  s    V))#2.b	$GII!!!$++G4((0
 **1*%''eL$W__&ID M$t{{+bH MLs   C
C"c                @   [        [        R                  S S [        S5      SS9n[	        [
        R                  R                  S5      R                  S5      [        R                  " U5      S9nUR                  SS9n[        UR                  S	S
S9n[        USSS9  g )Nr8   Trd  r-   rf  r3   r.   rg  Fr   r`  r   rY  )ri  rc   rd   rj  r   r9   r:   r;   r   rk  r   r   rg   r
   rl  s        r    test_boxplot_legacy2_return_type:TestDataFrameGroupByPlots.test_boxplot_legacy2_return_type  s    V))#2.b	$GII!!!$++G4((0
 **1*% 5fU$6:r   c                   Sn[        [        R                  R                  S5      R	                  SSUS95      n[        [        R                  R                  S5      R	                  SSUS95      n[        R                  R                  S5      R                  SS/US9n[        X2US	.5      nUR                  S
5      nUR                  5       n[        [        R                  R                  5       5      S:X  d   e[        U5      S:X  d   e[        R                  S5        UR                  SS9n[        [        R                  R                  5       5      S:X  d   e[        U5      S:X  d   eg )Nr8   r-      r   r0  <   malefemaler   r   rX  rX  allr   r   r.   )r   r9   r:   r;   normalr<   r   r   r>   r   r   r   get_fignumsrD   closerg   )rG   rH   r   r   rX  rI   gbress           r   test_grouped_plot_fignums3TestDataFrameGroupByPlots.test_grouped_plot_fignums  s*   		--a077Ra7HI		--a077BQ7GH&&q)00&(1C!0L&fMNZZ!ggi3::))+,1113x1}}		%jjVj,3::))+,1113x1}}r   c                   Sn[        [        R                  R                  S5      R	                  SSUS95      n[        [        R                  R                  S5      R	                  SSUS95      n[        R                  R                  S5      R                  SS/US9n[        X2US	.5      nUR                  S
5      R                  5         g )Nr8   r-   rs  r   r0  rt  ru  rv  rw  rX  )	r   r9   r:   r;   ry  r<   r   r   hist)rG   rH   r   r   rX  rI   s         r   &test_grouped_plot_fignums_excluded_col@TestDataFrameGroupByPlots.test_grouped_plot_fignums_excluded_col  s    		--a077Ra7HI		--a077BQ7GH&&q)00&(1C!0L&fMN


8!!#r   c                    UnUR                  SS9n[        U[        R                  5      (       d   e[	        US / SQS9  g )NrX  r|   r   r   r   expected_keys)rg   r   r9   ndarrayr   rG   r   rI   r   s       r   test_grouped_box_return_type6TestDataFrameGroupByPlots.test_grouped_box_return_type  s@     x(&"**----D(H	
r   c                ^    UnUR                  S5      R                  SS9n[        USSS/S9  g )NrX  rN   r   MaleFemaler  r   rg   r   r  s       r   $test_grouped_box_return_type_groupby>TestDataFrameGroupByPlots.test_grouped_box_return_type_groupby  s4    H%--&-Avvfh=OPr   rM   r   c                    UnUR                  S5      R                  US9n[        XB/ SQS9  UR                  SUS9n[        XB/ SQS9  g )N	classroomr   rx   ry   r   r  rS   rM   r  r  )rG   r   rM   rI   returneds        r    test_grouped_box_return_type_arg:TestDataFrameGroupByPlots.test_grouped_box_return_type_arg  sO     ::k*22{2KxOT::+:F1Q	
r   c                D   SR                  5       n[        [        R                  R	                  S5      R                  S5      US9nSR                  5       nUS-  US'   UR                  S5      R                  US9n[        XQUS	9  UR                  SUS
9n[        XQUS	9  g )Nz	X B C D Ar-   )rX   r   rv   zA Br/   r   r   r  r  )	splitr   r9   r:   r;   rb   r   rg   r   )rG   rM   columns2r8  categories2r  s         r   .test_grouped_box_return_type_arg_duplcate_catsHTestDataFrameGroupByPlots.test_grouped_box_return_type_arg_duplcate_cats  s     $$&II!!!$44V<h
 kkm%/J;;z*22{2KxKP;;*+;FxHMr   c                    UnSn[         R                  " [        US9   UR                  SS/UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nz1Layout of 1x1 must be larger than required size 2r   r   r   r   rO   rS   r[  r   r   r   rg   rX  rG   r   rI   r   s       r   !test_grouped_box_layout_too_small;TestDataFrameGroupByPlots.test_grouped_box_layout_too_small  sA    A]]:S1JJx2ryyJP 211   A
Ac                    UnSn[         R                  " [        US9   UR                  / SQSSS9  S S S 5        g ! , (       d  f       g = f)Nz7The 'layout' keyword is not supported when 'by' is Noner   r  )r-   r.   rN   rO   r[  rM   )r   r   r   rg   r  s       r    test_grouped_box_layout_needs_by:TestDataFrameGroupByPlots.test_grouped_box_layout_needs_by  s@    G]]:S1JJ7"   211s	   ;
A	c                    UnSn[         R                  " [        US9   UR                  SS/UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nz1At least one dimension of layout must be positiver   r   r   )r  r  r  r  s       r   'test_grouped_box_layout_positive_layoutATestDataFrameGroupByPlots.test_grouped_box_layout_positive_layout  sA    A]]:S1JJx2ryyJR 211r  zgb_key, axes_num, rows)rX  r-   r.   )r   rY   r-   )r  r/   r-   c                   Un[         R                  " [        SS9   [        UR	                  U5      R
                  SSS9  S S S 5        [        [        R                  R                  5       R                  X4S4S9  g ! , (       d  f       NA= f)NFr`   r   rN   rO   rM   r-   rY  re   rf   r}   r   r   rg   r
   r   r   gcfr   )rG   r   gb_keyrZ  rowsrI   s         r   ,test_grouped_box_layout_positive_layout_axesFTestDataFrameGroupByPlots.test_grouped_box_layout_positive_layout_axes"  si     ''eL

6"**8 M 	#**..*//(RS9U	 MLs   %A<<
B
zcol, visibler   Fr   Tr   c                   UnUR                  / SQSSS9n[        [        R                  R	                  5       R
                  SSS9  XR   n[        UR                  5       US9  [        UR                  R                  5       /US9  g )	Nr  rX  r   )rO   rS   rM   r/   r-   r-   rY  )visible)
rg   r
   r   r   r  r   r   r?   xaxis	get_label)rG   r   r   r  rI   r   r   s          r   test_grouped_box_layout_visible9TestDataFrameGroupByPlots.test_grouped_box_layout_visible2  sv    
 zz3f  
 	#**..*//!FKYr))+W=**,-w?r   c                    UnUR                  S5      R                  / SQSS9  [        [        R                  R                  5       R                  SSS9  g )Nr  r  rN   r  r/   r  rY  r   rg   r
   r   r   r  r   )rG   r   rI   s      r   test_grouped_box_layout_shape7TestDataFrameGroupByPlots.test_grouped_box_layout_shapeA  sG    


;''3 	( 	
 	#**..*//!FKr   colsr-   r  c                   Un[         R                  " [        SS9   [        UR	                  S5      R
                  SSU4SS9  S S S 5        [        [        R                  R                  5       R                  SS	S
9  g ! , (       d  f       N@= f)NFr`   r   r   r/   rN   r  rY   )r/   r-   rY  r  )rG   r   r  rI   s       r   test_grouped_box_layout_works7TestDataFrameGroupByPlots.test_grouped_box_layout_worksI  so     ''eL

:&..4y"	 M 	#**..*//!FK MLs   (A>>
Bz	rows, resrY   r/   c                    UnUR                  / SQSUS4S9  [        [        R                  R	                  5       R
                  SUS4S9  g )Nr  rX  r.   r  r/   rY  )rg   r
   r   r   r  r   )rG   r   r  r}  rI   s        r   'test_grouped_box_layout_axes_shape_rowsATestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_rowsV  sI     


3$PQ 	 	
 	#**..*//!S!HMr   z	cols, resc                    UnUR                  S5      R                  / SQSU4SS9  [        [        R                  R                  5       R                  SSU4S9  g )Nr  r  r.   rN   r  r/   rY  r  )rG   r   r  r}  rI   s        r   /test_grouped_box_layout_axes_shape_cols_groupbyITestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_cols_groupby_  sU     


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

 	#**..*//!QHMr   c                T   Un[         R                  " [        SS9   [        R                  R                  SS5      u  p4UR                  S5      R                  SSUS9  [        [        R                  R                  5       R                  SS	S
9  S S S 5        g ! , (       d  f       g = f)Nsharex and shareyr   r-   r   r   r   rO   rM   r   rY   r  rY  )re   rf   r}   r   r   r   r   rg   r
   r  r   )rG   r   rI   r   r   s        r   test_grouped_box_multiple_axes8TestDataFrameGroupByPlots.test_grouped_box_multiple_axesj  s}      '';NOjj))!Q/GAJJz"**(SW*Xcjjnn.33aO POOs   A4B
B'c                   Un[         R                  R                  SS5      u  p4[        R                  " [
        SS9   UR                  / SQSSUS   S	9nS S S 5        [        R                  " [        WR                  5      5      n[        USS
S9  [        R                  " XTS   5        US   R                  UL d   e[        R                  " [
        SS9   UR                  S5      R                  / SQSUS   S9nS S S 5        [        R                  " [        UR                  5      5      n[        USS
S9  [        R                  " XTS   5        US   R                  UL d   eg ! , (       d  f       GN= f! , (       d  f       N= f)Nr-   r/   r  r   r  rX  r   r   )rO   rS   rM   r   )r.   r/   rY  r  r.   r  )r   r   r   re   rf   r}   rg   r9   arrayrF   r   r
   assert_numpy_array_equalr   r   )rG   r   rI   r   r   r  s         r   %test_grouped_box_multiple_axes_on_fig?TestDataFrameGroupByPlots.test_grouped_box_multiple_axes_on_figy  sR    JJ''1-	'';NOzz7"7	 " H P 88D12(Qv>
##H1g6{!!S((( '';NOzz+.667VPTUVPW 7 H P 88D12(Qv>
##H1g6{!!S((() PO POs   E(&E:(
E7:
Fc                X   UnSn[         R                  R                  SS5      u  pE[        R                  " [
        US9   [        R                  " [        SS9   UR                  S5      R                  US9nS S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz@The number of passed axes must be 3, the same as the output plotr-   r/   r   r  r  )r   )r   r   r   r   r   r   re   rf   r}   r   rg   )rG   r   rI   r   r   r   s         r   'test_grouped_box_multiple_axes_ax_errorATestDataFrameGroupByPlots.test_grouped_box_multiple_axes_ax_error  s     P**%%a+]]:S1++K?RSzz+.66$6? T 21SS 21s$    BB
9B

B	B
B)c                \    [        / SQ/ SQS.5      n[        UR                  SSSS9SSS9  g )	Nr   )r   r   r   r.   r.   r.   )r   r   r   r   r   )rS   r   r   r   r~   s     r   r   'TestDataFrameGroupByPlots.test_fontsize  s1    /6HIJJJssRJ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                   [        [        R                  R                  S5      R	                  [        S5      S5      [        R                  R                  S5      R                  S5      [        R                  R                  S5      R                  S5      S.5      nUR                  S5      n[        UR                  SUSS9nUR                  5        Vs/ s H  ofR                  5       PM     nnX':X  d   eg s  snf )	Nr-   abcder/  )catr  r  r  Fr   )r   rO   rM   )r   r9   r:   r;   r<   rF   r   r   rg   r?   rA   )rG   r   expected_xticklabelrI   r]  r   rJ   result_xticklabels           r   #test_groupby_boxplot_subplots_false=TestDataFrameGroupByPlots.test_groupby_boxplot_subplots_false  s    P yy,,Q/66tG}cJYY**1-44S9ii++A.55c:
 **U# OOeCV
 483G3G3IJ3IaZZ\3IJ"777 Ks   C:c                    UR                  S5      nUR                  S5      nSn[        R                  " [        US9   [        UR                  SS9  S S S 5        g ! , (       d  f       g = f)NobjectrX  z:boxplot method requires numerical columns, nothing to plotr   F)r   )r   r   r   r   r   r   rg   )rG   r   rI   r]  r   s        r   test_groupby_boxplot_object5TestDataFrameGroupByPlots.test_groupby_boxplot_object  sK    ^^H%**X&J]]:S1goo> 211s   A
A*c                   / SQ/ SQ/n[        [        USS065      n[        R                  " USS/S9n[	        [
        R                  R                  S5      R                  S	5      / S
QUS9nSS/n[        UR                  USS9nSS/nUR                  5        Vs/ s H  oR                  5       PM     n	nXy:X  d   eg s  snf )N)r5   r5   bazr  r_   r_   quxr  )rP   rQ   rP   rQ   rP   rQ   rP   rQ   re  Tfirstsecond)namesr-   )r/   r   r  r]   )r5   rP   )r5   rQ   r   r  z
(bar, one)z
(bar, two))rF   ri  r   rk  r   r9   r:   r;   rb   r   rg   r?   rA   )
rG   arraysrm  r4   rI   r   r   r  rJ   r  s
             r   test_boxplot_multiindex_column8TestDataFrameGroupByPlots.test_boxplot_multiindex_column  s     ED
 c6/$/0&&vgx5HIII!!!$44V<!
 ~. CVL+\:373G3G3IJ3IaZZ\3IJ"777 Ks   B?r$  rz   r{   c           	        Sn[        [        R                  R                  S5      R	                  US4S9SS/S9n[        [        R                  " SS	/[        US-  5      5      5      US
'   [        [        R                  " SS/[        US-  5      5      5      US'   UR                  U5      n[        UR                  USS9  [        UR                  R                  USS9  [        UR                  SS9  g )Nr   r   r-   r0  rt   ru   rv   rx   ry   rz   r   r   r{   T)rS   default_axes)r  )r   r9   r:   r;   ry  r   repeatr@   tiler   r   rg   r>   r   )rG   r$  r  rI   r]  s        r   !test_boxplot_multi_groupby_groups;TestDataFrameGroupByPlots.test_boxplot_multi_groupby_groups  s     II!!"%,,4),<vvFV
 C:s4!8}=>3#sS];<3**U#"**TB"''++%dC'//=r   r  )$rM  rN  rO  rP  rj   ra  r   rH  rQ  r   rp  r~  r  r  r  rR  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  rT  r  r   r   rV  rV    s   H;
 [[	I 	I [[; ;"$ [[
 
 [[Q Q [[[[],DE	
 F 	
 [[[[],DEN F N [[Q Q [[  [[S S [[[[ 	-/BC	V	 
	V [[[[(E*Xt,<z4>PQ	@ 	@ [[L L [[[[VaW-	L . 	L [[[[[Aq6B7*;<N = N [[[[[Aq6B7*;<N = N [[P P [[) )4 [[@ @
 [["DEUFGJKd  '"	
%L8M%L8$?8* [[WsS#J&78> 9>r   rV  )'__doc__
__future__r   r   rc   numpyr9   r   pandasr   r   r   r   r   r	   pandas._testing_testingre   pandas.tests.plotting.commonr
   r   r   r   r   pandas.util.versionr   pandas.io.formats.printingr   importorskipr   rD   r   rF  r    __annotations__fixturer   r)   rV  r  r   r   <module>r     s    $ "        ( 3,'-. 3??gfo-+15/FD>)JE&J\*]J,GHE u e; e;Pj> j>r   