
    .it                       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j8                  d      Z ej8                  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jF                  e!      d        Z$ G d d      Z% G d d      Z&y)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                ~    |j                         \  }}|| j                         k  sJ || j                         k\  sJ y N)get_ylimminmax)colaxy_miny_maxs       g/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/plotting/test_boxplot_method.py_check_ax_limitsr   #   s9    ;;=LE5CGGICGGI    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
                  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
                  j                  dg d      d        Zd Zd Zd Zd Zd Zd  Zej
                  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
                  j                  d)d*d+d+d,d+d&fd-d.d.d/d.d&fg      d0        Zej
                  j                  d1d"d"d2d3fg      d4        Zej
                  j                  d5g d6      d7        Zej
                  j;                  d8      d9        Zej
                  j;                  d8      d:        Zej
                  j;                  d8      d;        Z ej
                  j;                  d8      d<        Z!ej
                  j;                  d8      d=        Z"y)>TestDataFramePlotsc                n   d}t        t        j                  j                  d      j	                  g d|      t        j                  j                  d      j	                  g d|      t        j                  j                  d      j	                  g d|      dt        j
                  d|            }|j                  dd	      }|j                         D cg c]  }t        |j                                c}|j                  j                         k(  sJ |j                  t        j
                  d|d
             t        j                          |j                         D cg c]  }t        |j                                c}t        t        j
                  d|d
            k(  sJ y c c}w c c}w )N      )r      r,      )Clinical	Confirmed	Discardedr   indexbarT)kindstacked
   )r   nprandomdefault_rngchoicearangeplotget_xticklabelsintget_textr3   to_list
