ó
šxŠ\c           @   sH  d  d l  m Z m  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 d  d l m Z m Z m Z m Z m Z d  d l j j Z d  d l j j Z d  d l m Z m Z m Z m Z e j d ƒ Z d  d l  m! Z! m" Z" d	 „  Z# d
 e$ f d „  ƒ  YZ% d e$ f d „  ƒ  YZ& d e$ f d „  ƒ  YZ' d S(   iÿÿÿÿ(   t   datet   datetimeN(   t   u(   t   np_datetime64_compat(   t   Indext   Periodt   Seriest	   Timestampt
   date_range(   t   Dayt   Microt   Millit   Seconds   pandas.plotting._converter(   t    deregister_matplotlib_converterst   register_matplotlib_convertersc           C   s.   t  j d ƒ t  j t d ƒ ƒ k s* t ‚ d  S(   Ns   00:01(   t	   convertert   time2numR   t   AssertionError(    (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_timtetonum_accepts_unicode   s    t   TestRegistrationc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s7   d } t  j d | g } t j | ƒ d k s3 t ‚ d  S(   Nsv   'import matplotlib.units; import pandas as pd; units = dict(matplotlib.units.registry); assert pd.Timestamp in units)'s   -ci    (   t   syst
   executablet
   subprocesst
   check_callR   (   t   selft   codet   call(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_register_by_default   s    c         C   sÄ   t  j d ƒ } t t d ƒ d t d d d ƒƒ} | j ƒ  \ } } t t _ t	 j
 t d t ƒ' } | j | j | j ƒ | j ƒ  Wd  QXt | ƒ d k s¤ t ‚ d t | d	 ƒ k sÀ t ‚ d  S(
   Ns   matplotlib.pyploti   t   indext   2017t   periodst   check_stackleveli   s1   Using an implicitly registered datetime converteri    (   t   pytestt   importorskipR   t   rangeR   t   subplotst   TrueR   t   _WARNt   tmt   assert_produces_warningt   FutureWarningt   Falset   plotR   t   valuest   closet   lenR   t   str(   R   t   pltt   st   _t   axt   w(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt
   test_warns%   s    $	c         C   sŸ   t  j d ƒ } t t d ƒ d t d d d ƒƒ} | j ƒ  \ } } t t _ t	 ƒ  t
 j d  ƒ  } | j | j | j ƒ Wd  QXt | ƒ d k s› t ‚ d  S(   Ns   matplotlib.pyploti   R   R   R   i    (   R    R!   R   R"   R   R#   R$   R   R%   R   R&   R'   t   NoneR*   R   R+   R-   R   (   R   R/   R0   R1   R2   R3   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_registering_no_warning4   s    $	c         C   sx   t  j d ƒ t t d ƒ d t d d d ƒƒ} t t _ t j	 d  ƒ  } | j ƒ  Wd  QXt | ƒ d k st t ‚ d  S(   Ns   matplotlib.pyploti   R   R   R   i    (   R    R!   R   R"   R   R$   R   R%   R&   R'   R5   R*   R-   R   (   R   R0   R3   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_pandas_plots_registerA   s    $	c         C   sq   t  j d ƒ } t | j k s$ t ‚ t j d t ƒ } |  t | j k sR t ‚ Wd  QXt | j k sm t ‚ d  S(   Ns   matplotlib.unitss'   plotting.matplotlib.register_converters(   R    R!   R   t   registryR   t   cft   option_contextR)   (   R   t   unitst   ctx(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_matplotlib_formattersK   s    		c         C   s'  t  j d ƒ t j d t ƒ } t  j d ƒ } t t d ƒ d t d d d ƒƒ} | j ƒ  \ } } t	 t
 _ | 3 t j d  ƒ  } | j | j | j ƒ Wd  QXWd  QXt | ƒ d k sÀ t ‚ t	 t
 _ t ƒ  | 3 t j d  ƒ  } | j | j | j ƒ Wd  QXWd  QXt | ƒ d k s#t ‚ d  S(   Ns   matplotlib.pyplots'   plotting.matplotlib.register_convertersi   R   R   R   i    (   R    R!   R9   R:   R)   R   R"   R   R#   R$   R   R%   R&   R'   R5   R*   R   R+   R-   R   R   (   R   R<   R/   R0   R1   R2   R3   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_option_no_warningV   s"    		$	"	"c         C   sã   t  j d ƒ } t  j d ƒ } t | j ƒ } zw | j j ƒ  | j ƒ  } | | j t <| | j t <t ƒ  | j t | k	 sƒ t	 ‚ t
 ƒ  | j t | k s£ t	 ‚ Wd  | j j ƒ  x' | j ƒ  D] \ } } | | j | <qÁ WXd  S(   Ns   matplotlib.unitss   matplotlib.dates(   R    R!   t   dictR8   t   cleart   DateConverterR   R    R   R   R   t   items(   R   R;   t   datest   originalt   date_convertert   kt   v(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_registry_resetso   s    c         C   sg   t  j t ƒ ! } d d l m } | j ƒ  Wd  QXt | ƒ sD t ‚ d t | d j	 ƒ k sc t ‚ d  S(   Niÿÿÿÿ(   R   s.   pandas.plotting.register_matplotlib_convertersi    (
   R&   R'   R(   t   pandas.tseriesR   t   registerR-   R   R.   t   message(   R   R3   R   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_old_import_warnsˆ   s    (
   t   __name__t
   __module__R   R4   R6   R7   R=   R>   RH   RL   (    (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyR      s   					
			t   TestDateTimeConverterc           B   s}   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z e j j	 d d d d d d g ƒ d „  ƒ Z
 d „  Z d „  Z d „  Z RS(   c         C   s%   t  j ƒ  |  _ t  j d  ƒ |  _ d  S(   N(   R   t   DatetimeConvertert   dtct   TimeFormatterR5   t   tc(   R   t   method(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   setup_method”   s    c         C   sR   |  j  j d d  d  ƒ } |  j  j t d ƒ d  d  ƒ } | | k sN t d ƒ ‚ d  S(   Ns   12:22s/   DatetimeConverter.convert should accept unicode(   RQ   t   convertR5   R   R   (   R   t   r1t   r2(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_convert_accepts_unicode˜   s    c         C   sò  |  j  j d g d  d  ƒ d } t d d d ƒ j ƒ  } | | k sI t ‚ |  j  j d d  d  ƒ } | | k ss t ‚ |  j  j t d d d ƒ d  d  ƒ } | | k s© t ‚ |  j  j t d d d ƒ j ƒ  d  d  ƒ } | | k så t ‚ |  j  j d d  d  ƒ } | | k st ‚ |  j  j t d ƒ d  d  ƒ } | | k s?t ‚ |  j  j t d ƒ d  d  ƒ } | | k sot ‚ |  j  j t d ƒ d  d  ƒ } | | k sŸt ‚ |  j  j t	 j
 t d ƒ t d ƒ g ƒ d  d  ƒ } | d | k sèt ‚ t d ƒ j d ƒ j d	 ƒ } |  j  j | d  d  ƒ } | | k s0t ‚ |  j  j | j ƒ  d  d  ƒ } | | k s`t ‚ |  j  j t | t d ƒ | g ƒ d  d  ƒ } | d | k s¤t ‚ |  j  j t | t d ƒ | g ƒ j ƒ  d  d  ƒ } | d | k sît ‚ d  S(
   Ns   2012-1-1i    iÜ  i   s
   2012-01-01s   2012-01-01 00:00:00+0000s   2012-01-02 00:00:00+0000t   UTCs
   US/Eastern(   RQ   RV   R5   R   t	   toordinalR   R    R   R   t   npt   arrayt   tz_localizet
   tz_convertt   to_pydatetimeR   R	   (   R   t   rst   xpt   ts(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_conversion   sD    $*			.(c         C   sÖ   d } |  j  j t d d d ƒd  d  ƒ } t j j t d d d ƒƒ } t j | | | ƒ |  j  j t d d d ƒd  d  ƒ } t j | | | ƒ |  j  j t	 d d d d d	 d
 ƒ d  d  ƒ } t j | | | ƒ d  S(   Ni	   s   2012-1-1 01:02:03t   tzRZ   s   2012-1-1 09:02:03s   Asia/Hong_KongiÜ  i   i   i   (
   RQ   RV   R   R5   R   RC   t   date2numR&   t   assert_almost_equalR   (   R   t   decimalsRa   Rb   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_conversion_floatÑ   s    		-c         C   sN  t  d d d ƒ t  d d d ƒ g } |  j j | d  d  ƒ } t j j | ƒ } t j | | ƒ |  j j | d d  d  ƒ } t j j | d ƒ } | | k s¢ t	 ‚ t
 d d d d ƒ t
 d d d d ƒ g } |  j j | d  d  ƒ } t j j | ƒ } t j | | ƒ |  j j | d d  d  ƒ } t j j | d ƒ } | | k sJt	 ‚ d  S(   Ni  i   i   i    i   (   R    RQ   RV   R5   R   RC   Rf   R&   t   assert_numpy_array_equalR   R   (   R   R+   Ra   Rb   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt$   test_conversion_outofbounds_datetimeà   s    $*s   time,format_expectedi    s   00:00g‘óþÿÿõ@s   23:59:59.999999i_ s   01:00i‹  s   01:02:03gfffffeã@s   11:02:03.200c         C   s%   |  j  | ƒ } | | k s! t ‚ d  S(   N(   RS   R   (   R   t   timet   format_expectedt   result(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_time_formatterò   s    	c         C   sv   d } xi d D]a } t  j d d d | ƒ } |  j j | d  d  ƒ } t j j | j ƒ  ƒ } t  j	 | | | ƒ q Wd  S(	   Ni	   t   Bt   Lt   SRF   i
   t   freq(   Rp   Rq   Rr   (
   R&   t   makeDateIndexRQ   RV   R5   R   RC   Rf   t	   _mpl_reprRg   (   R   Rh   Rs   t	   dateindexRa   Rb   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_dateindex_conversionþ   s    c            s^   ‡  f d †  } t  d ƒ } | | | t ƒ  ƒ | | | t ƒ  ƒ | | | t d ƒ ƒ d  S(   Nc            s[   ˆ  j  j |  d  d  ƒ } ˆ  j  j | d  d  ƒ } | | k  sW t d j | | ƒ ƒ ‚ n  d  S(   Ns   {0} is not less than {1}.(   RQ   RV   R5   R   t   format(   t   ts1t   ts2t   val1t   val2(   R   (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   _assert_less  s
    s   2012-1-1i2   (   R   R   R   R
   (   R   R}   Rc   (    (   R   sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_resolution  s
    	c         C   sŒ   t  d ƒ t  d ƒ g } | | g } |  j j | d  d  ƒ } g  | D] } |  j j | d  d  ƒ ^ qC } t j | ƒ | k j ƒ  sˆ t ‚ d  S(   Ns
   2017-01-01s
   2017-01-02(   R   RQ   RV   R5   R\   R]   t   allR   (   R   t   innert   dataRn   t   xt   expected(    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_convert_nested  s
    +(   i    s   00:00(   g‘óþÿÿõ@s   23:59:59.999999(   i_ s   01:00(   i‹  s   01:02:03(   gfffffeã@s   11:02:03.200(   RM   RN   RU   RY   Rd   Ri   Rk   R    t   markt   parametrizeRo   Rw   R~   R„   (    (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyRO   ’   s   			4					t   TestPeriodConverterc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sA   t  j ƒ  |  _ d t f d „  ƒ  Y} | ƒ  |  _ d |  j _ d  S(   Nt   Axisc           B   s   e  Z RS(    (   RM   RN   (    (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyRˆ   #  s   t   D(   R   t   PeriodConvertert   pct   objectt   axisRs   (   R   RT   Rˆ   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyRU      s    c         C   sR   |  j  j d d  |  j ƒ } |  j  j t d ƒ d  |  j ƒ } | | k sN t ‚ d  S(   Ns   2012-1-1(   R‹   RV   R5   R   R   R   (   R   RW   RX   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyRY   )  s    !c         C   s  |  j  j d g d  |  j ƒ d } t d ƒ j } | | k sC t ‚ |  j  j d d  |  j ƒ } | | k sp t ‚ |  j  j t d d d ƒ g d  |  j ƒ d } | | k s° t ‚ |  j  j t d d d ƒ d  |  j ƒ } | | k sé t ‚ |  j  j t d ƒ g d  |  j ƒ d } | | k s#t ‚ |  j  j t d ƒ d  |  j ƒ } | | k sVt ‚ |  j  j t	 d ƒ d  |  j ƒ } | | k s‰t ‚ |  j  j t	 d ƒ d  |  j ƒ } | | k s¼t ‚ |  j  j t
 j t	 d ƒ t	 d ƒ g ƒ d  |  j ƒ } | d | k st ‚ d  S(   Ns   2012-1-1i    iÜ  i   s
   2012-01-01s   2012-01-01 00:00:00+0000s   2012-01-02 00:00:00+0000(   R‹   RV   R5   R   R   t   ordinalR   R    R   R   R\   R]   (   R   Ra   Rb   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyRd   .  s0    ".'(!			c         C   sC   |  j  j d d g d  |  j ƒ } d d g } | | k s? t ‚ d  S(   Ni    i   (   R‹   RV   R5   R   R   (   R   Ra   Rb   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   test_integer_passthroughP  s    !c         C   sw   d d g } |  j  j | | g d  |  j ƒ } g  t d ƒ D]! } |  j  j | d  |  j ƒ ^ q: } | | k ss t ‚ d  S(   Ns   2012-1-1s   2012-1-2i   (   R‹   RV   R5   R   R"   R   (   R   R   RW   R1   RX   (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyR„   V  s    !4(   RM   RN   RU   RY   Rd   R   R„   (    (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyR‡     s
   				"	((   R   R    R   R   t   numpyR\   R    t   pandas.compatR   t   pandas.compat.numpyR   t   pandasR   R   R   R   R   t   pandas.core.configt   coret   configR9   t   pandas.util.testingt   utilt   testingR&   t   pandas.tseries.offsetsR	   R
   R   R   R!   R   t   pandas.plottingR   R   R   RŒ   R   RO   R‡   (    (    (    sC   lib/python2.7/site-packages/pandas/tests/plotting/test_converter.pyt   <module>   s    ("	xŒ