ó
\K]c           @  sO  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 j	 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 d d l m Z m Z d	 „  Z d
 d f Z d d d d d d d d d d d f Z e e Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d  „  Z' d! „  Z( d" „  Z) d# „  Z* d$ „  Z+ d% „  Z, d& e f d' „  ƒ  YZ- e j. Z/ e j0 Z1 d( e f d) „  ƒ  YZ2 d* e f d+ „  ƒ  YZ3 d, e3 f d- „  ƒ  YZ4 d. e f d/ „  ƒ  YZ5 d0 e5 f d1 „  ƒ  YZ6 d2 e f d3 „  ƒ  YZ7 e8 d4 k rKe
 j9 ƒ  n  d S(5   s0   
Test np.datetime64 and np.timedelta64 support.
iÿÿÿÿ(   t   print_functionN(   t   configt   jitt
   npdatetimet   typest	   vectorizet   numpy_support(   t   version(   t   TypingErrori   (   t   TestCaset   tagc         C  s   t  j |  j ƒ } | j S(   N(   R   t
   from_dtypet   dtypet   unit(   t   valt   ty(    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   value_unit   s    t   Yt   Mt   Wt   Dt   ht   mt   st   mst   ust   nst   pst   fst   asc         C  s   |  | S(   N(    (   t   xt   y(    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   add_usecase!   s    c         C  s   |  | S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   sub_usecase$   s    c         C  s   |  | S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   mul_usecase'   s    c         C  s   |  | S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   div_usecase*   s    c         C  s   |  | S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   floordiv_usecase-   s    c         C  s
   |  | k S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   eq_usecase0   s    c         C  s
   |  | k S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   ne_usecase3   s    c         C  s
   |  | k  S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   lt_usecase6   s    c         C  s
   |  | k S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   le_usecase9   s    c         C  s
   |  | k S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   gt_usecase<   s    c         C  s
   |  | k S(   N(    (   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   ge_usecase?   s    c         C  s   |  
S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   pos_usecaseB   s    c         C  s   |  S(   N(    (   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   neg_usecaseE   s    c         C  s
   t  |  ƒ S(   N(   t   abs(   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   abs_usecaseH   s    c           s   ‡  f d †  } | S(   Nc           s   |  ˆ  S(   N(    (   R   (   t   const(    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   add_constantM   s    (    (   R/   R0   (    (   R/   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   make_add_constantL   s    t   TestModuleHelpersc           B  s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s7   
    Test the various helpers in numba.npdatetime.
    c           sü   t  j ‰  x^ t j t t ƒ D]J \ } } ˆ j ˆ  | | ƒ | | f ƒ ˆ j ˆ  | | ƒ | | f ƒ q Wx: t D]2 } ˆ j ˆ  | d ƒ ƒ ˆ j ˆ  d | ƒ ƒ qq Wx( t d D] } ˆ j ˆ  | | ƒ ƒ q² W‡  ‡ f d †  } | t ƒ | t ƒ d  S(   Nt    c           sb   x[ t  |  ƒ D]M \ } } x> |  |  D]2 } ˆ j ˆ  | | ƒ ƒ ˆ j ˆ  | | ƒ ƒ q$ Wq Wd  S(   N(   t	   enumeratet
   assertTruet   assertFalse(   t   groupt   it   at   b(   t   ft   self(    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   check_units_groupb   s    (   R3   (	   R   t   can_cast_timedelta_unitst	   itertoolst   productt
   date_unitst
   time_unitsR6   t	   all_unitsR5   (   R<   R9   R:   R   R=   (    (   R;   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_can_cast_timedeltaW   s    	#
c           sD  t  j ‰  x+ t d D] } ˆ j ˆ  | | ƒ d ƒ q Wx' t D] } ˆ j ˆ  d | ƒ d ƒ q> WxR t j t t ƒ D]> \ } } ˆ j ˆ  | | ƒ d  ƒ ˆ j ˆ  | | ƒ d  ƒ qt W‡  ‡ f d †  } | t ƒ | t ƒ ˆ j ˆ  d d ƒ d ƒ ˆ j ˆ  d d ƒ d ƒ ˆ j ˆ  d d ƒ d ƒ ˆ j ˆ  d d ƒ d ƒ d  S(   NR3   i   c           sq   xj t  |  ƒ D]\ \ } } xM |  |  D]A } ˆ j ˆ  | | ƒ d | | f ƒ ˆ j ˆ  | | ƒ d  ƒ q$ Wq Wd  S(   Ni   (   R4   t   assertGreatert   assertIst   None(   R7   R8   R9   R:   (   R;   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyR=   w   s    "R   R   i   R   R   i   i   R   i<   R   i  iè  (   R3   i¨   i¨   i`'  i¨   i€:	 i „$I  ãÐŒ   (
   R   t   get_timedelta_conversion_factorRC   t   assertEqualR?   R@   RB   RA   RF   RG   (   R<   R   R9   R:   R=   (    (   R;   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_timedelta_conversionm   s    	

c           sF  t  j ‰  ‡  ‡ f d †  } x- t j t t ƒ D] \ } } | | | ƒ q. Wx- t j t t ƒ D] \ } } ˆ  | | ƒ q^ Wx- t j t t ƒ D] \ } } ˆ  | | ƒ qŽ Wx- t j t t ƒ D] \ } } ˆ  | | ƒ q¾ Wxk t D]c } ˆ j ˆ  | | ƒ | d d f ƒ ˆ j ˆ  | d ƒ | d d f ƒ ˆ j ˆ  d | ƒ d ƒ qâ Wˆ j ˆ  d d ƒ d ƒ ˆ j ˆ  d d ƒ d ƒ ˆ j ˆ  d d ƒ d ƒ ˆ j ˆ  d d ƒ d ƒ ˆ j ˆ  d d ƒ d ƒ ˆ j ˆ  d d
 ƒ d
 d d f ƒ ˆ j ˆ  d
 d ƒ d
 d d f ƒ ˆ j ˆ  d
 d ƒ d d d f ƒ ˆ j ˆ  d d
 ƒ d d d f ƒ ˆ j ˆ  d d ƒ d d d d f ƒ ˆ j ˆ  d d ƒ d d d  d! f ƒ ˆ j ˆ  d d ƒ d d d" d# f ƒ ˆ j ˆ  d d ƒ d d d$ d& f ƒ ˆ j ˆ  d d
 ƒ d
 d d' d d d f ƒ ˆ j ˆ  d d
 ƒ d
 d d( d d d) f ƒ d  S(*   Nc           s'   ˆ j  t ƒ  ˆ  |  | ƒ Wd  QXd  S(   N(   t   assertRaisest   RuntimeError(   t   dt_unitt   td_unit(   R;   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   check_errorˆ   s    i   R3   R   R   i   R   R   i   R   i   i  R   iè  i   ia   i  im  (   R3   i   i   (   R3   i   i   (   R   i   i   (   R   i   i   (   R   i   i   (   R   i   i   i¨   i€:	 i¨   i€:	 I  d§³¶àI  d§³¶àiP: iP: ið
  iP: iÀ  iP: iÀ  i@ƒ  iP: iP: iÀ  (   R   t!   get_datetime_timedelta_conversionR?   R@   RB   RA   RC   RI   (   R<   RO   RM   RN   R   (    (   R;   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_datetime_timedelta_scaling†   s:    	""""""&&&&.c         C  sú   t  j } xY t D]Q } |  j | | | ƒ | ƒ |  j | d | ƒ | ƒ |  j | | d ƒ | ƒ q W|  j | d d ƒ d ƒ x9 t j t t ƒ D]% \ } } |  j | | | ƒ d  ƒ q‘ Wx9 t j t t ƒ D]% \ } } |  j | | | ƒ | ƒ qÍ Wd  S(   NR3   (
   R   t    combine_datetime_timedelta_unitsRC   RI   R?   R@   RB   RA   RF   RG   (   R<   R;   R   RM   RN   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt%   test_combine_datetime_timedelta_units­   s    	c      	   C  s  t  j } x$ t D] } |  j | | | ƒ ƒ q Wd } d } x6 t j | | ƒ D]" \ } } |  j | | | ƒ ƒ qO Wx6 t j | | ƒ D]" \ } } |  j | | | ƒ ƒ qˆ WxL t j | | ƒ D]8 \ } } |  j | | | ƒ ƒ |  j | | | ƒ ƒ qÁ Wd  S(   NR   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   t	   same_kindRC   R5   R?   R@   R6   (   R<   R;   t   ut   At   BR9   R:   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_same_kind¹   s    	(   t   __name__t
   __module__t   __doc__RD   RJ   RQ   RS   RX   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyR2   R   s   			'	t   TestMiscCompilingc           B  s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c           sW   ‡  f d †  } t  j d ƒ t  j d ƒ t  j d ƒ ƒ } | | ƒ d } | | ƒ d  S(   Nc           s\   t  |  d t ƒt ƒ } t d d ƒ t d d ƒ f } t | Œ  } ˆ  j | | Œ  | ƒ d  S(   Nt   nopythoni   R   i   R   (   R   t   TrueR    t   DTt   TDt   assertPreciseEqual(   t   sigR;   t   argst   expected(   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   _check_explicit_signatureÏ   s    R   R   s5   NPDatetime('us')(NPDatetime('ms'), NPTimedelta('us'))(   R   t
   NPDatetimet   NPTimedelta(   R<   Re   Rb   (    (   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_jit_explicit_signatureÎ   s
    *
c           sQ   ‡  f d †  } t  j d ƒ t  j d ƒ t  j ƒ } | | ƒ d } | | ƒ d  S(   Nc           sD   t  |  g d t ƒt ƒ } ˆ  j | t d ƒ d ƒ t d ƒ ƒ d  S(   NR]   i   i   i   (   R   R^   R"   Ra   R`   (   Rb   R;   (   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRe   Þ   s    R   s)   NPTimedelta('s')(NPTimedelta('s'), int64)(   R   Rg   t   int64(   R<   Re   Rb   (    (   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt!   test_vectorize_explicit_signatureÝ   s
    $
c           s6   ‡  f d †  } | t  d ƒ ƒ | t  d d ƒ ƒ d  S(   Nc           sV   t  |  ƒ } t d t ƒ | ƒ } t d d ƒ } | | ƒ } ˆ  j | | ƒ | ƒ d  S(   NR]   i   R   (   R1   R   R^   R`   Ra   (   R/   t   pyfuncR;   R   Rd   (   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   checkí   s
    s
   2001-01-01t   NaTR   (   R_   (   R<   Rl   (    (   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_constant_datetimeì   s    c           sL   ‡  f d †  } | t  d d ƒ ƒ | t  d d ƒ ƒ | t  d d ƒ ƒ d  S(   Nc           sV   t  |  ƒ } t d t ƒ | ƒ } t d d ƒ } | | ƒ } ˆ  j | | ƒ | ƒ d  S(   NR]   i   R   (   R1   R   R^   R`   Ra   (   R/   Rk   R;   R   Rd   (   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   ÷   s
    i   R   iüÿÿÿRm   (   R`   (   R<   Rl   (    (   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_constant_timedeltaö   s    (   RY   RZ   Rh   Rj   Rn   Ro   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyR\   Ì   s   			
t   TestTimedeltaArithmeticc           B  s§   e  Z e d  e ƒ Z d „  Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z d „  Z	 d „  Z
 d „  Z e d ƒ d „  ƒ Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   t   forceobjc         C  s   t  |  j   | ƒ S(   N(   R   t   jitargs(   R<   Rk   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyR     s    t	   importantc      	     s×  ˆ j  t ƒ ‰  ‡  ‡ f d †  } | t d ƒ t d ƒ t d ƒ ƒ | t d d ƒ t d d ƒ t d d ƒ ƒ t j sÊ | t d ƒ t d d ƒ t d d ƒ ƒ | t d ƒ t d d ƒ t d d ƒ ƒ n  | t d d ƒ t d d ƒ t d d ƒ ƒ | t d d	 ƒ t d d
 ƒ t d d
 ƒ ƒ | t d ƒ t d ƒ t d ƒ ƒ | t d d ƒ t d d
 ƒ t d d ƒ ƒ | t d d ƒ t d d ƒ t d d ƒ ƒ ˆ j t t f ƒ $ ˆ  t d d ƒ t d d
 ƒ ƒ Wd  QXd  S(   Nc           s6   ˆ j  ˆ  |  | ƒ | ƒ ˆ j  ˆ  | |  ƒ | ƒ d  S(   N(   Ra   (   R9   R:   Rd   (   R;   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl     s    i   i   i   R   R   R   iBB R   R   i	   Rm   R   (   R   R    R`   R   t   strict_ufunc_typingRK   t	   TypeErrorR   (   R<   Rl   (    (   R;   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_add	  s    "+	(+++"++c      	     s×  ˆ j  t ƒ ‰  ‡  ‡ f d †  } | t d ƒ t d ƒ t d ƒ ƒ | t d d ƒ t d d ƒ t d d ƒ ƒ t j sÊ | t d ƒ t d d ƒ t d d ƒ ƒ | t d ƒ t d d ƒ t d d ƒ ƒ n  | t d d ƒ t d d ƒ t d d ƒ ƒ | t d d	 ƒ t d d
 ƒ t d d
 ƒ ƒ | t d ƒ t d ƒ t d ƒ ƒ | t d d ƒ t d d
 ƒ t d d ƒ ƒ | t d d ƒ t d d ƒ t d d ƒ ƒ ˆ j t t f ƒ $ ˆ  t d d ƒ t d d
 ƒ ƒ Wd  QXd  S(   Nc           s7   ˆ j  ˆ  |  | ƒ | ƒ ˆ j  ˆ  | |  ƒ | ƒ d  S(   N(   Ra   (   R9   R:   Rd   (   R;   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   #  s    i   i   i   R   R   R   i¾Æ- R   R   i   Rm   R   (   R   R!   R`   R   Rt   RK   Ru   R   (   R<   Rl   (    (   R;   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_sub   s    "+	(+++"++c           sŒ  ˆ j  t ƒ ‰  ‡  ‡ f d †  } | t d ƒ t j d ƒ t d ƒ ƒ | t d ƒ d t d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d ƒ d t d	 ƒ ƒ | t d
 ƒ d t d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d
 ƒ d t d	 ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d d ƒ t d ƒ t d d ƒ ƒ | t d d ƒ d t d d ƒ ƒ d  S(   Nc           s6   ˆ j  ˆ  |  | ƒ | ƒ ˆ j  ˆ  | |  ƒ | ƒ d  S(   N(   Ra   (   R9   R:   Rd   (   R;   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   9  s    i   i   i   R   Rm   i   g      ø?i
   iùÿÿÿiöÿÿÿg      ø¿t   nani>   i   i    I       @(   R   R"   R`   t   npt   uint32t   float(   R<   Rl   (    (   R;   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_mul7  s    %""""(c           sú  ˆ j  t ƒ ‰  ˆ j  t ƒ ‰ ‡  ‡ ‡ f d †  } | t d d ƒ t j d ƒ t d d ƒ ƒ | t d ƒ d t d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d d ƒ d	 t d d ƒ ƒ | t d d ƒ d	 t d d ƒ ƒ | t d
 ƒ d t d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d d ƒ d t d d ƒ ƒ | t d d ƒ t d ƒ t d d ƒ ƒ | t d d ƒ t d ƒ t d d ƒ ƒ d  S(   Nc           s6   ˆ j  ˆ  |  | ƒ | ƒ ˆ j  ˆ |  | ƒ | ƒ d  S(   N(   Ra   (   R9   R:   Rd   (   t   divt   floordivR<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   P  s    iýÿÿÿR   i   iÿÿÿÿi   i   Rm   i    i   g      à?i   iùÿÿÿg      ø?iüÿÿÿg      @g        Rx   (   R   R#   R$   R`   Ry   Rz   R{   (   R<   Rl   (    (   R}   R~   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_divM  s     +""""""""(c      	     sÇ  ˆ j  t ƒ ‰  ‡  ‡ f d †  } | t d ƒ t d ƒ d d ƒ t j sp | t d ƒ t d d ƒ d d ƒ n  | t d d ƒ t d d ƒ d d ƒ | t d d ƒ t d d ƒ d	 d ƒ | t d ƒ t d
 ƒ t d ƒ ƒ | t d ƒ t d
 ƒ t d ƒ ƒ | t d
 ƒ t d
 ƒ t d ƒ ƒ | t d ƒ t d ƒ t d ƒ ƒ | t d ƒ t d ƒ t d ƒ ƒ | t d ƒ t d
 ƒ t d ƒ ƒ ˆ j t t f ƒ $ ˆ  t d d ƒ t d d ƒ ƒ Wd  QXd  S(   Nc           s   ˆ j  ˆ  |  | ƒ | ƒ d  S(   N(   Ra   (   R9   R:   Rd   (   R}   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   g  s    i   i   g      @g      @R   R   g     p§@g     X»@i    s   +infiùÿÿÿs   -infRx   t   nati   R   R   (	   R   R#   R`   R   Rt   R{   RK   Ru   R   (   R<   Rl   (    (   R}   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_homogeneous_dive  s     	&&&""""""c           sÙ  ˆ j  t ƒ ‰  ˆ j  t ƒ ‰ ‡  ‡ ‡ f d †  } | t d ƒ t d ƒ t ƒ | t d ƒ t d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d	 ƒ t ƒ | t d
 ƒ t d
 ƒ t ƒ | t d
 d ƒ t d
 d ƒ t ƒ | t d
 ƒ t d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ d  S(   Nc           s´   | } | } t  j d k rL t j |  ƒ s: t j |  ƒ rL t } t } qL n  ˆ j ˆ  |  | ƒ | ƒ ˆ j ˆ  | |  ƒ | ƒ ˆ j ˆ |  | ƒ | ƒ ˆ j ˆ | |  ƒ | ƒ d  S(   Ni   i   (   i   i   (   R   R   Ry   t   isnatt   FalseR^   Ra   (   R9   R:   Rd   t   expected_valt   not_expected_val(   t   eqt   neR<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl     s    i   i   R   iÐ  R   R   i   R   t   Natim  R   in  Rm   R   (   R   R%   R&   R`   Rƒ   R^   (   R<   Rl   (    (   R†   R‡   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   test_eq_ne{  s     """"""""c           s{  ˆ j  t ƒ ‰ ˆ j  t ƒ ‰  ‡  ‡ ‡ f d †  } | t d ƒ t d ƒ t ƒ | t d ƒ t d ƒ t ƒ | t d ƒ t d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d ƒ t d ƒ t ƒ | t d d	 ƒ t d d ƒ t ƒ | t d ƒ t d ƒ t ƒ ˆ j t t f ƒ $ ˆ t d d ƒ t d d ƒ ƒ Wd  QXˆ j t t f ƒ $ ˆ  t d d ƒ t d d ƒ ƒ Wd  QXˆ j t t f ƒ $ ˆ t d d ƒ t d d ƒ ƒ Wd  QXˆ j t t f ƒ $ ˆ  t d d ƒ t d d ƒ ƒ Wd  QXd  S(   Nc           s‚   | } | } t  j d k rL t j |  ƒ s: t j |  ƒ rL t } t } qL n  ˆ j ˆ |  | ƒ | ƒ ˆ j ˆ  |  | ƒ | ƒ d  S(   Ni   i   (   i   i   (   R   R   Ry   R‚   Rƒ   Ra   (   R9   R:   Rd   R„   R…   (   t   get   ltR<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   £  s    i   i   R   R   i=   i<   Rˆ   R   i?   R   im  R   Rm   l            lûÿÿÿ         lûÿÿÿÿÿÿÿ (	   R   R'   R*   R`   R^   Rƒ   RK   Ru   R   (   R<   Rl   (    (   RŠ   R‹   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   test_lt_ge   s,    """"""%%%c           s  ˆ j  t ƒ ‰ ˆ j  t ƒ ‰  ‡  ‡ ‡ f d †  } | t d ƒ t d ƒ t ƒ | t d ƒ t d ƒ t ƒ | t d ƒ t d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d d ƒ t d d ƒ t ƒ | t d	 ƒ t d	 ƒ t ƒ | t d	 d
 ƒ t d	 d ƒ t ƒ | t d	 ƒ t d ƒ t ƒ ˆ j t t f ƒ $ ˆ t d d ƒ t d d ƒ ƒ Wd  QXˆ j t t f ƒ $ ˆ  t d d ƒ t d d ƒ ƒ Wd  QXˆ j t t f ƒ $ ˆ t d d ƒ t d d ƒ ƒ Wd  QXˆ j t t f ƒ $ ˆ  t d d ƒ t d d ƒ ƒ Wd  QXd  S(   Nc           s‚   | } | } t  j d k rL t j |  ƒ s: t j |  ƒ rL t } t } qL n  ˆ j ˆ |  | ƒ | ƒ ˆ j ˆ  |  | ƒ | ƒ d  S(   Ni   i   (   i   i   (   R   R   Ry   R‚   Rƒ   Ra   (   R9   R:   Rd   R„   R…   (   t   gtt   leR<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   Ë  s    i   i   R   R   i=   i<   i;   Rˆ   R   i?   R   im  R   Rm   l            lûÿÿÿ         lûÿÿÿÿÿÿÿ (	   R   R(   R)   R`   R^   Rƒ   RK   Ru   R   (   R<   Rl   (    (   R   RŽ   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt
   test_le_gtÈ  s.    """""""%%%c           sŽ   ˆ j  t ƒ ‰  ‡  ‡ f d †  } | t d ƒ ƒ | t d ƒ ƒ | t d d ƒ ƒ | t d d ƒ ƒ | t d ƒ ƒ | t d d ƒ ƒ d  S(   Nc           s   ˆ j  ˆ  |  ƒ |  
ƒ d  S(   N(   Ra   (   R9   (   t   posR<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   ò  s    i   iüÿÿÿR   Rm   (   R   R+   R`   (   R<   Rl   (    (   R   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_posð  s    c           sŽ   ˆ j  t ƒ ‰  ‡  ‡ f d †  } | t d ƒ ƒ | t d ƒ ƒ | t d d ƒ ƒ | t d d ƒ ƒ | t d ƒ ƒ | t d d ƒ ƒ d  S(   Nc           s   ˆ j  ˆ  |  ƒ |  ƒ d  S(   N(   Ra   (   R9   (   t   negR<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   þ  s    i   iüÿÿÿR   Rm   (   R   R,   R`   (   R<   Rl   (    (   R’   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_negü  s    c           sŽ   ˆ j  t ƒ ‰  ‡  ‡ f d †  } | t d ƒ ƒ | t d ƒ ƒ | t d d ƒ ƒ | t d d ƒ ƒ | t d ƒ ƒ | t d d ƒ ƒ d  S(   Nc           s    ˆ j  ˆ  |  ƒ t |  ƒ ƒ d  S(   N(   Ra   R-   (   R9   (   R;   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   
  s    i   iüÿÿÿR   Rm   (   R   R.   R`   (   R<   Rl   (    (   R;   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_abs  s    (   RY   RZ   t   dictR^   Rr   R   R
   Rv   Rw   R|   R   R   R‰   RŒ   R   R‘   R“   R”   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRp     s   				%	(	(		t   TestTimedeltaArithmeticNoPythonc           B  s   e  Z e d  e ƒ Z RS(   R]   (   RY   RZ   R•   R^   Rr   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyR–     s   t   TestDatetimeArithmeticc           B  sn   e  Z e d  e ƒ Z d „  Z e j d „  ƒ Z e	 d ƒ d „  ƒ Z
 d „  Z d „  Z e	 d ƒ d „  ƒ Z RS(   Rq   c         C  s   t  |  j   | ƒ S(   N(   R   Rr   (   R<   Rk   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyR     s    c      
   c  s5   t  j ƒ  # t  j d d d d t ƒd  VWd  QXd  S(   Nt   ignoret   messages-   Implicitly casting between incompatible kindst   category(   t   warningst   catch_warningst   filterwarningst   DeprecationWarning(   R<   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   silence_numpy_warnings!  s
    Rs   c           sÑ  ˆ j  t ƒ ‰  ˆ j  t ƒ ‰ ‡  ‡ ‡ f d †  } t j sa | t d ƒ t d ƒ t d ƒ ƒ n  | t d ƒ t d d ƒ t d ƒ ƒ | t d ƒ t d d ƒ t d ƒ ƒ | t d ƒ t d d	 ƒ t d
 d	 ƒ ƒ | t d ƒ t d d ƒ t d ƒ ƒ | t d ƒ t d d ƒ t d ƒ ƒ t j ss| t d ƒ t d d ƒ t d ƒ ƒ | t d ƒ t d d ƒ t d ƒ ƒ n  t j s¡| t d ƒ t d ƒ t d ƒ ƒ n  | t d ƒ t d d ƒ t d ƒ ƒ | t d ƒ t d d ƒ t d ƒ ƒ | t d ƒ t d d ƒ t d ƒ ƒ t j sA| t d ƒ t d d ƒ t d ƒ ƒ n  | t d d	 ƒ t d d	 ƒ t d
 d	 ƒ ƒ | t d ƒ t d d ƒ t d ƒ ƒ | t d  ƒ t d d ƒ t d! ƒ ƒ | t d  ƒ t d d	 ƒ t d" ƒ ƒ t j s| t d ƒ t d# d$ ƒ t d% ƒ ƒ n  | t d& ƒ t d d$ ƒ t d' ƒ ƒ | t d& ƒ t d d( ƒ t d) ƒ ƒ x[d@ D]S} xJdA D]B} t | | ƒ } x)t d d ƒ t d d	 ƒ t d8 d ƒ t d9 d ƒ t d: d ƒ t d; d ƒ t d8 d	 ƒ t d9 d	 ƒ t d: d	 ƒ t d; d	 ƒ t d8 d ƒ t d9 d ƒ t d: d ƒ t d; d ƒ g D]y } ˆ j ˆ  | | ƒ | | | | f ƒ ˆ j ˆ  | | ƒ | | | | f ƒ ˆ j ˆ | | ƒ | | | | f ƒ q/WqjWq]W| t d< ƒ t d ƒ t d< ƒ ƒ t j s
| t d< d ƒ t d ƒ t d< d ƒ ƒ n  | t d< d ƒ t d d$ ƒ t d< d ƒ ƒ | t d< d ƒ t d d( ƒ t d< d( ƒ ƒ t j s‘| t d ƒ t d< ƒ t d< d ƒ ƒ n  | t d ƒ t d< d	 ƒ t d< d	 ƒ ƒ | t d= ƒ t d< d	 ƒ t d< d ƒ ƒ t j s| t d< d ƒ t d< ƒ t d< d ƒ ƒ n  | t d< d ƒ t d< d( ƒ t d< d( ƒ ƒ xŠ ˆ  ˆ f D]| } ˆ j t	 t
 f ƒ $ | t d> d= ƒ t d> d ƒ ƒ Wd? QXˆ j t	 t
 f ƒ $ | t d> d= ƒ t d> d ƒ ƒ Wd? QXqMWd? S(B   sQ   
        Test `datetime64 + timedelta64` and `datetime64 - timedelta64`.
        c      	     s’   ˆ j  ƒ  € ˆ j ˆ  |  | ƒ | |  | f ƒ ˆ j ˆ  | |  ƒ | |  | f ƒ ˆ j ˆ |  | ƒ | |  | f ƒ ˆ j |  | | ƒ Wd  QXd  S(   N(   RŸ   Ra   (   R9   R:   Rd   (   t   addR<   t   sub(    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   2  s
    ""#t   2014i   t   2016R   R   s   2014-03i   R   s
   2014-01-16i   R   s
   2014-01-05t   2000im  s
   2000-12-31t   2001i=   R   s   2001-01-01T01:01ZR   s   2001-01-01T00:01:01Zs   2014-02s   2014-04s   2016-02s
   2014-02-03s   2014-02-01T00:01:01Zs
   2014-01-07s
   2014-02-02i   s
   2014-03-01s
   2012-02-02s
   2012-02-29s
   2012-02-16iI   R   s   2014-02-05T01Zs   2000-01-01T01:02:03Zs   2000-01-01T03:02:03ZR   s   2000-01-01T01:02:03.002Zt   600t   601t   604t   801t   1900t   1904t   2200t   2300t   2304t   2400t   6001R3   s   -01s   -12id   i'  iœÿÿÿiðØÿÿRm   s
   2014-01-01i   N(   R¦   R§   R¨   R©   Rª   R«   R¬   R­   R®   R¯   R°   (   R3   s   -01s   -12(   R   R    R!   R   Rt   R_   R`   RI   RK   Ru   R   (   R<   Rl   t   dt_strt	   dt_suffixt   dtt   tdR;   (    (   R    R<   R¡   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_add_sub_timedelta+  sx    		%%%(%%	%(	%%%%	(+%%%	(%% 
"&&3"	+++	(((	++%c         C  s¤   d d d d d d d d d	 d
 d d g } d d d d d d d g } g  t  j | | ƒ D] \ } } t | | ƒ ^ qX } | g  | D] } t | d ƒ ^ q„ 7} | S(   NR¦   R§   R¨   t   1968t   1969t   1973R¤   t   2004t   2005t   2100R¯   t   2401R3   s   -01s   -12s   -02-28s   -12-31s   -01-05T12:30:56Zs   -01-05T12:30:56.008ZR   (   R?   R@   R_   (   R<   t   dt_yearst   dt_suffixesR9   R:   t   dtsR   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   datetime_samples~  s    5&c      
     sÐ  ˆ  j  t ƒ ‰ d ‡  ‡ f d † } | t d ƒ t d ƒ t d d ƒ ƒ | t d ƒ t d ƒ t d d	 ƒ ƒ | t d
 ƒ t d ƒ t d d ƒ ƒ t j sÄ | t d ƒ t d ƒ t d d ƒ ƒ n  | t d d	 ƒ t d ƒ t d d	 ƒ ƒ | t d d	 ƒ t d ƒ t d d ƒ ƒ | t d ƒ t d ƒ t d ƒ ƒ ˆ  j ƒ  ˆ ˆ  j ƒ  } xt t	 j
 | | ƒ D]` \ } } t j rœt j t | ƒ t | ƒ ƒ rœqbn  ˆ  j ˆ | | ƒ | | | | f ƒ qbWWd QXd S(   s1   
        Test `datetime64 - datetime64`.
        c      	     sw   ˆ  j  ƒ  e ˆ  j ˆ |  | ƒ |  | |  | f ƒ ˆ  j ˆ | |  ƒ | |  |  | f ƒ ˆ  j |  | | ƒ Wd  QXd  S(   N(   RŸ   Ra   (   R9   R:   Rd   (   R<   R¡   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRl   Œ  s    &&R¢   t   2017iýÿÿÿR   s   2014-02s   2017-01iÝÿÿÿR   s
   2014-02-28s
   2015-03-01i’þÿÿR   Rm   R¤   s
   2000-01-01N(   R   R!   RG   R_   R`   R   Rt   RŸ   RÀ   R?   R@   R   RT   R   Ra   (   R<   Rl   R¿   R9   R:   (    (   R<   R¡   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_datetime_difference‡  s$    %%%	((("	c   	        s…  ˆ j  t ƒ ‰ ˆ j  t ƒ ‰ ˆ j  t ƒ ‰ ˆ j  t ƒ ‰ ˆ j  t ƒ ‰ ˆ j  t ƒ ‰ ‡ ‡ ‡ ‡ ‡ ‡ ‡ f d †  ‰  ‡  ‡ ‡ ‡ ‡ f d †  } ˆ  t d ƒ t d ƒ t ƒ ˆ  t d ƒ t d ƒ t	 ƒ ˆ  t d ƒ t d ƒ t	 ƒ ˆ  t d ƒ t d d ƒ t	 ƒ ˆ  t d ƒ t d d ƒ t	 ƒ ˆ  t d ƒ t d d ƒ t ƒ ˆ  t d ƒ t d	 d ƒ t	 ƒ ˆ  t d
 d ƒ t d d ƒ t	 ƒ ˆ  t d d ƒ t d d ƒ t ƒ t
 j sÒ| t d ƒ t d ƒ t	 ƒ n  | t d d ƒ t d ƒ t	 ƒ t
 j s| t d d ƒ t d ƒ t	 ƒ n  ˆ  t d ƒ t d ƒ t	 ƒ t
 j s…ˆ  t d d ƒ t d ƒ t	 ƒ ˆ  t d d ƒ t d d ƒ t	 ƒ n  ˆ j ƒ  } xí | D]å } | j j j d ƒ d d  } t j | ƒ } t | | d !} xŸ | D]— } | j d | ƒ } t
 j r)t j t | ƒ t | ƒ ƒ r)qân  ˆ  | | t	 ƒ | | | t j d | ƒ t	 ƒ | | t j d | ƒ | t	 ƒ qâWq˜Wd  S(   Nc      
     s  | } | } t  j d k rDt j |  ƒ s: t j | ƒ rDt } t } ˆ j ˆ |  | ƒ |  | f ƒ ˆ j ˆ |  | ƒ |  | f ƒ ˆ j ˆ | |  ƒ |  | f ƒ ˆ j ˆ | |  ƒ |  | f ƒ ˆ j ˆ |  | ƒ |  | f ƒ ˆ j ˆ |  | ƒ |  | f ƒ ˆ j ˆ | |  ƒ |  | f ƒ ˆ j ˆ | |  ƒ |  | f ƒ qDn  ˆ j ƒ  °ˆ j ˆ  |  | ƒ | |  | | f ƒ ˆ j ˆ  | |  ƒ | |  | | f ƒ ˆ j ˆ |  | ƒ | |  | | f ƒ ˆ j ˆ | |  ƒ | |  | | f ƒ | ræˆ j	 ˆ |  | ƒ |  | f ƒ ˆ j	 ˆ |  | ƒ |  | f ƒ ˆ j	 ˆ | |  ƒ |  | f ƒ ˆ j	 ˆ | |  ƒ |  | f ƒ ˆ j ˆ |  | ƒ |  | f ƒ ˆ j ˆ |  | ƒ |  | f ƒ ˆ j ˆ | |  ƒ |  | f ƒ ˆ j ˆ | |  ƒ |  | f ƒ n  ˆ j |  | k | ƒ Wd  QXd  S(   Ni   i   (   i   i   (
   R   R   Ry   R‚   Rƒ   R^   R6   RŸ   Ra   R5   (   R9   R:   Rd   R„   R…   (   R†   RŠ   R   RŽ   R‹   R‡   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   check_eq°  s:    %%%%%"c      
     s5  | } | } t  j d k rL t j |  ƒ s: t j | ƒ rL t } t } qL n  ˆ j ƒ  × ˆ j t ƒ } ˆ j | |  | ƒ | |  | | f ƒ ˆ j ˆ | |  ƒ | |  | | f ƒ ˆ j ˆ |  | ƒ | |  | | f ƒ ˆ j ˆ | |  ƒ | |  | | f ƒ | rˆ  |  | t ƒ n  ˆ j |  | k  | ƒ Wd  QXd  S(   Ni   i   (   i   i   (	   R   R   Ry   R‚   Rƒ   RŸ   R   R'   Ra   (   R9   R:   Rd   R„   R…   R‹   (   RÃ   RŠ   R   RŽ   R<   (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   check_ltÖ  s    %%%%R¢   RÁ   s   2014-01s
   2014-01-01R   s
   2014-01-02s
   2014-01-06s   2014-01-01T00:01:00ZR   s   2014-01-01T00:01ZR   s   2014-01-01T00:01:01ZRm   R   R   R   t   [i   iÿÿÿÿi   s   M8[%s](   R   R%   R&   R'   R(   R)   R*   R_   Rƒ   R^   R   Rt   RÀ   R   t   strt   splitRC   t   indext   astypeR   RT   R   Ry   t   timedelta64(	   R<   RÄ   R¿   R9   t   a_unitR8   t   unitsR   R:   (    (   RÃ   R†   RŠ   R   RŽ   R‹   R‡   R<   s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_comparisons¦  sT    !&		"	%	 (   RY   RZ   R•   R^   Rr   R   t
   contextlibt   contextmanagerRŸ   R
   Rµ   RÀ   RÂ   RÍ   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyR—     s   	
S			t   TestDatetimeArithmeticNoPythonc           B  s   e  Z e d  e ƒ Z RS(   R]   (   RY   RZ   R•   R^   Rr   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRÐ     s   t   TestMetadataScalingFactorc           B  s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   sf   
    Tests than non-1 scaling factors are not supported in datetime64
    and timedelta64 dtypes.
    c         K  s;   t  |   t ƒ } |  j | t d d ƒ t d ƒ ƒ ƒ d  S(   NR¢   t   10Yt   2010(   R   R%   R5   R_   (   R<   Rr   R†   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_datetime#  s    c         C  s'   |  j  ƒ   |  j d t ƒ Wd  QXd  S(   NR]   (   t   assertTypingErrorRÔ   R^   (   R<   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_datetime_npm'  s    c         K  s>   t  |   t ƒ } |  j | t d d ƒ t d d ƒ ƒ ƒ d  S(   Ni   RÒ   i   R   (   R   R%   R5   R`   (   R<   Rr   R†   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_timedelta+  s    c         C  s'   |  j  ƒ   |  j d t ƒ Wd  QXd  S(   NR]   (   RÕ   R×   R^   (   R<   (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   test_timedelta_npm/  s    (   RY   RZ   R[   RÔ   RÖ   R×   RØ   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyRÑ     s
   			t   __main__(:   R[   t
   __future__R    RÎ   R?   R›   t   numpyRy   t   numba.unittest_supportt   unittest_supportt   unittestt   numbaR   R   R   R   R   R   t   numba.numpy_supportR   t   numpy_versiont   numba.errorsR   t   supportR	   R
   R   RA   RB   RC   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R.   R1   R2   RÊ   R`   t
   datetime64R_   R\   Rp   R–   R—   RÐ   RÑ   RY   t   main(    (    (    s:   lib/python2.7/site-packages/numba/tests/test_npdatetime.pyt   <module>   sR   .	'
															v		6ÿ þ