set_xtickspltdrawlist)selfndfr   xs        r   test_stacked_boxplot_set_axisz0TestDataFramePlots.test_stacked_boxplot_set_axis5   sG   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    F-& F2zkwargs, warnreturn_typedictNcolumnonetwoindic)rM   byindic2rQ   notchr-   )rQ   rS   c                \   t        t        j                  j                  d      j	                  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        y # 1 sw Y   y xY w)Nr,         rV   rN   rO   threefourr3   columnsfoor4   r.   rP   )r]   r4   r]   rR   Fcheck_stacklevel)r   r8   r9   r:   standard_normalrE   stringascii_letterstmassert_produces_warningr   boxplot)rF   kwargswarnrH   s       r   test_boxplot_legacy1z'TestDataFramePlots.test_boxplot_legacy1H   s     II!!!$44V<v++BQ/03

 enq(7,q08 ''uE 	4bjj3F3	4 	4 	4s   B""B+c                    t        t        j                  j                  d      j	                  d            }t        t        j                  j                  |d       y )Nr,   rV   rL   )datarK   )	r   r8   r9   r:   r`   r   r   _corere   )rF   sers     r   test_boxplot_legacy1_seriesz.TestDataFramePlots.test_boxplot_legacy1_seriesc   s<    RYY**1-==a@A(..00sOr   c                L   t        t        j                  j                  d      j                  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        y # 1 sw Y   y xY w)Nr,   r7   r,   Col1Col2r\   
Art   rt   rt   rt   Bru   ru   ru   ru   Xrt   r7   YFr^   rQ   )
r   r8   r9   r:   r   rc   rd   UserWarningr   re   rF   rH   s     r   test_boxplot_legacy2z'TestDataFramePlots.test_boxplot_legacy2g   s    II!!!$++G4vv>N
 KL3#$3''eL 	2bjjS1	2 	2 	2s   9BB#c                L   t        t        j                  j                  d      j                  d      ddg      }t	        g d      |d<   t	        dgd	z        |d
<   t
        j                  j                         \  }}|j                  dd|      }|j                  }||u sJ y )Nr,   ro   rp   rq   rr   rs   rv   rt   r7   rw   )rQ   r   )
r   r8   r9   r:   r   mplpyplotsubplotsre   axes)rF   rH   _r   r   ax_axess         r   test_boxplot_legacy2_with_axz/TestDataFramePlots.test_boxplot_legacy2_with_axp   s    II!!!$++G4vv>N
 KL3#$3 

##%2zz&SRz0''$r   c                n   t        t        j                  j                  d      j                  d      ddg      }t	        g d      |d<   t	        dgd	z        |d
<   t
        j                  j                         \  }}|j                  d
      j                  |d      }|j                  }||d   u sJ y )Nr,   ro   rp   rq   rr   rs   rv   rt   r7   rw   r   r   rK   )r   r8   r9   r:   r   r}   r~   r   groupbyre   r   )rF   rH   figr   r   r   s         r   (test_boxplot_legacy2_with_ax_return_typez;TestDataFramePlots.test_boxplot_legacy2_with_ax_return_type}   s    II!!!$++G4vv>N
 KL3#$3**%%'Rzz#&&"&&A''$s)###r   c                   t        t        j                  j                  d      j                  d      ddg      }t	        g d      |d<   t	        dgd	z        |d
<   t
        j                  j                         \  }}d}t        j                  t        |      5  |j                  ddgd|d      }d d d        d   j                         |u sJ y # 1 sw Y   !xY w)Nr,   ro   rp   rq   rr   rs   rv   rt   r7   rw   z6the figure containing the passed axes is being clearedmatchr   )rM   rQ   r   rK   )r   r8   r9   r:   r   r}   r~   r   rc   rd   ry   re   
get_figure)rF   rH   r   r   msgr   s         r   #test_boxplot_legacy2_with_multi_colz6TestDataFramePlots.test_boxplot_legacy2_with_multi_col   s    II!!!$++G4vv>N
 KL3#$3**%%'RF''3? 	::'CBF  D	 F|&&(C///		 	s   CCc                   t        t        j                  j                  d      j                  d      ddg      }t	        g d      |d<   t	        dgd	z        |d
<   t
        j                  j                         \  }}|j                  |d      }t        t        j                  j                  |j                                     }t        |j                               t        |      k(  sJ y )Nr,   ro   rp   rq   rr   rs   rv   rt   r7   rw   rL   r   )r   r8   r9   r:   r   r}   r~   r   re   rE   	itertoolschainfrom_iterablevalueslen	get_lines)rF   rH   r   r   dliness         r   test_boxplot_legacy2_by_nonez/TestDataFramePlots.test_boxplot_legacy2_by_none   s    II!!!$++G4vv>N
 KL3#$3 

##%2JJ"&J1Y__22188:>?2<<>"c%j000r   c                p    |j                         }t        |t        j                  j                        sJ y r   )re   
isinstancer}   r~   Axes)rF   hist_dfresults      r   test_boxplot_return_type_nonez0TestDataFramePlots.test_boxplot_return_type_none   s&    "&#**//222r   c                p   t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }d}t        j                  t        |      5  |j                  d	       d d d        |j                         }t        |d
       y # 1 sw Y   &xY w)Nr,   rU   rV   rX   r[   z,return_type must be {'axes', 'dict', 'both'}r   
NOT_A_TYPErK   r   )r   r8   r9   r:   r`   rE   ra   rb   pytestraises
ValueErrorre   r   )rF   rH   r   r   s       r   test_boxplot_return_type_legacyz2TestDataFramePlots.test_boxplot_return_type_legacy   s     II!!!$44V<v++BQ/03

 =]]:S1 	1JJ<J0	1 vv.		1 	1s   4B,,B5rL   r   bothc                @   t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }t        j                  d      5  |j                  |      }d d d        t        |       y # 1 sw Y   xY w)Nr,   rU   rV   rX   r[   Fr   )r   r8   r9   r:   r`   rE   ra   rb   rc   rd   re   r   )rF   rK   rH   r   s       r   +test_boxplot_return_type_legacy_return_typez>TestDataFramePlots.test_boxplot_return_type_legacy_return_type   s     II!!!$44V<v++BQ/03

 ''. 	9ZZKZ8F	9v{3	9 	9s   ,BBc                2   |j                         }t        j                  j                  d      j	                  dd|j
                  d         |d<   |j                  ddgd	      \  }}t        |d   |       t        |d   |       |j                  |k(  sJ y )
