
    Owgr                         d Z ddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZmZmZmZmZ ddlmZ  ej0                  d      Z ej0                  d      Zd Z G d	 d
      Z G d d      Zy)z  Test cases for .boxplot method     N)	DataFrame
MultiIndexSeries
date_rangeplottingtimedelta_range)_check_axes_shape_check_box_return_type_check_plot_works_check_ticks_props_check_visible)pprint_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       `/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/plotting/test_boxplot_method.py_check_ax_limitsr       s9    ;;=LE5CGGICGGI    c                   l   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                  d8d9d:g      d;        Zej
                  j                  d8d9d:g      d<        Zej
                  j                  d8d9d:g      d=        Zej
                  j                  d8d9d:g      d>        Z ej
                  j                  d8d9d:g      d?        Z!y)@TestDataFramePlotsc                 r   dd l m} 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d
             |j                          |j                         D cg c]  }t        |j                                c}t!        t        j                  ddd
            k(  sJ y c c}w c c}w )Nr   P      )r      r       )Clinical	Confirmed	DiscardedindexbarT)kindstacked
   )matplotlib.pyplotpyplotr   nprandomdefault_rngchoicearangeplotget_xticklabelsintget_textr'   to_list
set_xticksdrawlist)selfpltndfr   xs         r   test_stacked_boxplot_set_axisz0TestDataFramePlots.test_stacked_boxplot_set_axis'   sJ   '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2r*+
+-+=+=+?@aAJJL!@DIIaR E
 
 	
 
 A As     F/( F4zkwargs, warnreturn_typedictNcolumnonetwoindic)rC   byindic2rG   notchr!   )rG   rI   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          rL   rD   rE   threefourr'   columnsfoor(   r"   rF   )rS   r(   rS   rH   Fcheck_stacklevel)r   r.   r/   r0   standard_normalr:   stringascii_letterstmassert_produces_warningr   boxplot)r;   kwargswarnr>   s       r   test_boxplot_legacy1z'TestDataFramePlots.test_boxplot_legacy1<   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    rL   rB   )datarA   )	r   r.   r/   r0   rV   r   r   _corer[   )r;   sers     r   test_boxplot_legacy1_seriesz.TestDataFramePlots.test_boxplot_legacy1_seriesW   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    r+   r    Col1Col2rR   
Arj   rj   rj   rj   Brk   rk   rk   rk   Xrj   r+   YFrT   rG   )
r   r.   r/   r0   r   rY   rZ   UserWarningr   r[   r;   r>   s     r   test_boxplot_legacy2z'TestDataFramePlots.test_boxplot_legacy2[   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    re   rf   rg   rh   ri   rl   rj   r+   rm   )rG   r   )
r   r.   r/   r0   r   mplr-   subplotsr[   axes)r;   r>   _r   ru   ax_axess         r   test_boxplot_legacy2_with_axz/TestDataFramePlots.test_boxplot_legacy2_with_axd   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    re   rf   rg   rh   ri   rl   rj   r+   rm   ru   r   rA   )r   r.   r/   r0   r   rs   r-   rt   groupbyr[   ru   )r;   r>   figr   ru   rw   s         r   (test_boxplot_legacy2_with_ax_return_typez;TestDataFramePlots.test_boxplot_legacy2_with_ax_return_typeq   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                         \  }}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    re   rf   rg   rh   ri   rl   rj   r+   rm   ru   )rC   rG   r   rA   )r   r.   r/   r0   r   rs   r-   rt   rY   rZ   ro   r[   
get_figure)r;   r>   r|   r   ru   s        r   #test_boxplot_legacy2_with_multi_colz6TestDataFramePlots.test_boxplot_legacy2_with_multi_col|   s    II!!!$++G4vv>N
 KL3#$3**%%'R''4 	::'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    re   rf   rg   rh   ri   rl   rj   r+   rm   rB   rz   )r   r.   r/   r0   r   rs   r-   rt   r[   r:   	itertoolschainfrom_iterablevalueslen	get_lines)r;   r>   rv   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   )r[   
isinstancers   r-   Axes)r;   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    rK   rL   rN   rQ   z,return_type must be {'axes', 'dict', 'both'}match
NOT_A_TYPErA   ru   )r   r.   r/   r0   rV   r:   rW   rX   pytestraises
ValueErrorr[   r
   )r;   r>   msgr   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rB   ru   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    rK   rL   rN   rQ   Fr   )r   r.   r/   r0   rV   r:   rW   rX   rY   rZ   r[   r
   )r;   rA   r>   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categoryrn   	copyr.   r/   r0   integersshaper[   r   _sharey)r;   r   r>   	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   rn   )r   r   )r   r!   )r!   r   r!   r!   r   r   r   )r;   r   r>   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   rM   r   ru   r   )	r   r.   r/   r0   rV   nanlocr   r[   rp   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    )r+      )rj   rk   CDErh   ru   )      )rA   figsizer   r   )	r   r.   r/   r0   r[   figurebbox_incheswidthr   )r;   r>   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"   rM   r   rL      )fontsize
xlabelsize
ylabelsizer   r   r[   rp   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-01d   )periodsr    UTC)r   tzz1 days)r   bcr   efbox)r)   r   r   )r   r   r.   r/   r0   rV   astypestrr   r3   r4   r6   )r;   r>   r   r?   s       r   test_boxplot_numeric_dataz,TestDataFramePlots.test_boxplot_numeric_data   s    c:YY**1-==cBYY**1-==cBQFc:AA#FceD$Xs;	
 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    re   rB   colorrA   r   )r   r.   r/   r0   r[   items	get_color)r;   
colors_kwdexpectedr>   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                 R   t        t        j                  j                  d      j                  d            }dd lm} |j                  j                  |       |j                  j                  d      }|j                         D ]   \  }}||   d   j                         |k(  r J  y )Nr    re   r   rB   r   )r   r.   r/   r0   r,   r-   styleuser3   r   r   r   )r;   schemer   r>   r<   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    re   r   rB   r   )r   r.   r/   r0   r   r   r   r[   )r;   dict_colorsr   r>   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    r+   r   C1rA   rB   r    )r   r.   r/   r0   r[   r   )r;   propsr   r   r>   kwdr   s          r   test_specified_props_kwdz+TestDataFramePlots.test_specified_props_kwd-  s     N1299003::2>>NOwo&66#6h",,.$666	 Os   6A=vertTFc                    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|||      }|j                         |k(  sJ |j                         |k(  sJ y )	Nr    r+   group1group2r   r   groupr?   yr   )r)   r   xlabelylabel)	r   r.   r/   r0   rV   r1   r3   
get_xlabel
get_ylabelr;   r   r>   r  r	  r   s         r   test_plot_xlabel_ylabelz*TestDataFramePlots.test_plot_xlabel_ylabel>  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "WW%d6&WI}}&(((}}&(((r   c                 H   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   |||       |j                  j                  |d   |||       |D ],  }	|	j                         |k(  sJ |	j                         |k(  r,J  t        j                  j                          y )Nr    r   r   )r   rM   sizeABCDrh   r  )r+      T)ncolsr   sharey)r   r   r  r	  r!   )r.   r/   r0   r   r   r:   r<   rt   r3   r   r
  r  rs   r-   close)
r;   r   rngdf1df2r  r	  rv   axsr   s
             r   test_plot_boxz TestDataFramePlots.test_plot_boxL  s     ii##A&Q(;T&\RQ(;T&\R!AwtD3AT&HAT&H 	-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                  |||      }|j                         |k(  sJ |j                         |k(  sJ y )Nr    r+   r  r  r  r  )r   r  r	  )	r   r.   r/   r0   rV   r1   r[   r
  r  r  s         r   test_boxplot_xlabel_ylabelz-TestDataFramePlots.test_boxplot_xlabel_ylabel\  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "ZZT&Z@}}&(((}}&(((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(  r,J  t        j                  j                          y )	Nr    r+   r  r  r  r  r  )rG   r   r  r	  )r   r.   r/   r0   rV   r1   r[   r
  r  rs   r-   r  )r;   r   r>   r  r	  r   subplots          r    test_boxplot_group_xlabel_ylabelz3TestDataFramePlots.test_boxplot_group_xlabel_ylabelj  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 "ZZ7fVZL 	2G%%'6111%%'6111	2 	

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      }|j                  d|      }|D ]5  }|r|j                         n|j                         }|t        dg      k(  r5J  t        j                  j                          y )Nr    r+   r  r  r  r  )rG   r   )r   r.   r/   r0   rV   r1   r[   r
  r  r   rs   r-   r  )r;   r   r>   r   r  target_labels         r   #test_boxplot_group_no_xlabel_ylabelz6TestDataFramePlots.test_boxplot_group_no_xlabel_ylabelz  s    YY**1-==bAYY**1-==bA..q188(H9MrR
 ZZ7Z. 	;G377--/W=O=O=QL<	#::::	; 	

r   )"__name__
__module____qualname__r@   r   markslowparametrizero   r^   rc   rq   rx   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r   r   r   r   r   &   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 [[VdE]3) 4) [[VdE]3 4 [[VdE]3) 4) [[VdE]3 4 [[VdE]3 4r   r   c            
          e Zd Zd Zd Zej                  j                  d        Zej                  j                  d        Z	ej                  j                  ddeddgg d	g      d
        Zd Zd Zej                  j                  d        Zej                  j                  d        Zej                  j                  ej                  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/d0g d1fd0gg d1fd2g d3fd0d2gg d4fd5g d4fg      d6        Z d7 Z!d8 Z"y5)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genderrn   FrT   ru   r   r    )r!   r    axes_numlayout)	r{   rY   rZ   ro   r   r[   r	   r:   r   r;   r   groupedru   s       r   r^   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,  rn   Fru   rt   rA   r!   r   r-  )r{   r   r[   r	   r0  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            }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)Nr+   r    r+   r"   r&   r!   levelFrT   ru   r   )rM   r"   r-  )ziprW   rX   ranger   r.   r/   r0   r   from_tuplesr{   rY   rZ   ro   r   r[   r	   r:   r   r;   tuplesr>   r1  ru   s        r   rq   z.TestDataFrameGroupByPlots.test_boxplot_legacy2  s    V))#2.b	:II!!!$++G4((0
 **1*%''eL 	J$W__&ID	J$t{{+bH	J 	Js    C""C+c                 X   t        t        j                  d d t        d            }t	        t
        j                  j                  d      j                  d      t        j                  |            }|j                  d      }t        |j                  dd	      }t        |dd
       y )Nr+   r    r6  r&   r!   r7  Fru   r3  r   r-  )r9  rW   rX   r:  r   r.   r/   r0   r   r;  r{   r   r[   r	   r<  s        r    test_boxplot_legacy2_return_typez:TestDataFrameGroupByPlots.test_boxplot_legacy2_return_type  s    V))#2.b	:II!!!$++G4((0
 **1*% 5fU$6:r   z subplots, warn, axes_num, layoutTr"   r    r    )FNr!   r   c                 6   t        t        j                  d d t        d            }t	        t
        j                  j                  d      j                  d      t        j                  |            }d}t        j                  t        |      5  |j                  d      j                  d	d
      }d d d        t        j                  |d      5  t        j                   |d      }	d d d        t#        	||       y # 1 sw Y   PxY w# 1 sw Y   $xY w)Nr+   r    r6  r&   z+DataFrame.groupby with axis=1 is deprecatedr   r!   r7  r   )r8  axisFrT   ru   r3  r-  )r9  rW   rX   r:  r   r.   r/   r0   r   r;  rY   rZ   FutureWarningunstackr{   r   r[   r	   )
r;   rt   r]   r.  r/  r=  r>   r   r1  ru   s
             r   test_boxplot_legacy3z.TestDataFrameGroupByPlots.test_boxplot_legacy3  s    
 V))#2.b	:II!!!$++G4((0
 <''SA 	Cjjqj)111BG	C''uE 	$(D	 	$&A	C 	C	 	s   $DDDD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 )Nr+   r       r   r  <   malefemaler   r   r,  r,  allru   r   r!   )r   r.   r/   r0   normalr1   r   r{   r3   r   rs   r-   get_fignumsr<   r  r[   )r;   r=   r   r   r,  r>   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 )Nr+   r    rG  r   r  rH  rI  rJ  rK  r,  )	r   r.   r/   r0   rM  r1   r   r{   hist)r;   r=   r   r   r,  r>   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,  rn   r   r   r   expected_keys)r[   r   r.   ndarrayr
   r;   r   r>   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,  rB   r   MaleFemalerW  r{   r[   r
   rZ  s       r   $test_grouped_box_return_type_groupbyz>TestDataFrameGroupByPlots.test_grouped_box_return_type_groupby  s4    H%--&-Avvfh=OPr   rA   r   c                     |}|j                  d      j                  |      }t        ||g d       |j                  d|      }t        ||g d       y )N	classroomr   rj   rk   r   rW  rG   rA   rV  r_  )r;   r   rA   r>   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    )rL   r   rh   zA Br"   r   r   rW  rd  )	splitr   r.   r/   r0   rV   r{   r[   r
   )r;   rA   columns2r  categories2re  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   rC   rG   r/  r   r   r   r[   r,  r;   r   r>   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   rV  )r    r!   rB   rC   r/  rA   )r   r   r   r[   ro  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   )rv  rm  rn  ro  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rq  zgb_key, axes_num, rows)r,  r    r!   )r   rM   r    )rb  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)NFrT   r   rB   rC   rA   r    r-  rY   rZ   ro   r   r{   r[   r	   rs   r-   gcfru   )r;   r   gb_keyr.  rowsr>   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   r   c                 (   |}|j                  g ddd      }t        t        j                  j	                         j
                  dd       ||   }t        |j                         |       t        |j                  j                         g|       y )	NrV  r,  ru   )rC   rG   rA   r"   r@  r-  )visible)
r[   r	   rs   r-   r{  ru   r   r4   xaxis	get_label)r;   r   r   r  r>   ru   r   s          r   test_grouped_box_layout_visiblez9TestDataFrameGroupByPlots.test_grouped_box_layout_visible3  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 )Nrb  rV  rB   ry  r"   r@  r-  r{   r[   r	   rs   r-   r{  ru   )r;   r   r>   s      r   test_grouped_box_layout_shapez7TestDataFrameGroupByPlots.test_grouped_box_layout_shapeB  sG    


;''3 	( 	
 	#**..*//!FKr   colsr    rv  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)NFrT   r   r   r"   rB   rs  rM   )r"   r    r-  rz  )r;   r   r  r>   s       r   test_grouped_box_layout_worksz7TestDataFrameGroupByPlots.test_grouped_box_layout_worksJ  st     ''eL 	

:&..4y"		 	#**..*//!FK	 	s   +BBz	rows, resrM   c                     |}|j                  g dd|df       t        t        j                  j	                         j
                  d|df       y )NrV  r,  r!   rm  r"   r-  )r[   r	   rs   r-   r{  ru   )r;   r   r}  rP  r>   s        r   'test_grouped_box_layout_axes_shape_rowszATestDataFrameGroupByPlots.test_grouped_box_layout_axes_shape_rowsW  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 )Nrb  rV  r!   rB   rs  r"   r-  r  )r;   r   r  rP  r>   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                 X   |}t        j                  t              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)	Nr    r   r   ru   rC   rA   r   rM   r@  r-  )rY   rZ   ro   rs   r-   rt   r{   r[   r	   r{  ru   )r;   r   r>   rv   ru   s        r   test_grouped_box_multiple_axesz8TestDataFrameGroupByPlots.test_grouped_box_multiple_axesk  s      ''4 	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
              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
              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"   rV  r,  ru   r   )rC   rG   rA   r   )r!   r"   r-  rb  r!   r  )rs   r-   rt   rY   rZ   ro   r[   r.   arrayr:   r   r	   assert_numpy_array_equalr   r{   )r;   r   r>   r|   ru   re  s         r   %test_grouped_box_multiple_axes_on_figz?TestDataFrameGroupByPlots.test_grouped_box_multiple_axes_on_figz  s\    JJ''1-	T''4 	zz7"7	 " H	 88D12(Qv>
##Hd1g6{!!S((( ''4 	zz+.667VPTUVPW 7 H	 88D12(Qv>
##Hd1g6{!!S((()	 		 	s   E1)E>1E;>Fc                 P   |}d}t        j                  t        |      5  t        j                  j                  dd      \  }}t        j                  t              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"   rb  )r   )r   r   r   rs   r-   rt   rY   rZ   ro   r{   r[   )r;   r   r>   r   r|   ru   s         r   'test_grouped_box_multiple_axes_ax_errorzATestDataFrameGroupByPlots.test_grouped_box_multiple_axes_ax_error  s     P]]:S1 	@

++Aq1IC++K8 @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   )rG   r   r   r   rp   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  Fru   )rt   rC   rA   )r   r.   r/   r0   r1   r:   r{   r   r[   r4   r6   )r;   r   expected_xticklabelr>   r1  ru   r?   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)rt   )r   r{   r   r   r   r   r[   )r;   r   r>   r1  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        |       }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)r(   r(   bazr  rS   rS   quxr  )rD   rE   rD   rE   rD   rE   rD   rE   firstsecond)namesr    )r"   r   rc  rQ   )r(   rD   )r(   rE   ru   ry  z
(bar, one)z
(bar, two))r:   r9  r   r;  r   r.   r/   r0   rV   r   r[   r4   r6   )
r;   arraysr=  r'   r>   r   ru   r  r?   r  s
             r   test_boxplot_multiindex_columnz8TestDataFrameGroupByPlots.test_boxplot_multiindex_column  s     ED
 c6l#&&vgx5HIII!!!$44V<!
 ~. CVL+\:373G3G3IJaQZZ\JJ"&7777 Ks   !C)#r#  r$  r%  r^   r4  r   r&  r'  rq   r?  r(  ro   rE  rQ  rT  r[  r`  rf  rk  rp  rt  rw  r~  r  r  r  r  r  r  r  r  r   r  r  r  r   r   r   r*  r*    s   H;
 [[	I 	I [[; ; [[*
Q	')ABB	B"$ [[
 
 [[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$?8r   r*  )__doc__r   rW   numpyr.   r   pandasr   r   r   r   r   r   pandas._testing_testingrY   pandas.tests.plotting.commonr	   r
   r   r   r   pandas.io.formats.printingr   importorskiprs   r<   r   r   r*  r   r   r   <module>r     su    &        4f,'f-.a aHo8 o8r   