ó
šxŠ\c           @   sÿ   d  Z  d d l Z d d l m Z d d l Z d d l j j Z	 d d l
 m Z m Z d d l m Z m Z d d l j j Z d d l m Z d d l m Z e	 j d e f d	 „  ƒ  Yƒ Z e	 j d
 e f d „  ƒ  Yƒ Z e	 j d e f d „  ƒ  Yƒ Z d S(   s    Test cases for .hist method iÿÿÿÿN(   t   randn(   t	   DataFramet   Series(   t   TestPlotBaset   _check_plot_works(   t   _mpl_ge_2_2_0(   t   grouped_histt   TestSeriesPlotsc           B   s¤   e  Z 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 e j j d „  ƒ Z RS(   c         C   sE   t  j |  | ƒ d d  l } | j ƒ  t j ƒ  |  _ d |  j _ d  S(   Niÿÿÿÿt   ts(   R   t   setup_methodt
   matplotlibt
   rcdefaultst   tmt   makeTimeSeriesR   t   name(   t   selft   methodt   mpl(    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyR	      s
    
c         C   s«  t  |  j j ƒ t  |  j j d t ƒt  |  j j d d ƒt j t ƒ $ t  |  j j d |  j j j ƒWd  QXt j t ƒ * t  |  j j d |  j j j d d ƒWd  QX|  j	 j
 d d ƒ \ } } t  |  j j d	 | ƒt  |  j j d	 | d
 | ƒt  |  j j d
 | ƒt j ƒ  |  j	 j
 d d ƒ \ } \ } } t  |  j j d
 | d	 | ƒt  |  j j d
 | d	 | ƒt j t ƒ $ |  j j d |  j j d
 | ƒ Wd  QXd  S(   Nt   gridt   figsizei   i
   t   byt   binsi   i   t   axt   figurei   (   i   i
   (   R   R   t   histt   FalseR   t   assert_produces_warningt   UserWarningt   indext   montht   pltt   subplotst   closet   pytestt   raisest
   ValueError(   R   t   figR   t   ax1t   ax2(    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_hist_legacy   s"    %+
!c         C   sT   t  t j j d d ƒ ƒ } | j d d ƒ d d } t | j ƒ d k sP t ‚ d  S(   Ni
   i   R   i    (   R   t   npt   randomR    R   t   lent   patchest   AssertionError(   R   t   dfR   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_hist_bins_legacy6   s    c      	   C   se   |  j  } t j t ƒ  | j j d d ƒ Wd  QXt j t ƒ  | j j d d d g ƒ Wd  QXd  S(   Nt   layouti   (   i   i   (   t   hist_dfR!   R"   R#   t   heightR   (   R   R-   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_hist_layout<   s
    	c         C   s€  |  j  } t j t ƒ & t | j j d | j d d ƒ} Wd  QX|  j | d d d d ƒt j t ƒ & t | j j d | j d d ƒ} Wd  QX|  j | d d d d ƒt j t ƒ & t | j j d | j	 d d ƒ} Wd  QX|  j | d d d d ƒt j t ƒ & t | j j d | j	 d d ƒ} Wd  QX|  j | d d d d ƒt j t ƒ & t | j j d | j	 d d ƒ} Wd  QX|  j | d d d d ƒt j t ƒ & t | j j d | j	 d d ƒ} Wd  QX|  j | d d d d ƒt j t ƒ & t | j j d | j
 d d ƒ} Wd  QX|  j | d d d d ƒ| j j d | j	 d d d	 d ƒ } |  j | d d d d d	 d ƒd  S(   NR   R/   i   i   t   axes_numi   iÿÿÿÿi   R   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   (   R0   R   R   R   R   R1   R   t   gendert   _check_axes_shapet   categoryt	   classroom(   R   R-   t   axes(    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_hist_layout_with_byE   s@    	$$$$$c         C   s   d d l  m } m } t t d ƒ ƒ } t t d ƒ ƒ } | d ƒ | j ƒ  | d ƒ | j ƒ  | ƒ  } | j } t | ƒ d k sŒ t ‚ d  S(   Niÿÿÿÿ(   t   subplott   gcfi   iy   iz   (	   t   matplotlib.pyplotR:   R;   R   R    R   R8   R*   R,   (   R   R:   R;   t   xt   yR$   R8   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_hist_no_overlaps   s    



		c         C   sF   |  j  } | j j d | j ƒ } t |  j j ƒ  ƒ d k sB t ‚ d  S(   NR   i   (   R0   R1   R   R4   R*   R   t   get_fignumsR,   (   R   R-   R8   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_hist_by_no_extra_plots€   s    	c      	   C   sd   d d l  m } | ƒ  } | ƒ  } | j d ƒ } t j t ƒ  |  j j d | d | ƒ Wd  QXd  S(   Niÿÿÿÿ(   R   io   R   R   (   t   pylabR   t   add_subplotR!   R"   R,   R   R   (   R   R   t   fig1t   fig2R%   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt+   test_plot_fails_when_ax_differs_from_figure†   s    		(   t   __name__t
   __module__R	   R!   t   markt   slowR'   R.   R2   R9   R?   RA   RF   (    (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyR      s   		.t   TestDataFramePlotsc           B   sG   e  Z e j j d  „  ƒ Z e j j d „  ƒ Z e j j d „  ƒ Z RS(   c         C   sd  d d l  m } t j t ƒ  t |  j j ƒ Wd  QXt t	 d d ƒ ƒ } t j t ƒ  t | j d t
 ƒ} Wd  QX|  j | d d d d$ ƒ| d% j ƒ  s¦ t ‚ t t	 d d	 ƒ ƒ } t | j ƒ t t	 d d
 ƒ ƒ } t j t ƒ  t | j d d& ƒ} Wd  QX|  j | d d
 d d' ƒt j t ƒ  t | j d t d t ƒWd  QXt j t ƒ  t | j d d( ƒWd  QXt j t ƒ  t | j d d ƒWd  QX| d } d) \ } } d* \ } } | j d | d | d | d | ƒ } |  j | d | d | d | d | ƒd+ \ } } d, \ } } | j d | d | d | d | ƒ } |  j | d | d | d | d | ƒt j ƒ  t ƒ  r‘i t d 6}	 n i t d 6}	 | j d t d d |	  }
 g  |
 j ƒ  D] } t | | ƒ rÆ| ^ qÆ} t j | d j ƒ  d ƒ t j ƒ  | j d  t ƒ }
 |  j |
 d! d  ƒt j ƒ  t j t ƒ  | j d" d# ƒ Wd  QXd  S(-   Niÿÿÿÿ(   t	   Rectangleid   i   R   R3   R/   i   i   i   i   t   sharext   shareyR   i   i
   R   i   i    i   i   i   i(   t
   xlabelsizet   xrott
   ylabelsizet   yrott   densityt   normedt
   cumulativeg      ð?t   logt   yaxist   foot   bar(   i   i   (   i   i   (   i   i   (   i   i   (   i   i
   (   i   i   (   i   i(   (   i   i   (   i   i(   (   t   matplotlib.patchesRL   R   R   R   R   R0   R   R   R    R   R5   t   get_visibleR,   t   Truet   _check_ticks_propsR    R   t   get_childrent
   isinstancet   assert_almost_equalt
   get_heightt   _check_ax_scalesR!   R"   t   AttributeError(   R   RL   R-   R8   t   sert   xft   yfRP   RR   t   kwargsR   R=   t   rects(    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_hist_df_legacy“   sX    
$$
	.

c         C   st  t  t d d ƒ ƒ } i d  d 6d
 d 6i d d 6d d 6i d d 6d d 6i d d 6d d 6i d d 6d d 6i d d 6d d 6i d d 6d d 6i d d 6d d 6i d d 6d d 6f	 } xG | D]? } | j d | d ƒ } | d } |  j | d	 d d | ƒq» Wt j t ƒ  | j d d ƒ Wd  QXt j t ƒ  | j d d ƒ Wd  QXt j t ƒ  | j d d ƒ Wd  QXd  S(   Nid   i   R/   i   t   expected_sizei   i   iÿÿÿÿR3   (   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   R    t   NoneR   R5   R!   R"   R#   (   R   R-   t   layout_to_expected_sizet   layout_testR8   t   expected(    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyR2   Ù   s(    
c         C   sI   |  j  rE t t d d ƒ ƒ } t | j ƒ |  j j ƒ  t j ƒ  n  d  S(   Nid   i   (	   t   mpl_ge_2_0_1R   R    R   R   R   t   tight_layoutR   R    (   R   R-   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_tight_layoutø   s
    	(   RG   RH   R!   RI   RJ   Ri   R2   Rq   (    (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyRK      s   F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 RS(   c         C   sÍ  d d l  m } t t d d ƒ d d d g ƒ} t j j d d	 d ƒ | d
 <d g d | d <t | j d | j	 ƒ} |  j
 | d d	 d d% ƒt j ƒ  | j d | j	 ƒ } |  j
 | d d	 d d& ƒt j ƒ  | j d d d d ƒ } |  j
 | d d d d' ƒ|  j | d d ƒt j ƒ  d( \ } } d) \ } } t ƒ  rPi t d 6} n i t d 6} t | j d | j	 d t d d	 d | d | d | d | | } xb | j ƒ  D]T }	 g  |	 j ƒ  D] }
 t |
 | ƒ r¼|
 ^ q¼} | d j ƒ  } t j | d ƒ q©W|  j | d | d | d | d | ƒt j ƒ  t | j d | j	 d t ƒ} |  j | d  d ƒt j ƒ  t j t ƒ ! t | j d | j	 d! d" ƒWd  QXt j t ƒ  | j d d
 d# d$ ƒ Wd  QXd  S(*   Niÿÿÿÿ(   RL   iô  i   t   columnst   At   Bi    i   t   Ct   Xt   DR   R3   R/   t   roti   i   RP   i   i   i(   RS   RT   RU   R   RO   RQ   RR   g      ð?RV   RW   RX   RY   R   t   default(   i   i   (   i   i   (   i   i   (   i   i   (   i   i(   (   RZ   RL   R   R    R(   R)   t   randintR   Rt   Rv   R5   R   R    R   R]   R   R\   t   ravelR^   R_   Ra   R`   Rb   R!   R"   Rc   R   t   FutureWarning(   R   RL   R-   R8   Re   Rf   RP   RR   Rg   R   R=   Rh   R1   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_grouped_hist_legacy  sH    !


	.

"c         C   sÿ   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
 | ƒ d k sÐ t ‚ t
 |  j j ƒ  ƒ d k sñ t ‚ t j ƒ  d  S(   Ni
   i¦   i   t   sizei<   i*   i    i   R1   t   weightR4   i   (   R   R(   R)   t   normalR   t
   RNGContextt   choiceR   t   groupbyR   R*   R,   R   R@   R    (   R   t   nR€   R1   t
   gender_intt   df_intt   gbR8   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_grouped_hist_legacy2=  s    !!$!c         C   sè  |  j  } t j t | j d d d | j d d ƒt j t | j d d d | j d d ƒt j t | j d d d | j d d ƒt j t	 ƒ ) t
 | j d d d | j d d ƒ} Wd  QX|  j | d
 d	 d d ƒt j t	 ƒ ) t
 | j d d d | j d d ƒ} Wd  QX|  j | d
 d	 d d ƒ| j d d d | j d d ƒ } |  j | d
 d d d ƒ| j d d d | j d d ƒ } |  j | d
 d d d ƒ| j d d d | j d d d d ƒ } |  j | d
 d d d  d d! ƒt j ƒ  t j t	 ƒ & t
 | j d d d d d d" ƒ} Wd  QX|  j | d
 d d d# ƒt j t	 ƒ  t
 | j d d ƒ} Wd  QX|  j | d
 d d d$ ƒ| j d d d d% ƒ } |  j | d
 d	 d d& ƒ| j d d d d g ƒ } |  j | d
 d d d' ƒd  S((   Nt   columnR€   R   R/   i   R1   i   iÿÿÿÿi   R3   i   R   i   i   R7   R4   i   R6   (   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   (   i   i   (   R0   R!   R"   R#   R   R4   R6   R   R   R   R   R5   R    (   R   R-   R8   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_grouped_hist_layoutL  sF    	!!!!!