Nr,   r-      r   ageheightweightcategoryrx   	copyr8   r9   r:   integersshapere   r   _sharey)rF   r   rH   	height_ax	weight_axs        r   test_boxplot_axis_limitsz+TestDataFramePlots.test_boxplot_axis_limits   s    \\^II))!,55aRXXa[I5	!zz8X*>:zN	9Hy1Hy1  I---r   c                   |j                         }t        j                  j                  d      j	                  dd|j
                  d         |d<   |j                  g dd      }|d	   |d
   |d   }}}|d   }t        |d   |       t        |d   |       t        |d   |       |j                  |k(  sJ |j                  |k(  sJ |j                  J y )Nr,   r-   r   r   r   )r   r   r   r   rx   )r   r   )r   r-   )r-   r   r-   r-   r   r   r   )rF   r   rH   pr   r   age_axdummy_axs           r   !test_boxplot_axis_limits_two_rowsz4TestDataFramePlots.test_boxplot_axis_limits_two_rows   s    \\^II))!,55aRXXa[I5	JJ2zJB'(w$4f9	T7Hy1Hy1EF+  I---~~***'''r   c                    t        t        j                  j                  d      j	                  d            }t        j
                  |j                  d d df<   t        |j                  d       y )Nr,   )r   rW   r   r   r   )	r   r8   r9   r:   r`   nanlocr   re   rz   s     r   test_boxplot_empty_columnz,TestDataFramePlots.test_boxplot_empty_column   sI    ryy,,Q/??HIvvq!t"**&9r   c                4   t        t        j                  j                  d      j                  d      g d      }|j	                  dd      }|j
                  j                  j                  dk(  sJ |j
                  j                  j                  d	k(  sJ y )
Nr,   )r7      )rt   ru   CDErr   r   )      )rK   figsizer   r   )	r   r8   r9   r:   re   figurebbox_incheswidthr   )rF   rH   r   s      r   test_figsizezTestDataFramePlots.test_figsize   s|    II!!!$++G4>W
 @}}((.."444}}((//1444r   c                `    t        dg di      }t        |j                  dd      dd       y )Nar-   r,   r.   rW   r   rV      )fontsize
xlabelsize
ylabelsizer   r   re   rz   s     r   test_fontsizez TestDataFramePlots.test_fontsize   s,    /012::cB:7BSUVr   c                   t        t        dd      t        j                  j	                  d      j                  d      t        j                  j	                  d      j                  d      dz   t        dd      j                  t              t        ddd      t        dd      d      }|j                  d	
      }|j                         D cg c]  }|j                          c}ddgk(  sJ y c c}w )Nz
