ó
šxŠ\c           @   sý   d  d l  Z  d  d l Z d  d l Z d  d l m Z d  d l Z d  d l m Z m Z d  d l	 j
 j Z d  d l m Z m Z m Z d  d l m Z m Z d  d l j
 j Z d  d l j Z e j d e f d „  ƒ  Yƒ Z e j d e f d	 „  ƒ  Yƒ Z d S(
   iÿÿÿÿN(   t   random(   t   lzipt   range(   t	   DataFramet
   MultiIndext   Series(   t   TestPlotBaset   _check_plot_workst   TestDataFramePlotsc           B   s¤   e  Z e j j d  „  ƒ Z e j j d „  ƒ Z e j j d „  ƒ Z e j j d „  ƒ Z e j j d „  ƒ Z	 e j j d „  ƒ Z
 e j j d „  ƒ Z d „  Z RS(   c         C   sµ  t  t j j d d ƒ d t t j d  ƒ d d d d d g ƒ} d	 d
 g d | d <d	 d
 d	 g d | d <t | j d d ƒt | j d d d g d d ƒt	 j
 t ƒ $ t | j d d d g d d ƒWd  QXt | j d d d d d g ƒt	 j
 t ƒ  t | j d d ƒWd  QXt	 j
 t ƒ  t | j d d d g ƒWd  QXt t j j d | d d d ƒt | j d d d d ƒt	 j
 t ƒ  t | j d d d d ƒWd  QXd  S(   Ni   i   t   indext   columnst   onet   twot   threet   fourt   foot   bari   t   indici   t   indic2t   return_typet   dictt   columnt   byt   datat   notchi   (   R   t   npR    t   randnt   listt   stringt   ascii_lettersR   t   boxplott   tmt   assert_produces_warningt   UserWarningt   plottingt   _core(   t   selft   df(    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_boxplot_legacy1   s*    c         C   s  t  t j j d d ƒ d d d g ƒ} t d d d d d d d d d d g
 ƒ | d <t d g d ƒ | d	 <t j t ƒ  t | j	 d
 d ƒWd  QX|  j
 j ƒ  \ } } | j	 d d
 d d | ƒ} | j } | | k sà t ‚ |  j
 j ƒ  \ } } | j d	 ƒ j	 d | d d ƒ } | j } | | d k s5t ‚ |  j
 j ƒ  \ } } t j t ƒ / | j	 d d d g d
 d d | d d ƒ } Wd  QX| d j ƒ  | k s¦t ‚ |  j
 j ƒ  \ } } | j	 d | d d ƒ } t t j j | j ƒ  ƒ ƒ } t | j ƒ  ƒ t | ƒ k st ‚ d  S(   Ni
   i   R
   t   Col1t   Col2t   At   Bt   Xt   YR   t   axR   t   axesR   R   (   R   R   R    t   randR   R   R    R!   R   R   t   pltt   subplotsR.   t   AssertionErrort   groupbyt
   get_figureR   t	   itertoolst   chaint   from_iterablet   valuest   lent	   get_lines(   R$   R%   t   figR-   R.   t   ax_axest   dt   lines(    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_boxplot_legacy23   s,    '.	!	c         C   s.   |  j  j ƒ  } t | |  j j ƒ s* t ‚ d  S(   N(   t   hist_dfR   t
   isinstanceR0   t   AxesR2   (   R$   t   result(    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_boxplot_return_type_noneU   s    c      
   C   s:  d d  l  } t t j j d d ƒ d t t j d  ƒ d d d d d	 g ƒ} t j	 t
 ƒ  | j d
 d ƒ Wd  QX| j ƒ  } |  j | d ƒ t j t ƒ  | j d
 d ƒ } Wd  QX|  j | d ƒ t j t ƒ  | j d
 d ƒ } Wd  QX|  j | d ƒ t j t ƒ  | j d
 d ƒ } Wd  QX|  j | d ƒ d  S(   Niÿÿÿÿi   i   R	   R
   R   R   R   R   R   t   NOTATYPER.   R   t   both(   t
   matplotlibR   R   R    R   R   R   R   t   pytestt   raisest
   ValueErrorR   t   _check_box_return_typeR   R    t   False(   R$   t   mplR%   RC   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_boxplot_return_type_legacy[   s"    c         C   sQ  d „  } |  j  j ƒ  } t j j d d | j d ƒ | d <| j d d g d d	 ƒ\ } } | | d | ƒ | | d | ƒ | j | k s“ t ‚ | j d d d g d d	 ƒ} | d
 | d | d } } } | d } | | d | ƒ | | d | ƒ | | d | ƒ | j | k s#t ‚ | j | k s8t ‚ | j d  k sMt ‚ d  S(   Nc         S   sF   | j  ƒ  \ } } | |  j ƒ  k s* t ‚ | |  j ƒ  k sB t ‚ d  S(   N(   t   get_ylimt   minR2   t   max(   t   colR-   t   y_mint   y_max(    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   _check_ax_limitsx   s    i   i   i    t   aget   heightt   weightR   t   category(   i    i    (   i    i   (   i   i    (   i   i   (
   R@   t   copyR   R    t   randintt   shapeR   t   _shareyR2   t   None(   R$   RU   R%   t	   height_axt	   weight_axt   pt   age_axt   dummy_ax(    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_boxplot_axis_limitsu   s     	#! 
c         C   sN   t  t j j d d ƒ ƒ } t j | j d  d  … d f <t | j d d ƒd  S(   Ni   i   i    R   R.   (   R   R   R    R   t   nant   locR   R   (   R$   R%   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_boxplot_empty_column‘   s    c         C   s‚   t  t j j d d ƒ d d d d d d g ƒ} | j d	 d
 d d ƒ } | j j j d k sc t ‚ | j j j	 d k s~ t ‚ d  S(   Ni
   i   R
   R)   R*   t   Ct   Dt   ER   R.   t   figsizei   i   (   i   i   (
   R   R   R    R/   R   t   figuret   bbox_inchest   widthR2   RW   (   R$   R%   RC   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_figsize—   s
    c         C   sQ   t  i d d d d d d g d 6ƒ } |  j | j d d d	 ƒd
 d	 d d	 ƒd  S(   Ni   i   i   i   i   i   t   at   fontsizei   t
   xlabelsizet
   ylabelsize(   R   t   _check_ticks_propsR   (   R$   R%   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_fontsizeŸ   s    %(   t   __name__t
   __module__RH   t   markt   slowR&   R?   RD   RN   Rd   Rg   Ro   Ru   (    (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyR      s   "t   TestDataFrameGroupByPlotsc           B   s¤   e  Z e j j d  „  ƒ Z e j j d „  ƒ Z e j j d „  ƒ Z e j j d „  ƒ Z e j j d „  ƒ Z	 e j j d „  ƒ Z
 e j j d „  ƒ Z d „  Z RS(   c         C   sš   |  j  j d d ƒ } t j t ƒ  t | j d d ƒ} Wd  QX|  j t | j	 ƒ d d d d
 ƒt | j d	 t
 d d ƒ} |  j | d d d d ƒd  S(   NR   t   genderR   R.   t   axes_numi   t   layouti   R1   (   i   i   (   i   i   (   R@   R3   R   R    R!   R   R   t   _check_axes_shapeR   R8   RL   (   R$   t   groupedR.   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyR&   ¨   s    "	c         C   sÝ   t  t j d  t d ƒ ƒ } t t j j d d ƒ d t j	 | ƒ ƒ} | j
 d d ƒ } t j t ƒ  t | j d d ƒ} Wd  QX|  j t | j ƒ d d d	 d ƒt | j d t d d ƒ} |  j | d d d	 d ƒd  S(   Ni
   i   R	   t   leveli   R   R.   R|   R}   i   R1   (   i   i   (   i   i   (   R   R   R   R   R   R   R    R/   R   t   from_tuplesR3   R   R    R!   R   R   R~   R   R8   RL   (   R$   t   tuplesR%   R   R.   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyR?   ²   s    "	c         C   sï   t  t j d  t d ƒ ƒ } t t j j d d ƒ d t j	 | ƒ ƒ} | j
 d d ƒ j d d d d ƒ } t j t ƒ  t | j d d	 ƒ} Wd  QX|  j t | j ƒ d
 d d d ƒt | j d t d d	 ƒ} |  j | d
 d d d ƒd  S(   Ni
   i   R	   R€   i   i    t   axisR   R.   R|   R}   i   R1   (   i   i   (   i   i   (   R   R   R   R   R   R   R    R/   R   R   t   unstackR3   R   R    R!   R   R   R~   R   R8   RL   (   R$   R‚   R%   R   R.   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_boxplot_legacy3À   s    $"	c         C   ss  d } t  t j j d d d | ƒƒ } t  t j j d d d | ƒƒ } t j d ƒ # t j j d d g d | ƒ} Wd  QXt i | d	 6| d
 6| d 6ƒ } | j d ƒ } | j	 ƒ  } t
 |  j j ƒ  ƒ d k sÙ t ‚ t
 | ƒ d k sñ t ‚ t j ƒ  | j d d ƒ } t
 |  j j ƒ  ƒ d k s.t ‚ t
 | ƒ d k sFt ‚ t j ƒ  | j d ƒ j ƒ  } t j ƒ  d  S(   Ni
   i¦   i   t   sizei<   i*   t   malet   femaleRW   RX   R{   i   R   R.   i   (   R   R   R    t   normalR   t
   RNGContextt   choiceR   R3   t   plotR9   R0   t   get_fignumsR2   t   closeR   t   hist(   R$   t   nRX   RW   R{   R%   t   gbt   res(    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_grouped_plot_fignumsÍ   s"    !!$!!
!
c         C   s»  |  j  } | j d d ƒ } t | t j ƒ s3 t ‚ |  j | d  d d d d g ƒ| j d ƒ j d d ƒ } |  j | d d d	 d
 g ƒd j	 ƒ  } t
 t j d d ƒ d | ƒ} d j	 ƒ  } | d | d <xç d d d g D]Ö } | j d ƒ j d | ƒ } |  j | | d d d d g ƒ| j d d d | ƒ } |  j | | d d d d g ƒ| j d ƒ j d | ƒ } |  j | | d | ƒ| j d d d | ƒ } |  j | | d | ƒqÝ Wd  S(   NR   R{   t   expected_keysRW   RX   RY   R   R   t   Malet   Females   X B C D A G Y N Q Oi2   i
   R
   s   A B C D E F G H I Ji   R.   RF   t	   classroomR)   R*   Rh   (   R@   R   RA   R   t   ndarrayR2   RK   R^   R3   t   splitR   R    R   (   R$   R%   RC   t   columns2t   df2t   categories2t   tt   returned(    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_grouped_box_return_typeå   s2    			c         C   sö  |  j  } t j t | j d d d g d | j d d ƒt j t | j d d d d g d d d	 d
 ƒt j t | j d d d g d | j d d ƒt j t ƒ ) t	 | j
 d ƒ j d d d	 d
 ƒ} Wd  QX|  j |  j j ƒ  j d d d d ƒt j t ƒ ) t	 | j
 d ƒ j d d d	 d
 ƒ} Wd  QX|  j |  j j ƒ  j d d d d ƒt j t ƒ ) t	 | j
 d ƒ j d d d	 d
 ƒ} Wd  QX|  j |  j j ƒ  j d d d d ƒ| j d d d d g d d d	 d ƒ } |  j |  j j ƒ  j d d d d ƒxM | d g D]> } |  j | j ƒ  d t ƒ|  j | j j ƒ  g d t ƒq