$c      	   C   s>  |  j  } |  j j d d ƒ \ } } | j d d d d g d | d ƒ } |  j | d	 d d
 d ƒt j | | d ƒ | d j | k s t ‚ | j d d d | d ƒ } |  j | d	 d d
 d ƒt j | | d ƒ | d j | k sñ t ‚ t	 j
 t ƒ 8 |  j j d d ƒ \ } } | j d d d | ƒ } Wd  QXd  S(   Ni   i   RŠ   R1   R€   R6   R   i    R3   R/   i   R   R7   (   i   i   (   i   i   (   R0   R   R   R   R5   R   t   assert_numpy_array_equalR   R,   R!   R"   R#   (   R   R-   R$   R8   t   returned(    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_grouped_hist_multiple_axes}  s    	%c         C   s¢   |  j  } | j d d d | j d t ƒ \ } } | j j | | ƒ sK t ‚ | j j | | ƒ sf t ‚ | j j | | ƒ s‚ t ‚ | j j | | ƒ sž t ‚ d  S(   NRŠ   R1   R   RM   (   R0   R   R4   R\   t   _shared_x_axest   joinedR,   t   _shared_y_axes(   R   R-   R%   R&   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_axis_share_x‘  s    	'c         C   s¢   |  j  } | j d d d | j d t ƒ \ } } | j j | | ƒ sK t ‚ | j j | | ƒ sf t ‚ | j j | | ƒ s‚ t ‚ | j j | | ƒ sž t ‚ d  S(   NRŠ   R1   R   RN   (   R0   R   R4   R\   R‘   R   R,   R   (   R   R-   R%   R&   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_axis_share_yŸ  s    	'c      	   C   s¦   |  j  } | j d d d | j d t d t ƒ \ } } | j j | | ƒ sQ t ‚ | j j | | ƒ sl t ‚ | j j | | ƒ s‡ t ‚ | j j | | ƒ s¢ t ‚ d  S(   NRŠ   R1   R   RM   RN   (   R0   R   R4   R\   R   R   R,   R‘   (   R   R-   R%   R&   (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   test_axis_share_xy¬  s    	(   RG   RH   R!   RI   RJ   R~   R‰   R‹   RŽ   R’   R“   R”   (    (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyRr     s   71(   t   __doc__t   numpyR(   t   numpy.randomR    R!   t   pandas.util._test_decoratorst   utilt   _test_decoratorst   tdt   pandasR   R   t   pandas.tests.plotting.commonR   R   t   pandas.util.testingt   testingR   t   pandas.plotting._compatR   t   pandas.plotting._coreR   t   skip_if_no_mplR   RK   Rr   (    (    (    sE   lib/python2.7/site-packages/pandas/tests/plotting/test_hist_method.pyt   <module>   s   	|	r	