2012-01-01r7   )periodsr,   UTC)r   tzz1 days)r   bcr   efbox)r5   r   r   )r   r   r8   r9   r:   r`   astypestrr	   r=   r>   r@   )rF   rH   r   rI   s       r   test_boxplot_numeric_dataz,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   C4zcolors_kwd, expectedrr   gr   )boxeswhiskersmedianscapsr   c                    t        t        j                  j                  d      j                  d            }|j	                  |d      }|j                         D ]   \  }}||   d   j                         |k(  r J  y )Nr,   ro   rL   colorrK   r   )r   r8   r9   r:   re   items	get_color)rF   
colors_kwdexpectedrH   r   kvs          r   test_color_kwdz!TestDataFramePlots.test_color_kwd   ss     ryy,,Q/66w?@*&ANN$ 	1DAq!9Q<))+q000	1r   zscheme,expecteddark_backgroundz#8dd3c7z#bfbbd9defaultz#1f77b4z#2ca02cc                N   t        t        j                  j                  d      j                  d            }t        j
                  j                  |       |j                  j                  d      }|j                         D ]   \  }}||   d   j                         |k(  r J  y )Nr,   ro   rL   r   r   )r   r8   r9   r:   rC   styleuser=   r   r   r   )rF   schemer   rH   r   r   r   s          r   test_colors_in_themez'TestDataFramePlots.test_colors_in_theme  s    2 ryy,,Q/66w?@		f0NN$ 	1DAq!9Q<))+q000	1r   zdict_colors, msg)r   invalid_keyzinvalid key 'invalid_key'c                    t        t        j                  j                  d      j                  d            }t	        j
                  t        |      5  |j                  |d       d d d        y # 1 sw Y   y xY w)Nr,   ro   r   rL   r   )r   r8   r9   r:   r   r   r   re   )rF   dict_colorsr   rH   s       r   test_color_kwd_errorsz(TestDataFramePlots.test_color_kwd_errors.  s[     ryy,,Q/66w?@]]:S1 	>JJ[fJ=	> 	> 	>s   A00A9zprops, expected))boxpropsr   )whiskerpropsr   )cappropsr   )medianpropsr   c           	        t        dD ci c]1  }|t        j                  j                  d      j                  d      3 c}      }|ddii} |j                  d	ddi|}||   d   j                         dk(  sJ y c c}w )
NABCr,   r7   r   C1rK   rL   r    )r   r8   r9   r:   re   r   )rF   propsr   r   rH   kwdr   s          r   test_specified_props_kwdz+TestDataFramePlots.test_specified_props_kwd8  s     N1299003::2>>NOwo&66#6h",,.$666	 Os   6A=z!ignore:set_ticklabels:UserWarningc                   t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j                  ddgd      d      }d\  }} |j                  d	d||d|}|j                         |k(  sJ |j                         |k(  sJ y )
Nr,   r7   group1group2r   r   grouprI   yr   )r5   xlabelylabelr  )	r   r8   r9   r:   r`   r;   r=   
get_xlabel
get_ylabelrF   r   rH   r  r  r   s         r   test_plot_xlabel_ylabelz*TestDataFramePlots.test_plot_xlabel_ylabelI  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "RWWF%vFF}}&(((}}&(((r   c                   t         j                  j                  d      }t        |j	                  ddd      t        d            }t        |j	                  ddd      t        d            }d\  }}t        j                  dd	d
      \  }} |j                  j                  d|d   ||d|  |j                  j                  d|d   ||d| |D ],  }	|	j                         |k(  sJ |	j                         |k(  r,J  y )Nr,   r   d   )r7   rW   sizeABCDrr   r  )r7      T)ncolsr   sharey)r   r  r  r-   r  )r8   r9   r:   r   r   rE   rC   r   r=   r   r  r  )
rF   r   rngdf1df2r  r  r   axsr   s
             r   test_plot_boxz TestDataFramePlots.test_plot_boxW  s     ii##A&Q':DLQQ':DLQ!AwtD3EAvfEEEAvfEE 	-B==?f,,,==?f,,,	-r   c                   t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j                  ddgd      d      }d\  }} |j                  d||d|}|j                         |k(  sJ |j                         |k(  sJ y )	Nr,   r7   r  r  r  r  )r  r  r  	r   r8   r9   r:   r`   r;   re   r  r  r  s         r   test_boxplot_xlabel_ylabelz-TestDataFramePlots.test_boxplot_xlabel_ylabelf  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "RZZ=vf==}}&(((}}&(((r   c                   t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j                  ddgd      d      }d\  }} |j                  d	d||d|}|D ],  }|j                         |k(  sJ |j                         |k(  r,J  y )
Nr,   r7   r  r  r  r  r  )rQ   r  r  r  r%  )rF   r   rH   r  r  r   subplots          r    test_boxplot_group_xlabel_ylabelz3TestDataFramePlots.test_boxplot_group_xlabel_ylabelt  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "RZZI76&IDI 	2G%%'6111%%'6111	2r   c                   t        t        j                        t        d      k\  r9|ddik(  r2|j                  t        j
                  j                  | d             t        t        j                  j                  d      j                  d      t        j                  j                  d      j                  d      t        j                  j                  d      j                  dd	gd      d
      } |j                  dddi|}|D ]=  }|ddiddifv r|j                         n|j                         }|t!        dg      k(  r=J  y )Nr   r!   r"   z$ fails starting with matplotlib 3.10)reasonr,   r7   r  r  r  rQ   r  r   Tr#   r  )r   r}   __version__applymarkerr   markxfailr   r8   r9   r:   r`   r;   re   r  r  r   )rF   r   r'   rH   r   r(  target_labels          r   #test_boxplot_group_no_xlabel_ylabelz6TestDataFramePlots.test_boxplot_group_no_xlabel_ylabel  s<   3??#wv64<D
 <
 !!D61U)V!W YY**1-==bAYY**1-==bA..q188(H9MrR
 RZZ+7+d+ 	;G VTN]J,GHH ""$'') 
  <	#::::	;r   )#__name__