WxH | d | d g D]2 } |  j | j ƒ  ƒ |  j | j j ƒ  g ƒ qaW| j
 d ƒ j d d d d g d	 d
 ƒ } |  j |  j j ƒ  j d d d d ƒt j t ƒ / t	 | j
 d ƒ j d d d d d	 d
 ƒ} Wd  QX|  j |  j j ƒ  j d d d d ƒt j t ƒ / t	 | j
 d ƒ j d d d d d	 d
 ƒ} Wd  QX|  j |  j j ƒ  j d d d d ƒ| j d d d d g d d d d ƒ } |  j |  j j ƒ  j d d d d  ƒ| j d d d d g d d d d! ƒ } |  j |  j j ƒ  j d d d d" ƒ| j
 d ƒ j d d d d g d d# d	 d
 ƒ } |  j |  j j ƒ  j d d d d$ ƒ| j
 d ƒ j d d d d g d d% d	 d
 ƒ } |  j |  j j ƒ  j d d d d& ƒd  S('   NR   RX   RW   R   R}   i   RY   i   R   R   iÿÿÿÿR{   R|   i   R—   i   R.   t   visible(   i   i   (   i   i   (   iÿÿÿÿiÿÿÿÿ(   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   iÿÿÿÿ(   i   i   (   i   i   (   i   i   (   iÿÿÿÿi   (   i   i   (   i   i   (   i   i   (   i   iÿÿÿÿ(   i   i   (   R@   RH   RI   RJ   R   R{   R   R    R!   R   R3   R~   R0   t   gcfR.   t   _check_visiblet   get_xticklabelsRL   t   xaxist	   get_label(   R$   R%   t   boxR.   R-   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_grouped_box_layout
  sr    	%%%	%#%%%	%	%	%	c         C   sR  |  j  } t j t ƒ j |  j j d d ƒ \ } } | j d ƒ j d d d d d | ƒ |  j |  j j	 ƒ  j
 d d	 d
 d ƒWd  QX|  j j d d ƒ \ } } t j t ƒ 6 | j d d d d g d d d d d | d ƒ } Wd  QXt j t | j ƒ ƒ } |  j | d d d
 d ƒt j | | d ƒ | d j | k sDt ‚ t j t ƒ 9 | j d ƒ j d d d d g d d d | d ƒ } Wd  QXt j t | j ƒ ƒ } |  j | d d d
 d ƒt j | | d ƒ | d j | k sìt ‚ t j t ƒ Q |  j j d d ƒ \ } } t j t ƒ   | j d ƒ j d | ƒ } Wd  QXWd  QXd  S(   Ni   RY   R   RW   R   R.   R-   R|   i   R}   i   RX   R   R{   i    i   R—   (   i   i   (   i   i   (   i   i   (   R@   R   R    R!   R0   R1   R3   R   R~   R¡   R.   R   t   arrayR   R8   t   assert_numpy_array_equalRl   R2   RH   RI   RJ   (   R$   R%   R;   R.   Rž   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   test_grouped_box_multiple_axesT  s6    	c         C   sp   t  i d d d d d d g d 6d d d d d d g d	 6ƒ } |  j | j d d
 d	 d d ƒd d d d ƒd  S(   Ni   i   i   i   i   i   Rp   i    t   bR   Rq   i   Rr   Rs   (   R   Rt   R   (   R$   R%   (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyRu   ~  s    >!(   Rv   Rw   RH   Rx   Ry   R&   R?   R…   R“   RŸ   R§   Rª   Ru   (    (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyRz   ¥   s   
%J*(   R5   R   t   numpyR   R    RH   t   pandas.compatR   R   t   pandas.util._test_decoratorst   utilt   _test_decoratorst   tdt   pandasR   R   R   t   pandas.tests.plotting.commonR   R   t   pandas.util.testingt   testingR   t   pandas.plottingR"   t   skip_if_no_mplR   Rz   (    (    (    sH   lib/python2.7/site-packages/pandas/tests/plotting/test_boxplot_method.pyt   <module>   s   	Ž	