__module____qualname__rJ   r   r.  slowparametrizery   rh   rm   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	  filterwarningsr  r#  r&  r)  r1  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            
         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                  j                  d	g d
      d               Zej                  j                  ej                  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                  j                  dg dg dg dg      d               Zej                  j                  ej                  j                  dddgddgddgg      d               Zej                  j                  d        Zej                  j                  ej                  j                  dddg      d                Zej                  j                  ej                  j                  d!d"d"gdd#gg      d$               Zej                  j                  ej                  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                  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                  j                  d5d6d6d7gg      d8        Z!y1)9TestDataFrameGroupByPlotsc                    |j                  d      }t        j                  t        d      5  t	        |j
                  d      }d d d        t        t        j                        dd	       y # 1 sw Y   +xY w)
Ngenderrx   Fr^   r   r   r,   )r-   r,   axes_numlayout)	r   rc   rd   ry   r   re   r
   rE   r   rF   r   groupedr   s       r   rh   z.TestDataFrameGroupByPlots.test_boxplot_legacy1  s`    //X/.''eL 	J$W__&ID	J$t{{+aG	J 	Js   A00A9c                t    |j                  d      }t        |j                  dd      }t        |dd       y )	Nr;  rx   Fr   r   rK   r-   r   r<  )r   r   re   r
   r?  s       r    test_boxplot_legacy1_return_typez:TestDataFrameGroupByPlots.test_boxplot_legacy1_return_type  s0    //X/. 5fU$6:r   c                   t        t        j                  d d t        d      d      }t	        t
        j                  j                  d      j                  d      t        j                  |            }|j                  d      }t        j                  t        d	
      5  t        |j                  d      }d d d        t!        t#        j$                        dd       y # 1 sw Y   +xY w)Nr7   Tstrictr,   r7   r.   r2   r-   levelFr^   r   r   )rW   r.   r<  )zipra   rb   ranger   r8   r9   r:   r   from_tuplesr   rc   rd   ry   r   re   r
   rE   r   rF   tuplesrH   r@  r   s        r   r{   z.TestDataFrameGroupByPlots.test_boxplot_legacy2  s    V))#2.b	$GII!!!$++G4((0
 **1*%''eL 	J$W__&ID	J$t{{+bH	J 	Js   "C$$C-c                \   t        t        j                  d d t        d      d      }t	        t
        j                  j                  d      j                  d      t        j                  |            }|j                  d      }t        |j                  d	d
      }t        |dd       y )Nr7   TrE  r,   rG  r2   r-   rH  Fr   rB  r   r<  )rJ  ra   rb   rK  r   r8   r9   r:   r   rL  r   r   re   r
   rM  s        r    test_boxplot_legacy2_return_typez:TestDataFrameGroupByPlots.test_boxplot_legacy2_return_type  s    V))#2.b	$GII!!!$++G4((0
 **1*% 5fU$6:r   c                   d}t        t        j                  j                  d      j	                  dd|            }t        t        j                  j                  d      j	                  dd|            }t        j                  j                  d      j                  ddg|      }t        |||d	      }|j                  d
      }|j                         }t        t        j                  j                               dk(  sJ t        |      dk(  sJ t        j                  d       |j                  d      }t        t        j                  j                               dk(  sJ t        |      dk(  sJ y )Nr7   r,      r   r  <   malefemaler   r   r;  r;  allr   r   r-   )r   r8   r9   r:   normalr;   r   r   r=   r   r}   r~   get_fignumsrC   closere   )rF   rG   r   r   r;  rH   gbress           r   test_grouped_plot_fignumsz3TestDataFrameGroupByPlots.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&FfMNZZ!ggi3::))+,1113x1}}		%jjVj,3::))+,1113x1}}r   c                   d}t        t        j                  j                  d      j	                  dd|            }t        t        j                  j                  d      j	                  dd|            }t        j                  j                  d      j                  ddg|      }t        |||d	      }|j                  d
      j                          y )Nr7   r,   rR  r   r  rS  rT  rU  rV  r;  )	r   r8   r9   r:   rX  r;   r   r   hist)rF   rG   r   r   r;  rH   s         r   &test_grouped_plot_fignums_excluded_colz@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&FfMN


8!!#r   c                    |}|j                  d      }t        |t        j                        sJ t	        |d g d       y )Nr;  rx   r   r   r   expected_keys)re   r   r8   ndarrayr   rF   r   rH   r   s       r   test_grouped_box_return_typez6TestDataFrameGroupByPlots.test_grouped_box_return_type  s=     x(&"**---D(H	
r   c                j    |}|j                  d      j                  d      }t        |dddg       y )Nr;  rL   r   MaleFemalerc  r   re   r   rf  s       r   $test_grouped_box_return_type_groupbyz>TestDataFrameGroupByPlots.test_grouped_box_return_type_groupby  s4    H%--&-Avvfh=OPr   rK   r   c                    |}|j                  d      j                  |      }t        ||g d       |j                  d|      }t        ||g d       y )N	classroomr   rt   ru   r   rc  rQ   rK   rb  rk  )rF   r   rK   rH   returneds        r    test_grouped_box_return_type_argz:TestDataFrameGroupByPlots.test_grouped_box_return_type_arg  sS     ::k*22{2KxOT::+:Fk1Q	
r   c                f   dj                         }t        t        j                  j	                  d      j                  d      |      }dj                         }|dz  |d<   |j                  d      j                  |      }t        |||	       |j                  d|
      }t        |||	       y )Nz	X B C D Ar,   )rV   r   rr   zA Br.   r   r   rc  rp  )	splitr   r8   r9   r:   r`   r   re   r   )rF   rK   columns2r!  categories2rq  s         r   .test_grouped_box_return_type_arg_duplcate_catszHTestDataFrameGroupByPlots.test_grouped_box_return_type_arg_duplcate_cats  s     $$&II!!!$44V<h
 kkm%/J;;z*22{2KxKP;;*+;FxHMr   c                    |}d}t        j                  t        |      5  |j                  ddg|j                  d       d d d        y # 1 sw Y   y xY w)Nz1Layout of 1x1 must be larger than required size 2r   r   r   r   rM   rQ   r>  r   r   r   re   r;  rF   r   rH   r   s       r   !test_grouped_box_layout_too_smallz;TestDataFrameGroupByPlots.test_grouped_box_layout_too_small  sN    A]]:S1 	QJJx2ryyJP	Q 	Q 	Q   !A

Ac                    |}d}t        j                  t        |      5  |j                  g ddd       d d d        y # 1 sw Y   y xY w)Nz7The 'layout' keyword is not supported when 'by' is Noner   rb  )r,   r-   rL   rM   r>  rK   )r   r   r   re   r{  s       r    test_grouped_box_layout_needs_byz:TestDataFrameGroupByPlots.test_grouped_box_layout_needs_by  sI    G]]:S1 	JJ7"  	 	 	s   A  A	c                    |}d}t        j                  t        |      5  |j                  ddg|j                  d       d d d        y # 1 sw Y   y xY w)Nz1At least one dimension of layout must be positiver   r   r   )r  ry  rz  r{  s       r   'test_grouped_box_layout_positive_layoutzATestDataFrameGroupByPlots.test_grouped_box_layout_positive_layout  sN    A]]:S1 	SJJx2ryyJR	S 	S 	Sr}  zgb_key, axes_num, rows)r;  r,   r-   )r   rW   r,   )rn  r.   r,   c                "   |}t        j                  t        d      5  t        |j	                  |      j
                  dd       d d d        t        t        j                  j                         j                  ||df       y # 1 sw Y   @xY w)NFr^   r   rL   rM   rK   r,   r<  rc   rd   ry   r   r   re   r
   r}   r~   gcfr   )rF   r   gb_keyr=  rowsrH   s         r   ,test_grouped_box_layout_positive_layout_axeszFTestDataFrameGroupByPlots.test_grouped_box_layout_positive_layout_axes"  sp     ''eL 	

6"**8	 	#**..*//(DRS9U		 	s   (BBzcol, visibler   Fr   Tr   c                (   |}|j                  g ddd      }t        t        j                  j	                         j
                  dd       ||   }t        |j                         |       t        |j                  j                         g|       y )	Nrb  r;  r   )rM   rQ   rK   r.   r,   r,   r<  )visible)
re   r
   r}   r~   r  r   r   r>   xaxis	get_label)rF   r   r   r  rH   r   r   s          r   test_grouped_box_layout_visiblez9TestDataFrameGroupByPlots.test_grouped_box_layout_visible2  sx    
 zz3f  
 	#**..*//!FK#Yr))+W=**,-w?r   c                    |}|j                  d      j                  g dd       t        t        j                  j                         j                  dd       y )Nrn  rb  rL   r  r.   r  r<  r   re   r
   r}   r~   r  r   )rF   r   rH   s      r   test_grouped_box_layout_shapez7TestDataFrameGroupByPlots.test_grouped_box_layout_shapeA  sG    


;''3 	( 	
 	#**..*//!FKr   colsr,   r  c                $   |}t        j                  t        d      5  t        |j	                  d      j
                  dd|fd       d d d        t        t        j                  j                         j                  dd	
       y # 1 sw Y   >xY w)NFr^   r   r   r.   rL   r  rW   )r.   r,   r<  r  )rF   r   r  rH   s       r   test_grouped_box_layout_worksz7TestDataFrameGroupByPlots.test_grouped_box_layout_worksI  st     ''eL 	

:&..4y"		 	#**..*//!FK	 	s   +BBz	rows, resrW   r.   c                    |}|j                  g dd|df       t        t        j                  j	                         j
                  d|df       y )Nrb  r;  r-   ry  r.   r<  )re   r
   r}   r~   r  r   )rF   r   r  r\  rH   s        r   'test_grouped_box_layout_axes_shape_rowszATestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_rowsV  sI     


3$PQ 	 	
 	#**..*//!S!HMr   z	cols, resc                    |}|j                  d      j                  g dd|fd       t        t        j                  j                         j                  dd|f       y )Nrn  rb  r-   rL   r  r.   r<  r  )rF   r   r  r\  rH   s        r   /test_grouped_box_layout_axes_shape_cols_groupbyzITestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_cols_groupby_  sU     


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

 	#**..*//!QHMr   c                \   |}t        j                  t        d      5  t        j                  j                  dd      \  }}|j                  d      j                  dd|       t        t        j                  j                         j                  dd	
       d d d        y # 1 sw Y   y xY w)Nsharex and shareyr   r,   r   r   r   rM   rK   r   rW   r  r<  )rc   rd   ry   r}   r~   r   r   re   r
   r  r   )rF   r   rH   r   r   s        r   test_grouped_box_multiple_axesz8TestDataFrameGroupByPlots.test_grouped_box_multiple_axesj  s      '';NO 	Pjj))!Q/GAtJJz"**(SW*Xcjjnn.33aO	P 	P 	Ps   A;B""B+c                   |}t         j                  j                  dd      \  }}t        j                  t
        d      5  |j                  g ddd|d   	      }d d d        t        j                  t        j                              }t        |dd
       t        j                  ||d          |d   j                  |u sJ t        j                  t
        d      5  |j                  d      j                  g dd|d         }d d d        t        j                  t        |j                              }t        |dd
       t        j                  ||d          |d   j                  |u sJ y # 1 sw Y   xY w# 1 sw Y   yxY w)Nr,   r.   r  r   rb  r;  r   r   )rM   rQ   rK   r   )r-   r.   r<  rn  r-   r  )r}   r~   r   rc   rd   ry   re   r8   arrayrE   r   r
   assert_numpy_array_equalr   r   )rF   r   rH   r   r   rq  s         r   %test_grouped_box_multiple_axes_on_figz?TestDataFrameGroupByPlots.test_grouped_box_multiple_axes_on_figy  sb    JJ''1-	T'';NO 	zz7"7	 " H	 88D12(Qv>
##Hd1g6{!!S((( '';NO 	zz+.667VPTUVPW 7 H	 88D12(Qv>
##Hd1g6{!!S((()	 		 	s   E5!)F5E?Fc                T   |}d}t         j                  j                  dd      \  }}t        j                  t
        |      5  t        j                  t        d      5  |j                  d      j                  |      }d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz@The number of passed axes must be 3, the same as the output plotr,   r.   r   r  rn  )r   )r}   r~   r   r   r   r   rc   rd   ry   r   re   )rF   r   rH   r   r   r   s         r   'test_grouped_box_multiple_axes_ax_errorzATestDataFrameGroupByPlots.test_grouped_box_multiple_axes_ax_error  s     P**%%a+4]]:S1 	@++K?RS @zz+.66$6?@	@ 	@@ @	@ 	@s$   B"BBB	BB'c                h    t        g dg dd      }t        |j                  ddd      dd       y )	Nr   )r   r   r   r-   r-   r-   )r   r   r   r   r   )rQ   r   r   r   rz   s     r   r   z'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                    t        t        j                  j                  d      j	                  t        d      d      t        j                  j                  d      j                  d      t        j                  j                  d      j                  d      d      }|j                  d      }t        |j                  d|d      }|j                         D cg c]  }|j                          }}||k(  sJ y c c}w )	Nr,   abcder  )catr   r  r  Fr   )r   rM   rK   )r   r8   r9   r:   r;   rE   r   r   re   r>   r@   )rF   r   expected_xticklabelrH   r@  r   rI   result_xticklabels           r   #test_groupby_boxplot_subplots_falsez=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JaQZZ\JJ"&7777 Ks   C;c                    |j                  d      }|j                  d      }d}t        j                  t        |      5  t        |j                  d       d d d        y # 1 sw Y   y xY w)Nobjectr;  z:boxplot method requires numerical columns, nothing to plotr   F)r   )r   r   r   r   r   r   re   )rF   r   rH   r@  r   s        r   test_groupby_boxplot_objectz5TestDataFrameGroupByPlots.test_groupby_boxplot_object  sT    ^^H%**X&J]]:S1 	?goo>	? 	? 	?s    A!!A*c                   g dg dg}t        t        |ddi      }t        j                  |ddg      }t	        t
        j                  j                  d      j                  d	      g d
|      }ddg}t        |j                  |d      }ddg}|j                         D cg c]  }|j                          }	}||	k(  sJ y c c}w )N)r4   r4   bazr  r]   r]   quxr  )rN   rO   rN   rO   rN   rO   rN   rO   rF  Tfirstsecond)namesr,   )r.   r   ro  r[   )r4   rN   )r4   rO   r   r  z
(bar, one)z
(bar, two))rE   rJ  r   rL  r   r8   r9   r:   r`   r   re   r>   r@   )
rF   arraysrN  r3   rH   r   r   r  rI   r  s
             r   test_boxplot_multiindex_columnz8TestDataFrameGroupByPlots.test_boxplot_multiindex_column  s     ED
 c6/$/0&&vgx5HIII!!!$44V<!
 ~. CVL+\:373G3G3IJaQZZ\JJ"&7777 Ks   $Cr  rv   rw   c           	        d}t        t        j                  j                  d      j	                  |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<   |j                  |      }t        |j                  |d       t        |j                  j                  |d       t        |j                  d       y )Nr   r   r,   r  rp   rq   rr   rt   ru   rv   r   r   rw   T)rQ   default_axes)r  )r   r8   r9   r:   rX  r   repeatr?   tiler   r   re   r=   r   )rF   r  r  rH   r@  s        r   !test_boxplot_multi_groupby_groupsz;TestDataFrameGroupByPlots.test_boxplot_multi_groupby_groups  s     II!!"%,,4),<vvFV
 C:s4!8}=>3#sS];<3**U#"**TB"''++%dC'//=r   )"r2  r3  r4  rh   rC  r   r.  r5  r{   rP  r]  r`  rg  rl  r6  rr  rw  r|  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r   r   r9  r9    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   r9  )'__doc__
__future__r   r   ra   numpyr8   r   pandasr   r   r   r   r   r	   pandas._testing_testingrc   pandas.tests.plotting.commonr
   r   r   r   r   pandas.util.versionr   pandas.io.formats.printingr   importorskipr}   rC   r   r,  r    __annotations__fixturer   r)   r9  r  r   r   <module>r     s    $ "        ( 3f,'f-. 3??gfo-+15/FD>)JE&J\*]J,GHE u e; e;Pj> j>r   