mņ
­fIc           @   sŪ  d  Z  d k Z d k Z d k Z d k Z d k l Z d k l Z l	 Z	 d k l
 Z
 d k l Z d k l Z d k l Z l Z g  Z e e f D]< Z e e f D]) Z e d  D] Z e e e e f qµ q„ q [ Z e e  d	 d	 d j p t  d
 d d d h  g  f  f Z d e i f d     YZ d e f d     YZ d e f d     YZ d e i f d     YZ d e i f d     YZ d e f d     YZ d e i f d     YZ d e f d     YZ d e f d     YZ  d  e f d!     YZ! d" e  f d#     YZ" d$ e f d%     YZ# d& e f d'     YZ$ d( e i f d)     YZ% d* e$ e% f d+     YZ& d, e" e% f d-     YZ' d.   Z( e
 d/  Z) e
 d0 d1  Z* e
 d2 d1  Z+ e d1 d3 d1 d	  Z, e d1 d
 d4 d1  Z- d5 e f d6     YZ. e. d7 d8 d9 d:  Z/ e. d; d< d= d>  Z0 e. d? d@ dA dB  Z1 e. dC dD dE dF  Z2 e d/ dG d/  Z3 e dH dI dJ d/  Z4 dK e i f dL     YZ5 dM e i f dN     YZ6 dO   Z7 dP   Z8 e9 dQ j o e8   n d S(R   sT   Test date/time type.

See http://www.zope.org/Members/fdrake/DateTimeWiki/TestCases
N(   s   test_support(   s   MINYEARs   MAXYEAR(   s	   timedelta(   s   tzinfo(   s   time(   s   dates   datetimei   i   i
   l   
 f34.5t   abct
   TestModulec           B   s   t  Z d   Z RS(   Nc         C   s3   d  k  } |  i | i d  |  i | i d  d  S(   Ni   i'  (   t   datetimet   selft   assertEqualt   MINYEARt   MAXYEAR(   R   R   (    (    t/   /mit/python/lib/python2.4/test/test_datetime.pyt   test_constants#   s    	(   t   __name__t
   __module__R   (    (    (    R   R   !   s   t   FixedOffsetc           B   s8   t  Z d d  Z d   Z d   Z d   Z d   Z RS(   Ni*   c         C   se   t  | t  o t d |  } n t  | t  o t d |  } n | |  _ | |  _ | |  _	 d  S(   Nt   minutes(
   t
   isinstancet   offsett   intt	   timedeltat	   dstoffsetR   t   _FixedOffset__offsett   namet   _FixedOffset__namet   _FixedOffset__dstoffset(   R   R   R   R   (    (    R   t   __init__,   s    		c         C   s   |  i i   S(   N(   R   R   t   lower(   R   (    (    R   t   __repr__4   s    c         C   s   |  i S(   N(   R   R   (   R   t   dt(    (    R   t	   utcoffset6   s    c         C   s   |  i S(   N(   R   R   (   R   R   (    (    R   t   tzname8   s    c         C   s   |  i S(   N(   R   R   (   R   R   (    (    R   t   dst:   s    (   R	   R
   R   R   R   R   R   (    (    (    R   R   +   s
   			t   PicklableFixedOffsetc           B   s   t  Z d  d  d  d  Z RS(   Nc         C   s   t  i |  | | |  d  S(   N(   R   R   R   R   R   R   (   R   R   R   R   (    (    R   R   >   s    (   R	   R
   t   NoneR   (    (    (    R   R   =   s   t
   TestTZInfoc           B   s5   t  Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         C   sX   t    } t i } |  i t | i |  |  i t | i	 |  |  i t | i
 |  d  S(   N(   t   tzinfot   uselessR   t   maxR   R   t   assertRaisest   NotImplementedErrorR   R   R   (   R   R!   R   (    (    R   t   test_non_abstractnessC   s
    		c         C   s£   d t  f d     Y} |  i t | t    | d d  } |  i t | t    t i   } |  i
 t | i |  |  i
 t | i |  |  i
 t | i |  d  S(   Nt	   NotEnoughc           B   s   t  Z d   Z RS(   Nc         C   s   | |  _ | |  _ d  S(   N(   R   R   t   _NotEnough__offsetR   t   _NotEnough__name(   R   R   R   (    (    R   R   O   s    	(   R	   R
   R   (    (    (    R   R&   N   s   i   t   NotByALongShot(   R    R&   R   t
   failUnlesst
   issubclasst   neR   R   t   nowR   R#   R$   R   R   R   (   R   R,   R&   R   (    (    R   t   test_subclass_must_overrideM   s    c         C   s£   t  d d  } |  i t | t   xw t i   d  f D]c } |  i
 | i |  t d d   |  i
 | i |  d  |  i
 | i |  t d d   q8 Wd  S(   Ni   t   ThreeR   i*   (   R   t   foR   R*   R   R    R   R-   R   R   R   R   R   R   R   (   R   R   R0   (    (    R   t   test_normal[   s     "c         C   s   t  i t   } |  i t |  t  j  xQ t D]I \ } } } | i
 | |  } | i |  } |  i t |  t  j  q/ Wd  S(   N(   R    t   __new__t   origR   R*   t   typet   pickle_choicest   picklert	   unpicklert   protot   dumpst   greent   loadst   derived(   R   R8   R<   R:   R6   R7   R3   (    (    R   t   test_pickling_basec   s     c         C   s  t  d d  } t | d  } |  i t | t   |  i t |  t j  |  i	 | i
 d   |  |  i	 | i d   d  x t D] \ } } } | i | |  } | i |  } |  i t | t   |  i t |  t j  |  i	 | i
 d   |  |  i	 | i d   d  q Wd  S(   NR   iŌž’’t   cookie(   R   R   R   R3   R   R*   R   R    R4   R   R   R   R   R5   R6   R7   R8   R9   R:   R;   R<   (   R   R6   R8   R<   R:   R   R7   R3   (    (    R   t   test_pickling_subclassn   s     (   R	   R
   R%   R.   R1   R=   R?   (    (    (    R   R   A   s
   	
			t   HarmlessMixedComparisonc           B   s   t  Z d   Z d   Z RS(   Nc         C   sį   |  i d d d  } |  i | f  j  |  i | f  j  |  i f  | j  |  i f  | j  |  i | d d g  | g j  |  i | d d g  | g j  |  i g  | d d g  g j  |  i g  | d d g  g j  d  S(   Ni   l    (   R   t   theclasst   met   failIfR*   (   R   RB   (    (    R   t   test_harmless_mixed_comparison   s    c            sõ   |  i d d d    |  i t   d    |  i t   d    |  i t   d    |  i t   d    |  i t   d    |  i t   d    |  i t   d    |  i t   d	    |  i t t f     |  i t t   f   d  S(
   Ni   c              s
     f  j  S(   N(   RB   (    (   RB   (    R   t   <lambda>   s    c              s
     f  j S(   N(   RB   (    (   RB   (    R   RE      s    c              s
     f  j S(   N(   RB   (    (   RB   (    R   RE      s    c              s
     f  j S(   N(   RB   (    (   RB   (    R   RE      s    c              s
   f    j  S(   N(   RB   (    (   RB   (    R   RE      s    c              s
   f    j S(   N(   RB   (    (   RB   (    R   RE      s    c              s
   f    j S(   N(   RB   (    (   RB   (    R   RE       s    c              s
   f    j S(   N(   RB   (    (   RB   (    R   RE   ”   s    (   R   RA   RB   R#   t	   TypeErrort   cmp(   R   RB   (    (   RB   R   t   test_harmful_mixed_comparison   s    (   R	   R
   RD   RH   (    (    (    R   R@      s   	t   TestTimeDeltac           B   s   t  Z 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   Z RS(   Nc         C   s1  |  i } t } | |   | d d d d d d d d d d d d d d   | | d	  | d d	   | | d d	  | d d	   | | d d d	  | d d	   | | d d	  | d d
   | | d d	  | d d   | | d d	  | d d   | | d d	  | d d   | | d d	  | d d   | | d d	  | d d   | | d d d
  | d d	   | | d d d  | d d	   | | d d d  | d d	   | | d d d  | d d	   | | d d  | d d	   | | d d  | d d	   d  S(   Nt   weeksi    t   dayst   hoursR   t   secondst   millisecondst   microsecondsi   i   i   i<   ič  f1.0f0.001(   R   R   t   eqR   t   td(   R   RP   RQ   (    (    R   t   test_constructor­   s&    	*"####c         C   sr  |  i } t } | d  } | d d  } | d d d  } | | | | | d d d   | | | | d d d d   | | | d   | | 
| d   | | | d	 d d d   | | | d	 d d d
 d   | t |  |  | t |  |  | | d d d  |  | | d d d d  |  | | d | d   | | d d |  | | d d |  | | d | d d   | d | | d d   | | d | d d   | | d | d d d   | d | | d d d   | | d | d d d   | | d	 |  | | d | |  | | d | |  | | d d | d d  | | d d d | d  | | d | d d
   | d | | d d
   | | d | d
   | | d | d d   | | d | d d d
   | | d | d d d d   | | d | d d d d d   d  S(   Ni   i    i<   ič  i   i   i  ił’’’i’’’’i   iX> i@B i
   iF   l   
 iX  i'  iž’’’ih  iī6 (	   R   R   RP   R   RQ   t   at   bt   ct   abs(   R   RS   RU   RT   RQ   RP   (    (    R   t   test_computationsĘ   sH    	!"""c            sd  t  d    xr d D]j  |  i t    d    |  i t    d    |  i t    d    |  i t    d    q Wd	  |  i t    d
    |  i t    d    |  i t    d    |  i t    d    |  i t    d    |  i t    d    x@ d D]8  |  i t    d    |  i t    d    q$Wd  S(   Ni*   i   l    f1.0c              s      S(   N(   RS   t   i(    (   RS   RX   (    R   RE   ņ   s    c              s      S(   N(   RS   RX   (    (   RS   RX   (    R   RE   ó   s    c              s      S(   N(   RX   RS   (    (   RX   RS   (    R   RE   ō   s    c              s      S(   N(   RX   RS   (    (   RX   RS   (    R   RE   õ   s    f2.2999999999999998c              s      S(   N(   RS   t   x(    (   RS   RY   (    R   RE   ł   s    c              s      S(   N(   RY   RS   (    (   RS   RY   (    R   RE   ś   s    c              s      S(   N(   RS   RY   (    (   RS   RY   (    R   RE   ū   s    c              s      S(   N(   RY   RS   (    (   RS   RY   (    R   RE   ü   s    c              s      S(   N(   RS   RY   (    (   RS   RY   (    R   RE   ż   s    c              s      S(   N(   RY   RS   (    (   RS   RY   (    R   RE   ž   s    i    l    c              s      S(   N(   t   zeroRS   (    (   RS   RZ   (    R   RE     s    c              s      S(   N(   RS   RZ   (    (   RS   RZ   (    R   RE     s    (   i   l    f1.0(   i    l    (	   R   RS   RX   R   R#   RF   RY   RZ   t   ZeroDivisionError(   R   RS   RX   RZ   RY   (    (   RS   RX   RZ   RY   R   t   test_disallowed_computationsķ   s$      c         C   s^   d \ } } } t | | |  } |  i | i  |  |  i | i |  |  i | i |  d  S(   Ni   i   i   (   i   i   i   (   RK   RM   t   usR   RQ   R   R   RO   (   R   RM   RK   R]   RQ   (    (    R   t   test_basic_attributes  s
    c         C   sh   t  d d d d d d d d d d	 d
 d d d d d d d  } t  d d  } |  i | |  d  S(   NRK   id   RJ   ił’’’RL   ič’’’i1   R   iż’’’RM   i   RO   i   i<   f	1000000.0i   (   R   t   t1t   t2R   R   (   R   R`   R_   (    (    R   t   test_carries  s    	c         C   s  t  d d d d d d d d d d	 d
 d d d d d d  } t    } |  i t |  t |   | t  d d  7} | t  d d d  7} |  i | |  |  i t |  t |   h  | d <} d | | <|  i t |  d  |  i | | d  d  S(   NRK   id   RJ   ił’’’RL   ič’’’i1   R   iż’’’RM   i   RO   i   i<   i@B i   i   i   (   R   R_   R`   R   R   t   hasht   dt   len(   R   Rc   R`   R_   (    (    R   t   test_hash_equality  s     		
c         C   sa   d } t |   } xH t D]@ \ } } } | i | |  } | i	 |  } |  i | |  q Wd  S(   Ni   i"   i8   (   i   i"   i8   (   t   argsR   R3   R5   R6   R7   R8   R9   R:   R;   R<   R   R   (   R   R8   Rf   R<   R:   R6   R7   R3   (    (    R   t   test_pickling+  s     c            sB  t  d d d   t  d d d  } |  i  | j  |  i  | j  |  i  | j  |  i  | j  |  i  | j   |  i  | j  |  i t  |  d  |  i t |   d  x?d d d f D].} t  |   } |  i  | j   |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j   |  i  | j  |  i |  j  |  i t  |  d  |  i t |   d  qŪ Wx.t D]&  |  i    j t
  |  i    j t  |  i    j t
  |  i    j t  |  i t    d    |  i t    d	    |  i t    d
    |  i t    d    |  i t    d    |  i t    d    |  i t    d    |  i t    d    qWd  S(   Ni   i   i   i    i   i’’’’i   c              s
      j S(   N(   R_   t   badarg(    (   Rh   R_   (    R   RE   V  s    c              s
      j  S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   W  s    c              s
      j S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   X  s    c              s
      j S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   Y  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   Z  s    c              s
      j  S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   [  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   \  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   ]  s    (   i   i   i   (   i   i   i   (   i   i   i   (   R   R_   R`   R   R*   R   RG   Rf   t
   OTHERSTUFFRh   t   Falset   TrueR#   RF   (   R   Rf   R`   Rh   R_   (    (   Rh   R_   R   t   test_compare3  sR      c         C   sa  t  } |  i } | t | d   d  | t | d   d  | t | d   d  | t | d   d  | t | d	 d
 d d d d   d  | t | d	 d d d d d   d  | t | d d d	 d d d
 d d   d  | t | d d   d  | t | d d   d  | t | d d d	 d d d d d d d   d  d  S(    Ni   s   1 day, 0:00:00i’’’’s   -1 day, 0:00:00i   s   2 days, 0:00:00iž’’’s   -2 days, 0:00:00RL   i   R   i:   RM   i;   s   12:58:59i   i   s   2:03:04RJ   iā’’’i   i"   s   -210 days, 23:12:34RN   s   0:00:00.001000RO   s   0:00:00.000003RK   i’É;i?B s   999999999 days, 23:59:59.999999(   R   RQ   R   R   RP   t   str(   R   RP   RQ   (    (    R   t   test_str_  s    	(('!c         C   sŠ   xÉ t  d d d d d d d d d d	  t  d d
  t  d d d d d d  f D]y } t |  } |  i | i d   | d } t |  } |  i	 | |  t  | i
 | i | i  } |  i	 | |  qO Wd  S(   NRK   i’É;RL   i   R   i;   RM   RO   i?B i6eÄi   i   i   s	   datetime.i	   (   R   RQ   t   reprt   sR   R*   t
   startswitht   evalt   td2R   RK   RM   RO   (   R   Rp   Rs   RQ   (    (    R   t   test_roundtript  s    7 
c         C   sĖ   |  i t t i t   |  i t t i t   |  i t t i t   |  i t i t i j  |  i t i t d   |  i t i t d d d d d d   |  i t i t d d d   d  S(   Ni6eÄi’É;i   i  i   f	1000000.0i    (   R   t   assert_R   R   t   minR"   t
   resolutionR   (   R   (    (    R   t   test_resolution_info  s    +c         C   sØ   t  i } t  i | } | | 8} |  i t | i |  |  i t | i	 |  t  i
 | } | | 7} |  i t | i	 |  |  i t | i |  |  i t d    d  S(   Nc           C   s   t  i S(   N(   R   R"   (    (    (    R   RE     s    (   R   Rw   t   tinyRv   RQ   R   R#   t   OverflowErrort   __sub__t   __add__R"   (   R   RQ   Ry   (    (    R   t   test_overflow  s    	

c         C   s  t  } |  i } | | d d d  | d   | | d d d  | d   | | d d d  | d d   | | d d d  | d d   d	 } | d
 } | | d d |  | d   | | d d |  | d   | | d d | d d |  | d d   | | d d |  | d   | | d d |  | d   | | d d | d d |  | d d   d  S(   NRN   f0.40000000000000002ič  i    f0.59999999999999998RO   i   i’’’’f3600000000.0i   RK   RL   f0.20000000000000001f-0.40000000000000002f-0.20000000000000001(   R   RQ   R   R   RP   t   us_per_hourt
   us_per_day(   R   R   R~   RQ   RP   (    (    R   t   test_microsecond_rounding  s    	 !#$
  -  c         C   sF   t  d d  } |  i | i | i | i f d d d d d f  d  S(   NRO   i’’’’i   i  i   i?B (   R   RQ   R   R   RK   RM   RO   (   R   RQ   (    (    R   t   test_massive_normalization²  s    c         C   sp   |  i t d   |  i t d d   |  i t d d d   |  i t d d   |  i t d   d  S(   Ni   i    RO   (   R   R*   R   (   R   (    (    R   t	   test_bool·  s
    c            s^  d t  f   d     Y    d d  } |  i t |    j  |  i | i   d    d d d d  } |  i t |    j  |  i | i   d	  | | } |  i t |  t  j    i
 |  } |  i t |    j  |  i | i | i  |  i | i | i  |  i | i | i  |  i t |  t |   |  i | i   d  d  S(
   Nt   Tc              s)   t  Z   d   Z e e  Z d   Z RS(   Nc            s     |  i |  i |  i  S(   N(   R   RQ   RK   RM   RO   (   RQ   (   R   (    R   t   from_tdĮ  s    c         C   s-   |  i d |  i d |  i d } t |  S(   Ni   f3600.0f3600000000.0(   R   RK   RM   RO   t   sumt   round(   R   R   (    (    R   t   as_hoursÅ  s    #(   R	   R
   R   t   staticmethodR   (    (   R   (    R   R   Ą  s   RK   i   i   i’’’’RM   išń’’iē’’’(   R   R   R_   R   Ru   R4   R   R   R`   t   t3R   t   t4RK   RM   RO   Rm   (   R   R`   R   R_   R   R   (    (   R   R   t   test_subclass_timedelta¾  s     
(   R	   R
   R   RA   RR   RW   R\   R^   Ra   Re   Rg   Rl   Rn   Rt   Rx   R}   R   R   R   R   (    (    (    R   RI   ©   s"   		'			
			,								t   TestDateOnlyc           B   s   t  Z d   Z RS(   Nc         C   sB  t  d d d  } t d d d d d d d d	 d
 d  } t | i  } |  i | t d   | | } |  i | | |  | | } |  i | | |  | | } |  i | | |  | } t | i  } |  i | t d   | | } |  i | | |  | | } |  i | | |  | | } |  i | | |  d  S(   NiŠ  i   i   RK   RL   R   i   RM   i   RO   i   iž’’’(   t   dateR   R   t   deltaRK   R   R   t   dt2(   R   RK   R   R   R   (    (    R   t   test_delta_non_days_ignoredä  s(    





(   R	   R
   R   (    (    (    R   R   ą  s   t   SubclassDatec           B   s   t  Z d Z RS(   Ni   (   R	   R
   t   sub_var(    (    (    R   R     s   t   TestDatec           B   s  t  Z 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   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  RS(   Nc         C   sR   |  i d d d  } |  i | i d  |  i | i d  |  i | i d  d  S(   NiŅ  i   i   (   R   RA   R   R   t   yeart   montht   day(   R   R   (    (    R   R^   
  s    c         C   s©   x¢ |  i d d d  |  i i   f D]| } t |  } |  i | i d   | d } t |  } |  i
 | |  |  i | i | i | i  } |  i
 | |  q% Wd  S(   Ni   i   i   s	   datetime.i	   (   R   RA   t   todayR   Ro   Rp   R*   Rq   Rr   R   R   R   R   R   (   R   Rp   R   R   (    (    R   Rt     s    % 
c         C   sŠ  xÓ d d d d g D]æ \ } } } } |  i | | |  } |  i | | i    |  i i |  } |  i | |  t
 | d
  oP |  i | i d  |  i | i d  |  i | i d  |  i | i d  q q WxĖ t t t d d  D]³ } |  i | d d  } | i   } |  i i |  }
 |  i | |
  | d j o] |  i i | d  } |  i | d d d  }
 |  i | |
  |  i |
 i   | d  qķ qķ Wd d d d d d d d d d d d g } xū d t f d t f f D]į \ } } |  i | d d  i   } x· t t d d  |  D] \ }	 } |	 d j o | o | d 7} n xl t d | d  D]W } |  i | |	 |  } |  i | i   |  |  i | |  i i |   | d 7} qiWq'WqēWd  S(   Ni   i   i   im  i   in  i  i   iĖÖ
 t   houri    i   i   i   iŠ  iŅ  i   (   i   i   i   i   (   i   i   i   im  (   i   i   i   in  (   i  i   i   iĖÖ
 (   t   yt   mRc   t   nR   RA   R   t	   toordinalt   fromordinalt   fromordt   hasattrR   t   minutet   secondt   microsecondt   xrangeR   R   R   t   d2t   dimRk   Rj   t   isleapt   zipt   rangeR   t   maxdayR   (   R   R„   Rc   R¦   R   R   R©   R   R   R   R¤   R   R   (    (    R   t   test_ordinal_conversions  sH      "*   c            sz  |  i i   |  i   i   i   i      i      i	   } |  i   |  |  i t    d      t d d  } |  i | i    d  |  i | |  i i	  d   |  i i   |  i   i   i   i      i      i	   } |  i   |  |  i t    d      t d d  } |  i | i    d  |  i | |  i i	  d   d  S(   Nc              s     i  d  S(   Ni   (   RS   R   t   aord(    (   RS   R«   (    R   RE   T  s    RK   i   c              s     i  d  S(   Ni   (   RS   R   R«   (    (   RS   R«   (    R   RE   `  s    (   R   RA   Rv   RS   R   R   R   R   R«   R   RT   R   R#   t
   ValueErrorR   R"   (   R   RS   R«   RT   (    (   RS   R«   R   t   test_extreme_ordinalsM  s$     c         C   s©  |  i t d d  |  i t d d  |  i t |  i t d d d  |  i t |  i t d d d  |  i d d d  |  i d d d  |  i t |  i d d d  |  i t |  i d d d  |  i d d d  |  i d d d  |  i d	 d d  |  i t |  i d d d
  |  i t |  i d d d  |  i t |  i d d d  |  i t |  i d d d  |  i t |  i d d d  |  i t |  i d d d  d  S(   Ni   iŠ  i   i    i   i   i   iŌ  i`	  i   iŃ  i4  il  i    (   R   RA   R   R   R#   R¬   (   R   (    (    R   t   test_bad_constructor_argumentsf  s"      c         C   s^  |  i d d d  } |  i d d d  } |  i | |  |  i t |  t |   h  | d <} d | | <|  i t |  d  |  i | | d  |  i | | d  |  i d d d  } |  i d d d  } |  i | |  |  i t |  t |   h  | d <} d | | <|  i t |  d  |  i | | d  |  i | | d  d  S(   NiŠ  i   i   i   i   iŃ  (   R   RA   Rc   t   eR   Rb   t   dicRd   (   R   Rc   R°   RÆ   (    (    R   Re   |  s$    

c            sŃ  |  i d d d    |  i d d d  }   | } |  i | i d d t t d d d    |  i | i	 d  |  i | i
 d  t d   t d	  } |  i d d
 d    |  i    |  i d d
 d
   |  i    |  i d d
 d
   |  i    |  i d d
 d   |  i    |  i d d
 d   |  i   | |  i d d
 d   |  i   | |  i d d d   |  i   d | |  i d d
 d   |  i   d | |  i d d
 d
   |  i   |   |  |  i        |  i   |   |  |  i        |  i     | |  |  i        |  i     | |  |  i        xr d D]j  |  i t    d    |  i t    d    |  i t    d    |  i t    d    q W|  i t    d    |  i t    d    |  i t    d    |  i t    d    |  i t    d    |  i t   d    |  i t   d    |  i t   d    d  S(    NiŅ  i   i   i¤  i.   im  i   i    i   i   i   i	   i   i4   iÓ  iŃ  l    f1.0c              s      S(   N(   RS   RX   (    (   RS   RX   (    R   RE   “  s    c              s      S(   N(   RS   RX   (    (   RS   RX   (    R   RE   µ  s    c              s      S(   N(   RX   RS   (    (   RX   RS   (    R   RE   ¶  s    c              s      S(   N(   RX   RS   (    (   RX   RS   (    R   RE   ·  s    c              s      S(   N(   R   RS   (    (   RS   R   (    R   RE   ŗ  s    c              s      S(   N(   R   RS   (    (   RS   R   (    R   RE   ¼  s    c              s      S(   N(   RS   R   (    (   RS   R   (    R   RE   ½  s    c              s      S(   N(   R   RS   (    (   RS   R   (    R   RE   ¾  s    c              s      S(   N(   RS   R   (    (   RS   R   (    R   RE   æ  s    c              s       S(   N(   RS   (    (   RS   (    R   RE   Ą  s    c              s       S(   N(   RS   (    (   RS   (    R   RE   Į  s    c              s       S(   N(   RS   (    (   RS   (    R   RE   Ć  s    (   i   l    f1.0(   R   RA   RS   RT   t   diffR   RK   Rd   RØ   RM   RO   R   R   t   weekRX   R#   RF   (   R   RS   R²   RT   RX   R±   R   (    (   RS   RX   R   R   RW     sN    
-###$##'' c         C   s   |  i i } |  i i | } | | 8} |  i t | i |  |  i t | i	 |  |  i i
 | } | | 7} |  i t | i	 |  |  i t | i |  d  S(   N(   R   RA   Rw   Ry   Rv   R   R#   Rz   R{   R|   R"   (   R   R   Ry   (    (    R   R}   Å  s    

c      
   C   s   d  k  } d \ } } } | i | | | d d d d d d f	  } |  i i |  } |  i
 | i |  |  i
 | i |  |  i
 | i |  d  S(   NiĻ  i	   i   i    i’’’’(   iĻ  i	   i   (   t   timeR   R   R   t   mktimet   tsR   RA   t   fromtimestampRc   R   (   R   Rc   R³   Rµ   R   R   R   (    (    R   t   test_fromtimestampŅ  s    	*c         C   s.   x' d D] } |  i t |  i i |  q Wd  S(   Nf-9.9999999999999997e+199f9.9999999999999997e+199(   f-9.9999999999999997e+199f9.9999999999999997e+199(   t   insaneR   R#   R¬   RA   R¶   (   R   Rø   (    (    R   t   test_insane_fromtimestampŻ  s     c         C   s£   d  k  } x` t d  D]R } |  i i   } | i    } |  i i |  } | | j o Pn | i	 d  q W|  i
 | | j p t | |  t d d  j   d  S(   Ni   f0.10000000000000001RM   f0.5(   R³   RØ   t   dummyR   RA   R   Rµ   R¶   t
   todayagaint   sleepR*   RV   R   (   R   Rŗ   R»   Rµ   R³   R   (    (    R   t
   test_todayę  s    	 c         C   sĒ   xĄ t  d  D]² } |  i |  i d d d |  i   |  |  i |  i d d d |  i   | d  |  i |  i d d d |  i   |  |  i |  i d d d |  i   | d  q Wd  S(   Ni   iŅ  i   i   i   i¤  i   (   RØ   RX   R   R   RA   t   weekdayt
   isoweekday(   R   RX   (    (    R   t   test_weekday  s     )-)c         C   s  xt  d  D]z} |  i d d d |  } |  i | i   d d | d f  |  i d d d  t |  } |  i | i   d d | d f  |  i d d d	 |  } |  i | i   d d
 | d f  |  i d d d |  } |  i | i   d d | d f  |  i d d d  t |  } |  i | i   d d | d f  |  i d d d |  } |  i | i   d d | d f  q Wd  S(   Ni   iÓ  i   i   i4   i   i   iŌ  i   i   iŁ  i   i   i5   iŚ  i   (   RØ   RX   R   RA   Rc   R   t   isocalendarR   (   R   RX   Rc   (    (    R   t   test_isocalendar  s     #####c         C   sŌ   d } t t | i    } | i   g  } x t d  D] } |  i
 d | d d  } |  i
 d | d d  } |  i | i   d | i   d  | i   d d j o | i |  q8 q8 W|  i | |  d  S(	   NsK  
              4   32   60   88
              9   37   65   93
             15   43   71   99
             20   48   76
             26   54   82

            105  133  161  189
            111  139  167  195
            116  144  172
            122  150  178
            128  156  184

            201  229  257  285
            207  235  263  291
            212  240  268  296
            218  246  274
            224  252  280

            303  331  359  387
            308  336  364  392
            314  342  370  398
            320  348  376
            325  353  381
        i  iŠ  i   i   i@  i   i5   (   t   ISO_LONG_YEARS_TABLEt   mapR   t   splitt   iso_long_yearst   sortt   LRØ   RX   R   RA   Rc   t   d1R   RĮ   t   append(   R   RX   RČ   RĘ   RĆ   RÉ   Rc   (    (    R   t   test_iso_long_years  s    
 $c         C   s/   |  i d d d  } |  i | i   d  d  S(   Ni   i   s
   0002-03-02(   R   RA   t   tR   t	   isoformat(   R   RĢ   (    (    R   t   test_isoformatC  s    c         C   s/   |  i d d d  } |  i | i   d  d  S(   NiŅ  i   i   s   Sat Mar  2 00:00:00 2002(   R   RA   RĢ   R   t   ctime(   R   RĢ   (    (    R   t
   test_ctimeG  s    c         C   sĒ   |  i d d d  } |  i | i d  d  |  i | i d  d  |  i | i d d  d d  |  i t | i  |  i t | i d	 d
  |  i t | i d  |  i | i d  d  d  S(   NiÕ  i   i   s   m:%m d:%d y:%ys   m:03 d:02 y:05t    RY   ič  t   onet   twoi*   s	   '%z' '%Z's   '' ''(   R   RA   RĢ   R   t   strftimeR#   RF   (   R   RĢ   (    (    R   t   test_strftimeK  s    !c         C   s}   |  i t |  i i |  i   |  i t |  i i |  i   |  i t |  i i t   |  i |  i i |  i i j  d  S(   N(   R   Ru   R   RA   Rv   R"   Rw   R   (   R   (    (    R   Rx   X  s    c         C   s   |  i i |  i i } | i d d | i d | i } t	 d d |  } |  i | |  |  i |  i i | |  i i  |  i |  i i | |  i i  d  S(   Ni   i  i@B i    (   R   RA   R"   Rv   t   bigRK   RM   RO   R   R   t	   justasbigR   (   R   RÖ   R×   R   (    (    R   t   test_extreme_timedelta^  s    # c         C   sī  xēt  d  D]Ł} |  i d d d |  } | i   } |  i | d d d | d d d | d | d f	  |  i d d d |  } | i   } |  i | d d d | d d d d | d d | d f	  |  i d d d |  } | i   } |  i | d d d | d d d d | d d	 | d f	  |  i | i d  |  i | i	 d  |  i | i
 d |  |  i | i d  |  i | i d  |  i | i d  |  i | i d | d  |  i | i d	 |  |  i | i d  q Wd  S(
   Ni   i¤  i   i   i    i’’’’i    i   i=   (   RØ   RX   R   RA   Rc   t	   timetupleRĢ   R   t   tm_yeart   tm_mont   tm_mdayt   tm_hourt   tm_mint   tm_sect   tm_wdayt   tm_ydayt   tm_isdst(   R   RX   RĢ   Rc   (    (    R   t   test_timetupleh  s(     3;;c         C   sd   d } |  i |   } xH t D]@ \ } } } | i | |  } | i
 |  } |  i | |  q Wd  S(   Ni   i   i   (   i   i   i   (   Rf   R   RA   R3   R5   R6   R7   R8   R9   R:   R;   R<   R   (   R   R8   Rf   R<   R:   R6   R7   R3   (    (    R   Rg     s     c            s2  |  i d d d   |  i d d d  } |  i  | j  |  i  | j  |  i  | j  |  i  | j  |  i  | j   |  i  | j  |  i t  |  d  |  i t |   d  xBd d d f D]1} |  i |   } |  i  | j   |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j   |  i  | j  |  i |  j  |  i t  |  d  |  i t |   d  qį Wxt D]  |  i    j t
  |  i    j t  |  i    j t
  |  i    j t  |  i t    d    |  i t    d	    |  i t    d
    |  i t    d    |  i t    d    |  i t    d    |  i t    d    qWd  S(   Ni   i   i   i    i   i’’’’i   c              s
      j  S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   ¬  s    c              s
      j S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   ­  s    c              s
      j S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   ®  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   Æ  s    c              s
      j  S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   °  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   ±  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   ²  s    (   i   i   i   (   i   i   i   (   i   i   i   (   R   RA   R_   R`   R*   R   RG   Rf   Ri   Rh   Rj   Rk   R#   RF   (   R   Rf   R`   Rh   R_   (    (   Rh   R_   R   Rl     sP      c         C   sń   |  i d d d  } |  i t t | d  |  i t t d |  d t f d     Y} |   } |  i t t | |  d | f d     Y} |   } |  i
 t | |  d	  |  i
 t | |  d	  |  i | | j  |  i | | j  d  S(
   NiŠ  i   i   i   t   AnotherDateTimeClassc           B   s   t  Z d   Z RS(   Nc         C   s   d S(   Ni    (    (   R   t   other(    (    R   t   __cmp__ŗ  s    (   R	   R
   Rę   (    (    (    R   Rä   ¹  s   t
   Comparablec           B   s   t  Z d   Z RS(   Nc         C   s   f  S(   N(    (   R   (    (    R   RŁ   Ń  s    (   R	   R
   RŁ   (    (    (    R   Rē   Š  s   i    (   R   RA   t   ourR#   RF   RG   t   objectRä   t   theirRē   R   R*   (   R   Rē   Rź   Rä   Rč   (    (    R   t   test_mixed_compare“  s    		c         C   s*   |  i |  i i  |  i |  i i  d  S(   N(   R   R*   RA   Rv   R"   (   R   (    (    R   R   Ś  s    c         C   se   |  i } |  i | d d d  i d  d  x0 d D]( } |  i t | | d d  i d  q5 Wd  S(   Nil  i   s   %Yt   1900i1   i3   ic   id   ič  ik  (   i   i1   i3   ic   id   ič  ik  (   R   RA   t   clsR   RŌ   R   R#   R¬   (   R   R   Rķ   (    (    R   t   test_srftime_out_of_rangeß  s
    	% c   
      C   sŽ   |  i }	 d d d g } |	 |   } |  i | | i    d } xl d d d f D][ \ } } | } | | | <|	 |   } | i h  | | <  } |  i | |  | d 7} qP W|	 d	 d d
  } |  i t | i d d d  S(   Ni   i   i   i    R   R   R   i   iŠ  i   iŃ  (   s   yeari   (   s   monthi   (   s   dayi   (   R   RA   Rķ   Rf   t   baseR   t   replaceRX   R   t   newvalt   newargst   expectedt   gotR#   R¬   (
   R   R   RX   Rf   Rń   Rļ   Ró   Rō   Rņ   Rķ   (    (    R   t   test_replaceę  s    	 
c            sÉ   d   i f   d     Y} d
 }   i |   } | | h  d d <  }   i | i |    i | i d    i | i	 d    i | i
   | i
      i | i d	  | i | i d  d  S(   Nt   Cc              s#   t  Z d Z   d   Z d   Z RS(   Ni*   c            s@   | i   } | i d  }   i i |  | |  } | | _ | S(   Nt   extra(   t   kwst   copyt   tempt   popR÷   R   RA   R2   Rķ   Rf   t   result(   Rķ   Rf   Rų   Rś   R÷   Rü   (   R   (    R   R2      s
    	c         C   s   | |  i |  i S(   N(   t   startR   R   R   (   R   Rż   (    (    R   t   newmeth  s    (   R	   R
   t	   theAnswerR2   Rž   (    (   R   (    R   Rö   ż  s   iÓ  i   i   R÷   i   i*   ił’’’(   iÓ  i   i   (   R   RA   Rö   Rf   t   dt1R   R   t	   __class__R’   R÷   R   Rž   R   R   (   R   R   Rf   R   Rö   (    (   R   R   t   test_subclass_dateū  s    c         C   sa   d } t |   } xH t D]@ \ } } } | i | |  } | i	 |  } |  i | |  q Wd  S(   Ni   i   i   (   i   i   i   (   Rf   R   R3   R5   R6   R7   R8   R9   R:   R;   R<   R   R   (   R   R8   Rf   R<   R:   R6   R7   R3   (    (    R   t   test_pickling_subclass_date  s     c         C   s·   d } t |  i t  p | d  } n xL d t d  t d  d f D], } |  i t |  i | d  | | d  qF Wx: t	 d	 d  D]) } |  i | d  t |  | d  q Wd  S(
   Ns
   1995-03-25i   t   9i    i   s   ’i   i   i   (   Rļ   R+   R   RA   R   t   chrt
   month_byteR#   RF   RØ   t   ord_byte(   R   R  Rļ   R  (    (    R   t   test_backdoor_resistance  s    	  (!   R	   R
   R   RA   R^   Rt   RŖ   R­   R®   Re   RW   R}   R·   R¹   R½   RĄ   RĀ   RĖ   RĪ   RŠ   RÕ   Rx   RŲ   Rć   Rg   Rl   Rė   R   Rī   Rõ   R  R  R  (    (    (    R   R     s<   			/				0									'					
			+	&						t   SubclassDatetimec           B   s   t  Z d Z RS(   Ni   (   R	   R
   R   (    (    (    R   R	  6  s   t   TestDateTimec           B   s
  t  Z 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   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 RS(   Nc         C   s¤   |  i d d d d d  } |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i	 d  |  i | i
 d  d  S(   NiŅ  i   i   i   i    (   R   RA   R   R   R   R   R   R   R    R”   R¢   (   R   R   (    (    R   R^   =  s    c         C   sŖ   |  i d d d d d d d  } |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i	 d  |  i | i
 d  d  S(   NiŅ  i   i   i   i;   i@  (   R   RA   R   R   R   R   R   R   R    R”   R¢   (   R   R   (    (    R   t   test_basic_attributes_nonzeroG  s    !c      	   C   sĶ   xĘ |  i d d d d d d d  |  i i   f D] } t |  } |  i | i d   | d	 } t |  } |  i
 | |  |  i | i | i | i | i | i | i | i  } |  i
 | |  q1 Wd  S(
   Ni   i   i   i   i   i   i   s	   datetime.i	   (   R   RA   R-   R   Ro   Rp   R*   Rq   Rr   R   R   R   R   R   R   R    R”   R¢   (   R   Rp   R   R   (    (    R   Rt   S  s    1 
c         C   sö   |  i d d d d d d d  } |  i | i   d  |  i | i d  d  |  i | i d	  d
  |  i t |  d
  |  i d d d  } |  i | i   d  |  i | i d  d  |  i | i d	  d  |  i t |  d  d  S(   Ni   i   i   i   i   i{   s   0002-03-02T04:05:01.000123R   t    s   0002-03-02 04:05:01.000123s   0002-03-02T00:00:00s   0002-03-02 00:00:00(   R   RA   RĢ   R   RĶ   Rm   (   R   RĢ   (    (    R   RĪ   c  s    !c         C   s   d  k  } |  i d d d d d d d  } |  i | i   d  |  i d d d d d d d  } |  i | i   | i | i | i      d  S(	   NiŅ  i   i   i   i   i{   s   Sat Mar  2 18:03:05 2002i   (   R³   R   RA   RĢ   R   RĻ   R“   RŁ   (   R   RĢ   R³   (    (    R   t   test_more_ctimer  s
    	!!c         C   sā   |  i d d d d d d  } |  i d d d d d d  } |  i d d d d d d  } |  i | |  |  i | | j  |  i t d d d	 d
 d
 d  } t d d  } | | } |  i | | |  |  i | | j   d  S(   NiŅ  i   i   i	   i    i
   i   i   i   i;   i>B RO   (
   R   RA   R   R   t   dt3R   Ru   R   R   R]   (   R   R]   R  R   R   (    (    R   t   test_tz_independent_comparing  s    !
c         C   s]   d t  f d     Y} |  i d d d d d d d | d d   } |  i t | i d  d  S(	   Nt   MyTzInfoc           B   s   t  Z d   Z RS(   Nc         C   s    d t  f d     Y} | d  S(   Nt   MyStrc           B   s   t  Z d   Z RS(   Nc         G   s   d  S(   N(   R   (   R   Rf   (    (    R   Rš     s    (   R	   R
   Rš   (    (    (    R   R    s   R   (   Rm   R  (   R   R   R  (    (    R   R     s    (   R	   R
   R   (    (    (    R   R    s   iÕ  i   i   i    R   s   %Z(   R   R  R   RA   RĢ   R#   RF   RŌ   (   R   R  RĢ   (    (    R   t%   test_strftime_with_bad_tzname_replace  s    -c      
   C   s  |  i t d d  |  i t d d  |  i t |  i t d d d  |  i t |  i t d d d  |  i d d d  |  i d d d  |  i t |  i d d d  |  i t |  i d d d  |  i d d d  |  i d d d  |  i d	 d d  |  i t |  i d d d
  |  i t |  i d d d  |  i t |  i d d d  |  i t |  i d d d  |  i t |  i d d d  |  i t |  i d d d  |  i d d d d  |  i d d d d  |  i t |  i d d d d  |  i t |  i d d d d  |  i d d d d d  |  i d d d d d  |  i t |  i d d d d d  |  i t |  i d d d d d  |  i d d d d d d  |  i d d d d d d  |  i t |  i d d d d d d  |  i t |  i d d d d d d  |  i d d d d d d d  |  i d d d d d d d  |  i t |  i d d d d d d d 	 |  i t |  i d d d d d d d 	 d  S(   Ni   iŠ  i   i    i   i   i   iŌ  i`	  i   iŃ  i4  il  i    i   i   i’’’’i   i;   i<   i?B i@B (   R   RA   R   R   R#   R¬   (   R   (    (    R   R®     sH      ""%%c         C   s  |  i d d d d d d  } |  i d d d d d d  } |  i | |  |  i t |  t |   h  | d <} d | | <|  i t |  d  |  i | | d  |  i | | d  |  i d	 d d d
 d d  } |  i d	 d d d
 d d  } |  i | |  |  i t |  t |   h  | d <} d | | <|  i t |  d  |  i | | d  |  i | | d  d  S(   NiŠ  i   i   i   i   i   i   i   iŃ  i    i   (   R   RA   Rc   RÆ   R   Rb   R°   Rd   (   R   Rc   R°   RÆ   (    (    R   Re   Ģ  s$    

c   	   
      s  |  i d d d    |  i d d d  }   | } |  i | i d d t t d d d    |  i | i	 d  |  i | i
 d  |  i d d	 d
 d d    t d d d  } t d d  } t d   t d  } |  i   | |  i d d	 d
 d d   |  i |   |  i d d	 d
 d d   |  i   d | |  i d d	 d	 d	 d   |  i   | |  i d d	 d
 d d   |  i |   |  i d d	 d
 d d   |  i   |   |  |  i   d | |  i d d	 d d d   |  i    |  i d d	 d	 d d   |  i    |  i d d	 d d d   |  i   | |  i d d	 d d d   |  i   | |  i d d
 d d d   |  i   d | |  i d d	 d d d   |  i   d | |  i d d	 d	 d d   |  i   |   |  |  i        |  i   |   |  |  i   |   |  |  i   |   |  |  i        |  i   |   |  |  i   |   |  |  i     | |  |  i        |  i     | |  |  i     | |  |  i     | |  |  i        |  i     | |  |  i     | |  |  i   |  | | |  i d d	 d d d d d   |  i   |  | |   |  | |  |  i   |  | | |  i d d
 d d d d d   |  i   |  | |   |  | |  xr d, D]j  |  i t    d     |  i t    d!    |  i t    d"    |  i t    d#    qVW|  i t    d$    |  i t    d%    |  i t    d&    |  i t    d'    |  i t    d(    |  i t   d)    |  i t   d*    |  i t   d+    d  S(-   NiŅ  i   i   i¤  i.   im  i   i    i   i   i   i   ič  i  i   i   i
   i   i   i   i	   i   i4   iÓ  iŃ  i   i   i;   iX> l    f1.0c              s      S(   N(   RS   RX   (    (   RS   RX   (    R   RE     s    c              s      S(   N(   RS   RX   (    (   RS   RX   (    R   RE     s    c              s      S(   N(   RX   RS   (    (   RX   RS   (    R   RE     s    c              s      S(   N(   RX   RS   (    (   RX   RS   (    R   RE     s    c              s      S(   N(   R   RS   (    (   RS   R   (    R   RE     s    c              s      S(   N(   R   RS   (    (   RS   R   (    R   RE     s    c              s      S(   N(   RS   R   (    (   RS   R   (    R   RE     s    c              s      S(   N(   R   RS   (    (   RS   R   (    R   RE      s    c              s      S(   N(   RS   R   (    (   RS   R   (    R   RE   !  s    c              s       S(   N(   RS   (    (   RS   (    R   RE   "  s    c              s       S(   N(   RS   (    (   RS   (    R   RE   #  s    c              s       S(   N(   RS   (    (   RS   (    R   RE   %  s    (   i   l    f1.0(   R   RA   RS   RT   R±   R   RK   Rd   RØ   RM   RO   R   t   millisecR   R   R²   RX   R#   RF   (	   R   RS   R²   RT   R   RX   R±   R  R   (    (   RS   RX   R   R   RW   ć  s|    
-))-)*-))))--"" c         C   s}   d d d d d d d d f } |  i |   } xH t D]@ \ } } } | i | |  } | i
 |  } |  i | |  q5 Wd  S(	   Ni   i   i   i   i;   i   i@   i   (   Rf   R   RA   R3   R5   R6   R7   R8   R9   R:   R;   R<   R   (   R   R8   Rf   R<   R:   R6   R7   R3   (    (    R   Rg   '  s     c         C   s|   |  i d d d d d d d  } t i |  } t i |  } |  i | i	 d  |  i | i
 d  |  i | i d  d  S(   NiÓ  i   i   i   i0   i%   iŌĘ (   R   RA   RS   t   pickleR9   Rp   R;   RT   R   R   R   R   (   R   RS   RT   Rp   (    (    R   t   test_more_pickling/  s    !c         C   sz   d d d d d d d d f } t |   } xH t D]@ \ } } } | i | |  } | i	 |  } |  i | |  q2 Wd  S(	   Ni   i   i   i   i;   i   i@   i   (   Rf   R	  R3   R5   R6   R7   R8   R9   R:   R;   R<   R   R   (   R   R8   R7   Rf   R<   R:   R6   R3   (    (    R   t   test_pickling_subclass_datetime7  s     c         C   sE  d d d d d d d g } |  i |   } |  i |   } |  i | | j  |  i | | j  |  i | | j  |  i | | j  |  i | | j   |  i | | j  |  i t | |  d  |  i t | |  d  x^t t	 |   D]J} | } | | d	 | | <|  i |   } |  i | | j   |  i | | j  |  i | | j  |  i | | j  |  i | | j  |  i | | j  |  i | | j  |  i | | j  |  i | | j  |  i | | j   |  i | | j  |  i | | j  |  i t | |  d
  |  i t | |  d	  qó Wd  S(   NiŠ  i   i   i   i:   i   i>B i    i   i’’’’(   Rf   R   RA   R_   R`   R*   R   RG   RØ   Rd   RX   Rņ   (   R   RX   Rf   R`   R_   Rņ   (    (    R   t   test_more_compare?  s<     c         C   s   |  i | i | i  |  i | i | i  |  i | i | i	  |  i | i
 | i  |  i | i | i  |  i | i | i  d  S(   N(   R   R   Ró   RŚ   Rō   R   RŪ   R   RÜ   R   RŻ   R   RŽ   R    Rß   R”   (   R   Ró   Rō   (    (    R   t   verify_field_equalityd  s    c         C   sJ   d  k  } | i    } | i |  } |  i i |  } |  i | |  d  S(   N(	   R³   Rµ   t	   localtimeRó   R   RA   R¶   Rō   R  (   R   Ró   Rō   Rµ   R³   (    (    R   R·   l  s
    	c         C   sJ   d  k  } | i    } | i |  } |  i i |  } |  i | |  d  S(   N(	   R³   Rµ   t   gmtimeRó   R   RA   t   utcfromtimestampRō   R  (   R   Ró   Rō   Rµ   R³   (    (    R   t   test_utcfromtimestampt  s
    	c         C   s,   |  i |  i i d  |  i i d   d  S(   Nf0.99999990000000005i   (   R   t   assertEqualsRA   R¶   (   R   (    (    R   R   |  s    c         C   s.   x' d D] } |  i t |  i i |  q Wd  S(   Nf-9.9999999999999997e+199f9.9999999999999997e+199(   f-9.9999999999999997e+199f9.9999999999999997e+199(   Rø   R   R#   R¬   RA   R¶   (   R   Rø   (    (    R   R¹     s     c         C   s.   x' d D] } |  i t |  i i |  q Wd  S(   Nf-9.9999999999999997e+199f9.9999999999999997e+199(   f-9.9999999999999997e+199f9.9999999999999997e+199(   Rø   R   R#   R¬   RA   R  (   R   Rø   (    (    R   t   test_insane_utcfromtimestamp  s     c         C   s   d  k  } t d d  } xW t d  D]I } |  i i   } |  i i	 | i     } t | |  | j o Pq% q% W|  i t | |  | j  d  S(   NRM   i   i   (   R³   R   t	   toleranceRØ   Rŗ   R   RA   t   utcnowt   from_nowR  t   from_timestampRV   R*   (   R   Rŗ   R"  R³   R  R!  (    (    R   t   test_utcnow  s    	 	c         C   s  |  i d d d d d d  } |  i | i   d  |  i | i   | i | i | i | i | i	 | i
 | i   | i   t | i d
 d
  i   d
 d	 f	  | 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   t | i d
 d
  i   d
  |  i | i d	  d  S(   NiŌ  i   i   i   i   i!   i   in  i’’’’i   (	   iŌ  i   i   i   i   i!   i   in  i’’’’(   R   RA   RĢ   R   RŁ   R   R   R   R   R    R”   R¾   R   R   t   ttRŚ   RŪ   RÜ   RŻ   RŽ   Rß   Rą   Rį   Rā   (   R   R$  RĢ   (    (    R   t   test_more_timetuple¢  s    ]6c         C   s;   |  i d d d d d d  } |  i | i d  d  d  S(	   NiŌ  i   i   i   i   i!   s   %m %d %y %S %M %H %js   12 31 04 33 22 06 366(   R   RA   RĢ   R   RŌ   (   R   RĢ   (    (    R   t   test_more_strftimeø  s    c         C   sl   |  i d d d d d d d  } |  i | i   t d d d   |  i | i   t d d d d   d  S(   NiŅ  i   i   i   i-   iŅ  (   R   RA   R   R   R   R³   (   R   R   (    (    R   t   test_extract¾  s    !"c         C   sU  t  d d d  } t d d d d  } |  i d d d d d d d  } |  i i } | | |  } |  i	 | |  | d | d |  } |  i	 | |  |  i	 | | i     |  i	 | | i    |  i	 | | | i    | i     |  i
 t |  |  i
 t | |  |  i
 t | | |  |  i
 t | | | d	  |  i
 t | d d  d  S(
   NiŅ  i   i   i   i-   iŅ  R³   R   i   (   R   Rc   R³   RĢ   R   RA   Ró   t   combineR   R   R#   RF   (   R   Rc   Ró   R(  RĢ   R   (    (    R   t   test_combineĆ  s     !%c   
      C   sö   |  i }	 d d d d d d d g } |	 |   } |  i | | i    d } xx d d d d d d d f D][ \ } } | } | | | <|	 |   } | i h  | | <  } |  i | |  | d 7} qh W|	 d d d  } |  i t | i d	 d d  S(   Ni   i   i   i   i   i   i   i    R   R   R   R   R    R”   R¢   i   iŠ  i   iŃ  (   s   yeari   (   s   monthi   (   s   dayi   (   s   houri   (   s   minutei   (   s   secondi   (   s   microsecondi   (   R   RA   Rķ   Rf   Rļ   R   Rš   RX   R   Rń   Rņ   Ró   Rō   R#   R¬   (
   R   R   RX   Rf   Rń   Rļ   Ró   Rō   Rņ   Rķ   (    (    R   Rõ   Ų  s    	 
c         C   sż   |  i i   } t d d  } |  i t | i  |  i t | i | |  |  i t | i |  |  i t	 | i |  |  i t	 | i d | d t
 f d     Y} |   } |  i t	 | i |  d t
 f d     Y} |   } |  i t	 | i |  d  S(   Ni,   RŃ   t   tzt   Bogusc           B   s   t  Z d   Z d   Z RS(   Nc         C   s   d  S(   N(   R   (   R   R   (    (    R   R   ż  s    c         C   s
   t  d  S(   Ni    (   R   (   R   R   (    (    R   R   ž  s    (   R	   R
   R   R   (    (    (    R   R+  ü  s   	t	   AlsoBogusc           B   s   t  Z d   Z d   Z RS(   Nc         C   s
   t  d  S(   Ni    (   R   (   R   R   (    (    R   R     s    c         C   s   d  S(   N(   R   (   R   R   (    (    R   R     s    (   R	   R
   R   R   (    (    (    R   R,    s   	(   R   RA   R-   R   R   t   fR#   RF   t
   astimezoneR¬   R    R+  t   bogR,  t   alsobog(   R   R-  R0  R,  R+  R   R/  (    (    R   t   test_astimezoneń  s    		c            sŠ   d   i f   d     Y} d }   i |   } | | h  d	 d
 <  }   i | i |    i | i d    i | i	 d
    i | i
   | i
      i | i d  | i | i | i d
  d  S(   NRö   c              s#   t  Z d Z   d   Z d   Z RS(   Ni*   c            s@   | i   } | i d  }   i i |  | |  } | | _ | S(   NR÷   (   Rų   Rł   Rś   Rū   R÷   R   RA   R2   Rķ   Rf   Rü   (   Rķ   Rf   Rų   Rś   R÷   Rü   (   R   (    R   R2     s
    	c         C   s   | |  i |  i |  i S(   N(   Rż   R   R   R   R”   (   R   Rż   (    (    R   Rž     s    (   R	   R
   R’   R2   Rž   (    (   R   (    R   Rö   
  s   iÓ  i   i   i   i   i)   R÷   i   i*   ił’’’(   iÓ  i   i   i   i   i)   (   R   RA   Rö   Rf   R   R   R   R  R’   R÷   R   Rž   R   R   R”   (   R   R   Rf   R   Rö   (    (   R   R   t   test_subclass_datetime  s    (    R	   R
   R   RA   R^   R  Rt   RĪ   R  R  R  R®   Re   RW   Rg   R  R  R  R  R·   R  R   R¹   R  R#  R%  R&  R'  R)  Rõ   R1  R2  (    (    (    R   R
  9  s:   	
							-		D				%															t   SubclassTimec           B   s   t  Z d Z RS(   Ni   (   R	   R
   R   (    (    (    R   R3  #  s   t   TestTimec           B   s   t  Z 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   Z RS(   Nc         C   sb   |  i d d  } |  i | i d  |  i | i d  |  i | i d  |  i | i d  d  S(   Ni   i    (   R   RA   RĢ   R   R   R    R”   R¢   (   R   RĢ   (    (    R   R^   *  s
    c         C   sh   |  i d d d d  } |  i | i d  |  i | i d  |  i | i d  |  i | i d  d  S(   Ni   i;   i@  (   R   RA   RĢ   R   R   R    R”   R¢   (   R   RĢ   (    (    R   R  1  s
    c         C   s   |  i d d d d  } t |  } |  i | i d   | d } t |  } |  i	 | |  |  i | i
 | i | i | i  } |  i	 | |  d  S(   Ni   i   i   i   s	   datetime.i	   (   R   RA   RĢ   Ro   Rp   R*   Rq   Rr   R`   R   R   R    R”   R¢   (   R   R`   Rp   RĢ   (    (    R   Rt   :  s    
c            sm  d d d d g } |  i |    |  i |   } |  i  | j  |  i  | j  |  i  | j  |  i  | j  |  i  | j   |  i  | j  |  i t  |  d  |  i t |   d  x^t t	 |   D]J} | } | | d | | <|  i |   } |  i  | j   |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j  |  i  | j  |  i |  j   |  i  | j  |  i |  j  |  i t  |  d  |  i t |   d  qź Wx.t D]&  |  i    j t  |  i    j t  |  i    j t  |  i    j t  |  i t    d    |  i t    d    |  i t    d	    |  i t    d
    |  i t    d    |  i t    d    |  i t    d    |  i t    d    q?Wd  S(   Ni   i   i   i   i    i’’’’c              s
      j S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   o  s    c              s
      j  S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   p  s    c              s
      j S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   q  s    c              s
      j S(   N(   R_   Rh   (    (   Rh   R_   (    R   RE   r  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   s  s    c              s
      j  S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   t  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   u  s    c              s
      j S(   N(   Rh   R_   (    (   Rh   R_   (    R   RE   v  s    (   Rf   R   RA   R_   R`   R*   R   RG   RØ   Rd   RX   Rņ   Ri   Rh   Rj   Rk   R#   RF   (   R   RX   Rf   R`   Rh   R_   Rņ   (    (   Rh   R_   R   t   test_comparingI  sX      c         C   sp  |  i d d  |  i d d  |  i t |  i d d  |  i t |  i d d  |  i d d  |  i d d  |  i t |  i d d  |  i t |  i d d  |  i d d d  |  i d d d  |  i t |  i d d d  |  i t |  i d d d  |  i d d d d  |  i d d d d  |  i t |  i d d d d  |  i t |  i d d d d  d  S(	   Ni    i   i’’’’i   i;   i<   i?B i@B (   R   RA   R#   R¬   (   R   (    (    R   R®   x  s     c         C   s^  |  i d d d  } |  i d d d  } |  i | |  |  i t |  t |   h  | d <} d | | <|  i t |  d  |  i | | d  |  i | | d  |  i d d d  } |  i d d d  } |  i | |  |  i t |  t |   h  | d <} d | | <|  i t |  d  |  i | | d  |  i | | d  d  S(   Ni   i   i   i   i   i    i   (   R   RA   Rc   RÆ   R   Rb   R°   Rd   (   R   Rc   R°   RÆ   (    (    R   Re     s$    

c         C   s$  |  i d d d d  } |  i | i   d  |  i | i   t |   |  i   } |  i | i   d  |  i | i   t |   |  i d d  } |  i | i   d  |  i | i   t |   |  i d d	  } |  i | i   d
  |  i | i   t |   |  i d d  } |  i | i   d  |  i | i   t |   |  i d d  } |  i | i   d  |  i | i   t |   |  i d d  } |  i | i   d  |  i | i   t |   |  i d d  } |  i | i   d  |  i | i   t |   d  S(   Ni   i   i   i{   s   04:05:01.000123s   00:00:00R¢   s   00:00:00.000001i
   s   00:00:00.000010id   s   00:00:00.000100ič  s   00:00:00.001000i'  s   00:00:00.010000i  s   00:00:00.100000(   R   RA   RĢ   R   RĶ   Rm   (   R   RĢ   (    (    R   RĪ   „  s0    c         C   sN   |  i d d d d  } |  i | i d  d  |  i | i d  d  d  S(	   Ni   i   i   i   s   %H %M %Ss   01 02 03s	   '%z' '%Z's   '' ''(   R   RA   RĢ   R   RŌ   (   R   RĢ   (    (    R   RÕ   Ę  s    c         C   sĢ   |  i t |  i d d d d   d  |  i t |  i d d d d   d  |  i t |  i d	 d d d
   d  |  i t |  i d d d d	   d  |  i t |  i d d d	 d	   d  d  S(   Ni   i   i   i   s   01:02:03.000004i
   i   s   10:02:03.004000i    i s   00:02:03.400000i   s   12:02:03i   i   s   23:15:00(   R   R   Rm   RA   (   R   (    (    R   Rn   Ģ  s
    ((((c         C   sš   d |  i i } |  i t |  i d d d d   d |  |  i t |  i d d d d   d	 |  |  i t |  i d
 d d d   d |  |  i t |  i d d d d
   d |  |  i t |  i d d d
 d
   d |  d  S(   Ns	   datetime.i   i   i   i   s   %s(1, 2, 3, 4)i
   i   s   %s(10, 2, 3, 4000)i    i s   %s(0, 2, 3, 400000)i   s   %s(12, 2, 3)i   i   s
   %s(23, 15)(   R   RA   R	   R   R   Ro   (   R   R   (    (    R   t	   test_reprÓ  s    !!!!!c         C   s}   |  i t |  i i |  i   |  i t |  i i |  i   |  i t |  i i t   |  i |  i i |  i i j  d  S(   N(   R   Ru   R   RA   Rv   R"   Rw   R   (   R   (    (    R   Rx   ą  s    c         C   st   d d d d d f } |  i |   } xH t D]@ \ } } } | i | |  } | i
 |  } |  i | |  q, Wd  S(   Ni   i;   i   i@   i   (   Rf   R   RA   R3   R5   R6   R7   R8   R9   R:   R;   R<   R   (   R   R8   Rf   R<   R:   R6   R7   R3   (    (    R   Rg   ę  s     c         C   sq   d d d d d f } t |   } xH t D]@ \ } } } | i | |  } | i	 |  } |  i | |  q) Wd  S(   Ni   i;   i   i@   i   (   Rf   R3  R3   R5   R6   R7   R8   R9   R:   R;   R<   R   R   (   R   R8   R7   Rf   R<   R:   R6   R3   (    (    R   t   test_pickling_subclass_timeī  s     c         C   s   |  i } |  i | d   |  i | d d   |  i | d d d   |  i | d d d d   |  i | d   |  i |    d  S(   Ni   i    (   R   RA   Rķ   R*   (   R   Rķ   (    (    R   R   ö  s    	c   
      C   s)  |  i }	 d d d d g } |	 |   } |  i | | i    d } xo d d d d f D][ \ } } | } | | | <|	 |   } | i h  | | <  } |  i | |  | d 7} qV W|	 d  } |  i t | i d d |  i t | i d d |  i t | i d
 d |  i t | i d d d  S(   Ni   i   i   i   i    R   i   R    i   R”   i   R¢   i   i   i’’’’id   i@B (   s   houri   (   s   minutei   (   s   secondi   (   s   microsecondi   (   R   RA   Rķ   Rf   Rļ   R   Rš   RX   R   Rń   Rņ   Ró   Rō   R#   R¬   (
   R   R   RX   Rf   Rń   Rļ   Ró   Rō   Rņ   Rķ   (    (    R   Rõ   ’  s$    	 
c            sÉ   d   i f   d     Y} d
 }   i |   } | | h  d d <  }   i | i |    i | i d    i | i	 d    i | i
   | i
      i | i d	  | i | i d  d  S(   NRö   c              s#   t  Z d Z   d   Z d   Z RS(   Ni*   c            s@   | i   } | i d  }   i i |  | |  } | | _ | S(   NR÷   (   Rų   Rł   Rś   Rū   R÷   R   RA   R2   Rķ   Rf   Rü   (   Rķ   Rf   Rų   Rś   R÷   Rü   (   R   (    R   R2     s
    	c         C   s   | |  i |  i S(   N(   Rż   R   R   R”   (   R   Rż   (    (    R   Rž   $  s    (   R	   R
   R’   R2   Rž   (    (   R   (    R   Rö     s   i   i   i   R÷   i   i*   ił’’’(   i   i   i   (   R   RA   Rö   Rf   R   R   R   R  R’   R÷   RĶ   Rž   R   R”   (   R   R   Rf   R   Rö   (    (   R   R   t   test_subclass_time  s    (   R	   R
   R³   RA   R^   R  Rt   R5  R®   Re   RĪ   RÕ   Rn   R6  Rx   Rg   R7  R   Rõ   R8  (    (    (    R   R4  &  s"   					/			!									t
   TZInfoBasec           B   s5   t  Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         C   s½   |  i } d t f d     Y} | d d d d |   } | t j o d p d } |  i | i	   |  t
 d	 | t j o d
 p d  } |  i | i   |  |  i | i   |  d  S(   Nt   introspectivec           B   s    t  Z d   Z d   Z e Z RS(   Nc         C   s   | o d p d S(   Nt   realt   none(   R   (   R   R   (    (    R   R   ;  s    c         C   s   t  d | o d p d  S(   NR   i*   iÖ’’’(   R   R   (   R   R   (    (    R   R   <  s    (   R	   R
   R   R   R   (    (    (    R   R:  :  s   		i   i   i   R    R<  R;  R   iÖ’’’i*   (   R   RA   Rķ   R    R:  t   objR³   Ró   R   R   R   R   R   (   R   R=  R:  Ró   Rķ   (    (    R   t   test_argument_passing7  s    	#c         C   s®   |  i } |  i t | d d d d d d t f d     Y} |  i t | d d d d | d t f d     Y} |   } | d d d d | } |  i | i | j  d  S(   Ni   R    i   t   NiceTryc           B   s   t  Z d   Z d   Z RS(   Nc         C   s   d  S(   N(    (   R   (    (    R   R   N  s    c         C   s   d  S(   N(    (   R   R   (    (    R   R   O  s    (   R	   R
   R   R   (    (    (    R   R?  M  s   	t	   BetterTryc           B   s   t  Z d   Z d   Z RS(   Nc         C   s   d  S(   N(    (   R   (    (    R   R   S  s    c         C   s   d  S(   N(    (   R   R   (    (    R   R   T  s    (   R	   R
   R   R   (    (    (    R   R@  R  s   	(   R   RA   Rķ   R#   RF   Ré   R?  R    R@  RT   RĢ   R*   (   R   R@  R?  RT   RĢ   Rķ   (    (    R   t   test_bad_tzinfo_classesI  s    		c   
      C   sv  d t  f d     Y} |  i }	 xPd t f d t f d t f d t f f D]$\ } } |	 t	 j o" |	 d d d	 d
 | |  } nJ |	 t j o+ |	 d d d d d d	 d
 | |  } n d p
 t d  | o t |  } t | d  \ } } d | d j  o d p d | | f } t | t  o | i   } n |  i t |  d |  qJ |  i t t |  qJ Wd  S(   Nt   Edgyc           B   s   t  Z d   Z d   Z RS(   Nc         C   s   t  d |  |  _ d  S(   NR   (   R   R   R   (   R   R   (    (    R   R   [  s    c         C   s   |  i S(   N(   R   R   (   R   R   (    (    R   R   ]  s    (   R	   R
   R   R   (    (    (    R   RB  Z  s   	i`ś’’iaś’’i  i   i   i   i   R    i   i    t
   impossiblei<   s   %c%02d:%02dt   -t   +s   01:02:03(   R    RB  R   RA   Rķ   Rj   Rk   R   t   legitR³   RĢ   R   t   AssertionErrorRV   t   aofst   divmodt   hR   t   tagR   t   timetzR   Rm   R#   R¬   (
   R   RJ  R   RB  RH  RĢ   R   RK  RF  Rķ   (    (    R   t   test_utc_offset_out_of_boundsY  s"    	+ "+'c         C   sX  |  i } d t f d     Y} x | d d d  | d d d d d  | d d d d |   f D]Q } |  i | i   d  j  |  i | i	   d  j  |  i | i
   d  j  qb Wd t f d     Y} | d d d d |   } |  i | i   t d d   |  i | i	   t d d	   |  i | i
   d
  d t f d     Y} | d d d d |   } |  i t | i  |  i t | i	  |  i t | i
  d t f d     Y} | d d d d |   } |  i t | i  |  i t | i	  d t f d     Y} | d d d d |   } |  i t | i  |  i t | i	  d  S(   Nt   C1c           B   s#   t  Z d   Z d   Z d   Z RS(   Nc         C   s   d  S(   N(   R   (   R   R   (    (    R   R   x  s    c         C   s   d  S(   N(   R   (   R   R   (    (    R   R   y  s    c         C   s   d  S(   N(   R   (   R   R   (    (    R   R   z  s    (   R	   R
   R   R   R   (    (    (    R   RN  w  s   		i   R    t   C3c           B   s#   t  Z d   Z d   Z d   Z RS(   Nc         C   s   t  d d  S(   NR   iaś’’(   R   (   R   R   (    (    R   R     s    c         C   s   t  d d  S(   NR   i  (   R   (   R   R   (    (    R   R     s    c         C   s   d S(   Nt   aname(    (   R   R   (    (    R   R     s    (   R	   R
   R   R   R   (    (    (    R   RO    s   		R   iaś’’i  RP  t   C4c           B   s#   t  Z d   Z d   Z d   Z RS(   Nc         C   s   d S(   NRP  (    (   R   R   (    (    R   R     s    c         C   s   d S(   Ni   (    (   R   R   (    (    R   R     s    c         C   s   d S(   Ni    (    (   R   R   (    (    R   R     s    (   R	   R
   R   R   R   (    (    (    R   RQ    s   		t   C6c           B   s   t  Z d   Z d   Z RS(   Nc         C   s   t  d d  S(   NRL   ič’’’(   R   (   R   R   (    (    R   R     s    c         C   s   t  d d  S(   NRL   i   (   R   (   R   R   (    (    R   R     s    (   R	   R
   R   R   (    (    (    R   RR    s   	t   C7c           B   s   t  Z d   Z d   Z RS(   Nc         C   s   t  d d  S(   NRM   i=   (   R   (   R   R   (    (    R   R     s    c         C   s   t  d d  S(   NRO   iÆ’’’(   R   (   R   R   (    (    R   R      s    (   R	   R
   R   R   (    (    (    R   RS    s   	(   R   RA   Rķ   R    RN  R   RĢ   R*   R   R   R   RO  R   R   RQ  R#   RF   RR  R¬   RS  (   R   RO  RĢ   RN  RQ  RS  RR  Rķ   (    (    R   t   test_tzinfo_classesu  s2    	C c         C   s(  |  i } d t f d     Y}
 | d d d d |
   } | i d d  }	 | i d d  } | i d d	  } xe |	 | | f D]T } xK |	 | | f D]: } t | |  } t | i | i  } |  i | |  q Wq W| t j	 o?| i d d d |
    }	 | i d d d |
    } | i d d	 d |
    } xė |	 | | f D]Ö } xĶ |	 | | f D]¼ } t | |  } | |	 j p | | j o$ | |	 j p | | j o
 d
 } nZ | | j o
 | j n o
 d
 } n2 | | j o
 d } n | | j p t  d } |  i | |  q\WqFWn d  S(   Nt   OperandDependentOffsetc           B   s   t  Z d   Z RS(   Nc         C   s5   | i d j  o t d | i  Sn t d d  Sd  S(   Ni
   R   i;   (   RĢ   R    R   (   R   RĢ   (    (    R   R   «  s    (   R	   R
   R   (    (    (    R   RU  Ŗ  s   i   i	   i
   R    R    i   i   i    i’’’’i   (   R   RA   Rķ   R    RU  Rļ   Rš   t   d0RÉ   R¤   RY   R   RG   Rō   R    Ró   R   R³   RG  (   R   RÉ   R   Rļ   Ró   Rō   RY   Rķ   R¤   RV  RU  (    (    R   t   test_aware_compare„  s>    		    4


(   R	   R
   R>  RA  RM  RT  RW  (    (    (    R   R9  5  s
   				0t
   TestTimeTZc           B   sV   t  Z e Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(	   Nc         C   sr   |  i   } |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i	 d  j  d  S(   Ni    (   R   RA   RĢ   R   R   R    R”   R¢   R*   R    R   (   R   RĢ   (    (    R   t
   test_emptyŲ  s    c            s£  t  d d d  } t  d d d  } t  d d d	  } t d
 d d | }
 t d d d | } t d d d | }	 t d d    t d d d |   |  i |
 i |  |  i | i |  |  i |	 i |  |  i   i d  j  |  i  i |  |  i |
 i   t d d   |  i | i   t d d   |  i |	 i   t d d   |  i   i   d  j  |  i t |
 i d  |  i |
 i   d  |  i | i   d  |  i |	 i   d  |  i   i   d  j  |  i t |
 i d  |  i |
 i   t d d   |  i | i   t d d   |  i |	 i   t d d	   |  i   i   d  j  |  i t |
 i d  |  i t |
  t |   |  i t |
  t |	   |  i t |  t |	   |  i |
 |  |  i |
 |	  |  i | |	  |  i t    d    |  i t    d    |  i t    d    |  i t |
  d  |  i t |  d  |  i t |	  d  |  i t    d  |  i t   d  |  i |
 i   d  |  i | i   d  |  i |	 i   d  |  i   i   d  |  i  i   d  d } |  i t |
  | d  |  i t |  | d  |  i t |	  | d  |  i t    | d  |  i t   | d   |  i |
 i d!  d"  |  i | i d#  d$  |  i |	 i d#  d%  t  d& d'  } t d( d) d | }
 |  i |
 i d*  d+  d, t f d-     Y} t d. d	 d/ d |   } |  i | i d0  d1  |  i t | i d2  d  S(3   NiŌž’’t   ESTi   i    t   UTCiž’’’i<   t   METi   i   i/   R    i   i   R¢   i(   R   s   no argsc              s
      j S(   N(   R   t   t5(    (   R   R]  (    R   RE   	  s    c              s
      j  S(   N(   R   R]  (    (   R   R]  (    R   RE   
  s    c              s
      j  S(   N(   R]  R   (    (   R   R]  (    R   RE     s    s   07:47:00-05:00s   12:47:00+00:00s   13:47:00+01:00s   00:00:00.000040s   00:00:00.000040+00:00s   datetime.times   (7, 47, tzinfo=est)s   (12, 47, tzinfo=utc)s   (13, 47, tzinfo=met)s   (0, 0, 0, 40)s   (0, 0, 0, 40, tzinfo=utc)s   %H:%M:%S %%Z=%Z %%z=%zs   07:47:00 %Z=EST %z=-0500s   %H:%M:%S %Z %zs   12:47:00 UTC +0000s   13:47:00 MET +0100iaś’’s   %z %Z %%z%%Zi   i;   s   %H:%M %%Z='%Z' %%z='%z's"   23:59 %Z='%z %Z %%z%%Z' %z='-2359't	   Badtznamec           B   s   t  Z d   Z RS(   Nc         C   s   d S(   Ni*   (    (   R   R   (    (    R   R   ,  s    (   R	   R
   R   (    (    (    R   R^  +  s   i   i   s   %H:%M:%Ss   02:03:04s   %Z(   R   t   estt   utct   metR³   R_   R`   R   R   R]  R   R   R    R*   R   R   R   R#   RF   R   R   Rb   Rm   RĶ   Rc   Ro   RŌ   t   yuckR^  RĢ   (   R   Rb  R_  Ra  R`  Rc   R   R]  R`   R   R_   R^  RĢ   (    (   R   R]  R   t
   test_zonesą  s    c      	   C   sŲ   |  i d d d d d t d d  } |  i d d d d d t d d  } |  i t |  t |   |  i d	 d
 d d d t d d  } |  i d	 d d d d t d d  } |  i t |  t |   d  S(   Ni    i   i   i   R    i  RŃ   i  i   i:   i   id   iü’’i0   iü’’(   R   RA   R   R_   R`   R   Rb   (   R   R`   R_   (    (    R   t   test_hash_edge_cases1  s    ''''c   	      C   s7  d d d d d f } |  i |   } xH t D]@ \ } } } | i | |  } | i
 |  } |  i | |  q, Wt d d  } |  i d d	 d
 d | } x t D] \ } } } | i | |  } | i
 |  } |  i | |  |  i t | i t   |  i | i   t d d   |  i | i   d  q” Wd  S(   Ni   i;   i   i@   i   iŌž’’R>   i   i   i   R    R   (   Rf   R   RA   R3   R5   R6   R7   R8   R9   R:   R;   R<   R   R   t   tinfoR*   R   R    R   R   R   (	   R   R8   Rf   R<   R:   Re  R6   R7   R3   (    (    R   Rg   ;  s"      c            sT  |  i } | d d t d d    |  i    | d d t d d    |  i    | d d t d d    |  i    | d d d t d d	 d d    |  i    | d d t d d	 d d    |  i    | d d t d
 d	 d    |  i t   d    | d d t d d	 d    |  i t   d    d  S(   Ni    R    iŌž’’RŃ   i   i,  i   i;   i<   i   c              s
   t     S(   N(   t   boolRĢ   (    (   RĢ   (    R   RE   e  s    ič’’’c              s
   t     S(   N(   Rf  RĢ   (    (   RĢ   (    R   RE   i  s    (   R   RA   Rķ   R   RĢ   R*   R#   R¬   (   R   RĢ   Rķ   (    (   RĢ   R   t   test_more_boolO  s    	&#c         C   sī  |  i } t d d  } t t d d  d  } d d d d	 | g } | |   } |  i	 | | i
    d
 } xx d d d d d | f f D][ \ } } | } | | | <| |   }	 | i
 h  | | <  }
 |  i	 |	 |
  | d 7} q W|  i	 | i   d  | i
 d d   } |  i | i d  j  |  i | i   d  j  | i
 d |  } |  i	 | |  |  i | i | i j  | d  } |  i t | i
 d d |  i t | i
 d d |  i t | i
 d d |  i t | i
 d d d  S(   Nid   s   +100R   i8’’’s   -200i   i   i   i   i    R   i   R    i   R”   i   R¢   i   R    i   i’’’’i@B (   s   houri   (   s   minutei   (   s   secondi   (   s   microsecondi   (   R   RA   Rķ   R   t   z100R   t   zm200Rf   Rļ   R   Rš   RX   R   Rń   Rņ   Ró   Rō   R   R   t   base2R*   R    t   base3R#   R¬   (   R   Rk  R   RX   Rf   Rń   Rj  Rh  Ri  Ró   Rō   Rņ   Rļ   Rķ   (    (    R   Rõ   k  s6    	 
c            sr  t  d d d   t  d d d    |  i       i d d     |  i       i d t d  d     |  i       i d t d d     |  i t	    d    d t
 f d	     Y} |   }   i d |     i d |    |  i  i   t d
 d   |  i   i   t d
 d   |  i       i d |      |  i    j   d  S(   Ni   i   i   R    RŃ   i    c              s
      j S(   N(   R_   R`   (    (   R`   R_   (    R   RE     s    t   Variesc           B   s   t  Z d   Z d   Z RS(   Nc         C   s   t  d d  |  _ d  S(   NR   i   (   R   R   R   (   R   (    (    R   R     s    c         C   s   |  i t d d  7_ |  i S(   NR   i   (   R   R   R   (   R   RĢ   (    (    R   R   ”  s    (   R	   R
   R   R   (    (    (    R   Rl    s   	R   i   i   (   R³   R_   R`   R   R   Rš   R   R   R#   RF   R    Rl  t   vR   R   R*   (   R   Rm  R`   R_   Rl  (    (   R`   R_   R   Rė     s$    	c            sä   d   i f   d     Y} d d d d t d d d	  f }   i |   } | | h  d
 d <  }   i | i |    i | i	 d    i | i
 d    i | i   | i      i | i d  | i | i d  d  S(   NRö   c              s#   t  Z d Z   d   Z d   Z RS(   Ni*   c            s@   | i   } | i d  }   i i |  | |  } | | _ | S(   NR÷   (   Rų   Rł   Rś   Rū   R÷   R   RA   R2   Rķ   Rf   Rü   (   Rķ   Rf   Rų   Rś   R÷   Rü   (   R   (    R   R2   µ  s
    	c         C   s   | |  i |  i S(   N(   Rż   R   R   R”   (   R   Rż   (    (    R   Rž   ¼  s    (   R	   R
   R’   R2   Rž   (    (   R   (    R   Rö   ²  s   i   i   i   iō  iŌž’’RZ  i   R÷   i   i*   ił’’’(   R   RA   Rö   R   Rf   R   R   R   R  R’   R÷   R   Rž   R   R”   (   R   Rö   Rf   R   R   (    (   R   R   t   test_subclass_timetz°  s    !(   R	   R
   R³   RA   RY  Rc  Rd  Rg   Rg  Rõ   Rė   Rn  (    (    (    R   RX  Õ  s   		Q	
			'	t   TestDateTimeTZc           B   sĀ   t  Z 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   Z d   Z d   Z d   Z d   Z RS(   Nc         C   s½   |  i d d d d d d d  } |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i	 d  |  i | i
 d  |  i | i d   d  S(   Ni   i   i   i   i   i   i   (   R   RA   R   R   R   R   R   R   R    R”   R¢   R    R   (   R   R   (    (    R   t   test_trivialŠ  s    !c            sO  |  i d d d d t d d   |  i t d d d d d d	 d t d
 d    |  i    j   |  i    j  |  i    j  |  i   j  |  i     j  |  i d d d d d d t d d   |  i d d d d d d t d d d d d    |  i     |  i d d d d d d t d d   |  i    j  |  i d d d d d d t d d   |  i    j   |  i d d d d d d t d d  d d  |  i    j  |  i d d d d d d t d d  d d  |  i    j  |  i i   |  i	 t
    d    |  i      d t f d     Y} |  i d d d d |     |  i	 t
    d    |  i      |  i d d d   |  i     d t f d     Y} |  i d d d d |    |  i d d d d t d d    |  i	 t    d    d  S(   Ni   R    i  RŃ   i   i   i   i;   i?B iaś’’i   i   i   i<   i    R”   R¢   c              s
      j S(   N(   R_   R`   (    (   R`   R_   (    R   RE   	  s    t   Naivec           B   s   t  Z d   Z RS(   Nc         C   s   d  S(   N(   R   (   R   R   (    (    R   R   	  s    (   R	   R
   R   (    (    (    R   Rq  
	  s   i   i   i   c              s
      j S(   N(   R_   R`   (    (   R`   R_   (    R   RE   	  s    R+  c           B   s   t  Z d   Z RS(   Nc         C   s   t  d d  S(   NR   i   (   R   (   R   R   (    (    R   R   	  s    (   R	   R
   R   (    (    (    R   R+  	  s   c              s
      j S(   N(   R_   R`   (    (   R`   R_   (    R   RE   	  s    (   R   RA   R   R_   R   R`   R*   R   Rv   R#   RF   R    Rq  R+  R¬   (   R   R`   R_   R+  Rq  (    (   R`   R_   R   t   test_even_more_compareŪ  sD    $*6**$$$c   	   	   C   sg  d d d d d d d d f } |  i |   } xH t D]@ \ } } } | i | |  } | i
 |  } |  i | |  q5 Wt d	 d
  } |  i | h  d | <  } |  i d d d d t d d d  } x t D] \ } } } | i | |  } | i
 |  } |  i | |  |  i t | i t   |  i | i   t d d	   |  i | i   d
  qŃ Wd  S(   Ni   i   i   i   i;   i   i@   i   iŌž’’R>   R    i    RŃ   R   (   Rf   R   RA   R3   R5   R6   R7   R8   R9   R:   R;   R<   R   R   Re  R   R*   R   R    R   R   R   (	   R   R8   Rf   R<   R:   Re  R6   R7   R3   (    (    R   Rg   	  s&     ' 
c         C   s£   |  i d d d d t d d  } t |  |  i t d d d d d d	 d t d
 d  } t |  |  i d d d d t d d  } |  i t t |  d  S(   Ni   R    i  RŃ   i   i   i   i;   i?B iaś’’i   i`ś’’(   R   RA   R   RĢ   Rb   R   R#   R¬   (   R   RĢ   (    (    R   t   test_extreme_hashes3	  s    $

$c         C   s}  t  d d  } t  d d  } t  d d  } t d d d	 d
 d d | } t d d d	 d d d | } t d d d	 d d d | } |  i	 | i
 |  |  i	 | i
 |  |  i	 | i
 |  |  i	 | i   t d d   |  i	 | i   t d d   |  i	 | i   t d d   |  i	 | i   d  |  i	 | i   d  |  i	 | i   d  |  i	 t |  t |   |  i	 t |  t |   |  i	 t |  t |   |  i	 | |  |  i	 | |  |  i	 | |  |  i	 t |  d  |  i	 t |  d  |  i	 t |  d  d } |  i	 t |  | d  |  i	 t |  | d  |  i	 t |  | d  d  S(   NiŌž’’RZ  i    R[  i<   R\  iŅ  i   i   i   i/   R    i   i   R   s   2002-03-19 07:47:00-05:00s   2002-03-19 12:47:00+00:00s   2002-03-19 13:47:00+01:00s   datetime.datetime(2002, 3, 19, s   7, 47, tzinfo=est)s   12, 47, tzinfo=utc)s   13, 47, tzinfo=met)(   R   R_  R`  Ra  R   R_   R`   R   R   R   R    R   R   R   Rb   Rm   Rc   Ro   (   R   R`  R_  Rc   R`   R   R_   Ra  (    (    R   Rc  A	  s8    c         C   s   t  d d  } t d d d  } t d d d d d	 | } t i | |  } |  i
 | t d d d d d d d d	 |  d  S(
   Ni<   R\  iŅ  i   i   i   i-   iŅ  R    (   R   Ra  R   Rc   R³   R*  R   R(  R   R   R   (   R   R*  Rc   Ra  R   (    (    R   R)  _	  s    !c      
   C   s¬   t  d d  } |  i d d d d d d d d	 | } |  i | i   t d d d   |  i | i   t d d d d   |  i | i   t d d d d d	 |  d  S(
   Ni<   R\  iŅ  i   i   i   i-   iŅ  R    (	   R   Ra  R   RA   R   R   R   R³   RL  (   R   Ra  R   (    (    R   R'  g	  s
    '"%c            s  d  k  } |  i i    t d d  }  i   i d |  } |  i i	  i
   |   |  i  i | j  |  i  i   |  |  i t   d    |  i t   d    |  i t   d    |  i t   d    |  i t  d    |  i   t d	   |  i   t d	   t d
 d d d d d       |  i  i | j    } |  i | i | j  |  i   |     } |  i | i | j  |  i  |  |  i t    d    |  i      t | i d d  d  }	   i d |	    |  i   i |	 j     }   i    i    } |  i | |  |  i d d d d t d d  } |  i t d d d d d d d t d d  } | | } |  i | |  i i |  i i t d d d   d  S(   Ni¶ž’’s	   west 5:30R    c              s      S(   N(   R-   t   nowaware(    (   Rt  R-   (    R   RE   y	  s    c              s      S(   N(   Rt  R-   (    (   Rt  R-   (    R   RE   z	  s    c              s      S(   N(   R-   Rt  (    (   Rt  R-   (    R   RE   }	  s    c              s      S(   N(   Rt  R-   (    (   Rt  R-   (    R   RE   ~	  s    c              s       S(   N(   Rt  (    (   Rt  (    R   RE   	  s    i    RJ   i   R   i   RO   i.  c              s      S(   N(   R   t   nowawareplus(    (   Ru  R   (    R   RE   	  s    iaś’’i   t   randomtimezonei  Rv   i   i   i;   i?B R"   i   (    t   randomR   RA   R-   R   t   tz55R³   Rš   t	   timeawareR(  R   Rt  R*   R    R   RL  R#   RF   R   R   Ru  t   nowawareplus2R±   t	   randranget   tzrRō   R   Ró   Rv   R   R"   t   maxdiff(   R   R"   Rx  Rz  Rv   Rō   Rw  R}  Ru  R|  R   Ró   R±   Rt  R-   Ry  (    (   Ru  R   Rt  R-   R   t   test_tz_aware_arithmeticn	  sH    	



$
c         C   s  |  i i }	 |	   } t d d  } |	 |  } |	 d |  } |  i	 | i
 | i
 j  |  i | i   t d d   |  i t |	 d  |  i t |	 d d |  i t |	 d | |  i t |	 | |  t t d d	 d d
  d d  } t d d d  } x t d  D]w } t i |  }
 |  i	 |
 i
 | j  t i   i d |  } | i |  } t |
 |  t d d  j  o PqqW|  i d  d  S(   Ni*   t   42R*  R   i   R    Re  RL   i   i:   t   weirdtzi    R`  i   RM   i   s0   utcnow(), now(tz), or astimezone() may be broken(   R   RA   R-   t   methRļ   R   t   off42t   anothert   againR*   R    R   R   R   R#   RF   R  R`  RØ   Rŗ   R   R   Rš   R.  t   now2RV   t   fail(   R   R  R  R`  R   Rŗ   Rļ   R  R  R  R-   R  (    (    R   t   test_tzinfo_now¬	  s,    	!  	c         C   s~  d  k  }
 |  i i } |
 i    } | |  } t d d  } | | |  }	 | | d | } |  i |	 i | i j  |  i |	 i   t d d   |  i t | | d  |  i t | | d d |  i t | | d | |  i t | | | |  |  i t |  d } t i |  } t d	 d
 d d  } t | d d  } | | } t i | |  } |  i | | i d d    d  S(   Ni*   R  R*  R   i   R    Re  i Ź;RL   iń’’’i'   i    (   R³   R   RA   R¶   R  Rµ   Rļ   R   R  R  R  R*   R    R   R   R   R#   RF   t	   timestampR   R  t   utcdatetimeR*  Ró   Rō   Rš   R   (   R   R  R*  R  Rµ   Rō   R   Rļ   R  R  R³   Ró   R  R  (    (    R   t   test_tzinfo_fromtimestampŠ	  s*    	
c         C   sQ   |  i i } |   } t d d  } |  i t | |  |  i t | d | d  S(   Ni*   R  R    (	   R   RA   R   R  Rļ   R   R  R#   RF   (   R   Rļ   R  R  (    (    R   t   test_tzinfo_utcnowó	  s
    	c         C   so   d  k  } |  i i } | i    } | |  } t d d  } |  i	 t
 | | |  |  i	 t
 | | d | d  S(   Ni*   R  R    (   R³   R   RA   R  R  Rµ   Rļ   R   R  R#   RF   (   R   Rµ   Rļ   R  R³   R  (    (    R   t   test_tzinfo_utcfromtimestampż	  s    	c         C   s
  d t  f d     Y} |  i } xd d d d f D]ķ \ } } | d d d d d	 d
 d d | |  } | i	   } |  i d | i  |  i d | i  |  i d | i  |  i d | i  |  i d	 | i  |  i d
 | i  |  i d | i  |  i d | i  |  i | | i  q2 W|  i t | d d d d | d  i	  |  i | d d d d | d  i	   i d  |  i | d d d d | d  i	   i d  |  i t | d d d d | d  i	  |  i t | d d d d | d  i	  d  S(   Nt   DSTc           B   s   t  Z d   Z d   Z RS(   Nc         C   s0   t  | t  o t d |  } n | |  _ d  S(   NR   (   R   t   dstvalueR   R   R   (   R   R  (    (    R   R   
  s    c         C   s   |  i S(   N(   R   R  (   R   R   (    (    R   R   
  s    (   R	   R
   R   R   (    (    (    R   R  
  s   	iß’’’i   i!   i    i’’’’i
   i   i   i(   R    RY   i  iaś’’i   i`ś’’(   iß’’’i   (   i!   i   (   i    i    (   Ni’’’’(   R    R  R   RA   Rķ   R   R  t   flagRc   RŁ   RĢ   R   RŚ   RŪ   RÜ   RŻ   RŽ   Rß   Rą   Rį   Rā   R#   RF   R¬   (   R   R  Rc   R  RĢ   R  Rķ   (    (    R   t   test_tzinfo_timetuple	
  s(    	 *+11+c   	         s/  d t  f d     Y  |  i } |  i t | d d d d   d  i  d   f   d     Y} x$d D]} | d d
 d d d d d d | d |  } | i   } |  i | i | i  |  i | i | i  |  i | i | i  |  i d | i  |  i d | i  |  i | i | i  |  i | i   | i  |  i | i   t d d d  i   d | i  |  i d | i  qj W| t d d d d d d | d  } | i   } |  i | i t d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  | t! d d d d d d d | d  } | i   } |  i | i t! d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  |  i | i d  d  S(   NR  c           B   s   t  Z d   Z d   Z RS(   Nc         C   s0   t  | t  o t d |  } n | |  _ d  S(   NR   (   R   R  R   R   R   (   R   R  (    (    R   R   /
  s    c         C   s   |  i S(   N(   R   R  (   R   R   (    (    R   R   3
  s    (   R	   R
   R   R   (    (    (    R   R  .
  s   	i   R    i    t   UOFSc              s    t  Z d    d  Z d   Z RS(   Nc            s&     i |  |  t d |  |  _ d  S(   NR   (   R  R   R   t   dofsR   t   uofs(   R   R  R  (   R  (    R   R   <
  s    c         C   s   |  i S(   N(   R   R  (   R   R   (    (    R   R   ?
  s    (   R	   R
   R   R   R   (    (   R  (    R   R  ;
  s   iß’’’i!   i   i   i
   i   i   i(   iĖ’’’i   i   i%   i  i   i   in  i   i;   i?B iaś’’i:   (   iß’’’i!   i    N(#   R    R  R   RA   Rķ   R#   R$   R   R  R   R  Rc   t   utctimetupleRĢ   R   R   RŚ   R   RŪ   R   RÜ   RŻ   RŽ   R”   Rß   R¾   Rą   R   R   Rį   Rā   R   Ry   R   t   huge(	   R   R  R  Rc   Ry   RĢ   R  R  Rķ   (    (   R  R   t   test_utctimetuple-
  sN    		"	 -)
'*c         C   sb  t  d d  } t  d d  }	 t  d d  } t  d  d  } |  i } d } xd  | |	 | | f D]ł } xš d D]č } | d
 d d d d d | d | } d | o d p d } | d  j	 o | i   p d } | | } | i   }
 |  i |
 | d |  |  i |
 | i d   |  i | i d  | d |  |  i t |  | d |  qn Wqa Wd  S(   Ni    s   +00:00iÜ   s   +03:40i’’’s   -03:51RŃ   s
   0001-02-03iy i   i   i   i   i   i;   R    s   04:05:59s   .987001R   t   kR  (   i    iy (   R   RZ   t   plust   minusR   t   unknownR   RA   Rķ   t   datestrt   ofsR]   Rc   t   timestrR   t   ofsstrt   tailstrRĶ   t   isoR   Rm   (   R   R  Rc   R  R  R  R]   R  RZ   R  R   R  R  Rķ   (    (    R   t   test_tzinfo_isoformatm
  s&    	  $ 
!c      	   C   s»  |  i } t d d  } t t d d  d  } d d d d	 d
 d d | g } | |   } |  i	 | | i
    d } x d d d d d d d  d | f f D][ \ } } | } | | | <| |   }	 | i
 h  | | <  }
 |  i	 |	 |
  | d 7} q W|  i	 | i   d  | i
 d d   } |  i | i d  j  |  i | i   d  j  | i
 d |  } |  i	 | |  |  i | i | i j  | d d d  } |  i t | i
 d d d  S(!   Nid   s   +100R   i8’’’s   -200i   i   i   i   i   i   i   i    R   R   R   R   R    R”   R¢   i   R    iŠ  i   iŃ  (   s   yeari   (   s   monthi   (   s   dayi   (   s   houri   (   s   minutei   (   s   secondi   (   s   microsecondi   (   R   RA   Rķ   R   Rh  R   Ri  Rf   Rļ   R   Rš   RX   R   Rń   Rņ   Ró   Rō   R   R   Rj  R*   R    Rk  R#   R¬   (   R   Rk  R   RX   Rf   Rń   Rj  Rh  Ri  Ró   Rō   Rņ   Rļ   Rķ   (    (    R   Rõ   
  s0    	% 
c         C   sč  t  d  d  } t  d d  } t  t d d  d  } |  i i d |  } |  i
 | i | j  |  i t | i |  |  i t | i d   | i | i  } |  i
 | i | j  |  i | i   | i    |  i | i   | i    | i |  } |  i
 | i | j  |  i | i   t d d   | | i   } | | i |  7} | i d	 |  } |  i | i   | i    |  i | i   | i    |  i | i   | i    |  i
 | i | i j  |  i | |  d  S(
   NR   i,   t   44RL   i   t   m300R*  iū’’’R    (   R   R   t   fnonet   f44mR   t   fm5hR   RA   R-   R   R*   R    R#   R¬   R.  RF   RY   R   R   R³   Rō   R   Ró   Rš   RL  (   R   Rō   R¦  RY   Ró   R   R„  R¤  (    (    R   t   test_more_astimezoneØ
  s,    c      
   C   si  |  i } d t f d     Y}
 | d d d d d d d	 d
 |
   } | i d d  }	 | i d d  } | i d d  } xd |	 | | f D]S } xJ |	 | | f D]9 } | | } t d | i | i  } |  i | |  q¢ Wq W| d d d d d d d	  } | i d d d
 |
    }	 | i d d d
 |
    } | i d d d
 |
    } x|	 | | f D]’ } xö |	 | | f D]å } | | } | |	 j p | | j o* | |	 j p | | j o t d  } n | | j o
 | j n o t d  } nT | | j o t d d d d  } n, | | j p t  t d d d d  } |  i | |  qxWqbWd  S(   NRU  c           B   s   t  Z d   Z RS(   Nc         C   s5   | i d j  o t d | i  Sn t d d  Sd  S(   Ni
   R   i;   (   RĢ   R    R   (   R   RĢ   (    (    R   R   Ķ
  s    (   R	   R
   R   (    (    (    R   RU  Ģ
  s   i   i	   i
   i   i   i   i   R    R    i   R   i    i;   (   R   RA   Rķ   R    RU  Rļ   Rš   RV  RÉ   R¤   RY   R   Rō   R   R    Ró   R   RG  (   R   RÉ   R   Rļ   Ró   Rō   RY   Rķ   R¤   RV  RU  (    (    R   t   test_aware_subtractĒ
  s>    		'  
  
4c            s  t  d d d d d d d   t  d d d d d d d    |  i       i d d     |  i       i d t d  d	     |  i       i d t d
 d	     |  i t	    d    d t
 f d     Y} |   }   i d |     i d |    |  i  i   t d d   |  i   i   t d d   |  i       i d |      |  i    j   d  S(   Ni   i   i   i   i   i   i   R    RŃ   i    c              s
      j S(   N(   R_   R`   (    (   R`   R_   (    R   RE   ü
  s    Rl  c           B   s   t  Z d   Z d   Z RS(   Nc         C   s   t  d d  |  _ d  S(   NR   i   (   R   R   R   (   R   (    (    R   R      s    c         C   s   |  i t d d  7_ |  i S(   NR   i   (   R   R   R   (   R   RĢ   (    (    R   R     s    (   R	   R
   R   R   (    (    (    R   Rl  ’
  s   	R   i   i   (   R   R_   R`   R   R   Rš   R   R   R#   RF   R    Rl  Rm  R   R   R*   (   R   R`   Rl  Rm  R_   (    (   R`   R_   R   Rė   ó
  s$    	c            sķ   d   i f   d     Y} d d d d d d d	 t d
 d d  f }   i |   } | | h  d d <  }   i | i |    i | i	 d    i | i
 d    i | i   | i      i | i d  | i | i d  d  S(   NRö   c              s#   t  Z d Z   d   Z d   Z RS(   Ni*   c            s@   | i   } | i d  }   i i |  | |  } | | _ | S(   NR÷   (   Rų   Rł   Rś   Rū   R÷   R   RA   R2   Rķ   Rf   Rü   (   Rķ   Rf   Rų   Rś   R÷   Rü   (   R   (    R   R2     s
    	c         C   s   | |  i |  i S(   N(   Rż   R   R   R   (   R   Rż   (    (    R   Rž     s    (   R	   R
   R’   R2   Rž   (    (   R   (    R   Rö     s   iŅ  i   i   i   i   i   iō  iŌž’’RZ  i   R÷   i   i*   ił’’’(   R   RA   Rö   R   Rf   R   R   R   R  R’   R÷   R   Rž   R   R   (   R   Rö   Rf   R   R   (    (   R   R   t   test_subclass_datetimetz  s    *(   R	   R
   R   RA   Rp  Rr  Rg   Rs  Rc  R)  R'  R~  R  R  R  R  R  R  R”  Rõ   R§  RØ  Rė   R©  (    (    (    R   Ro  Ķ  s*   		B						>	$	#	
		$	@		'		,	c         C   s/   d |  i   } | o |  t |  7}  n |  S(   Ni   (   R   R¾   t
   days_to_goR   (   R   RŖ  (    (    R   t   first_sunday_on_or_after-  s    i    RL   i   RK   i   i   t
   USTimeZonec           B   s5   t  Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         C   s1   t  d |  |  _ | |  _ | |  _ | |  _ d  S(   NRL   (   R   RL   R   t	   stdoffsett   reprnamet   stdnamet   dstname(   R   RL   R®  RÆ  R°  (    (    R   R   @  s    		c         C   s   |  i S(   N(   R   R®  (   R   (    (    R   R   F  s    c         C   s&   |  i |  o |  i Sn |  i Sd  S(   N(   R   R   R   R°  RÆ  (   R   R   (    (    R   R   I  s    c         C   s   |  i |  i |  S(   N(   R   R­  R   R   (   R   R   (    (    R   R   O  s    c         C   s   | d  j p | i d  j o t Sn | i |  j p t  t t i d | i	   } | i   d j o  | i d j o | i d j p t  t t i d | i	   } | i   d j o  | i d j o | i d j p t  | | i d d   j o
 | j  n o t Sn t Sd  S(   NR   i   i   i   i
   i   R    (   R   R   R    t   ZEROR   RG  R«  t   DSTSTARTRš   R   Rż   R¾   R   R   t   DSTENDt   endt   HOUR(   R   R   R“  Rż   (    (    R   R   R  s    ::*(   R	   R
   R   R   R   R   R   (    (    (    R   R¬  >  s
   				iū’’’t   EasternRZ  t   EDTiś’’’t   Centralt   CSTt   CDTił’’’t   Mountaint   MSTt   MDTių’’’t   Pacifict   PSTt   PDTR[  iō’’’i<   t   UTCfaket   TestTimezoneConversionsc           B   sw   t  Z e d d d d  Z e d d d d  Z e Z d   Z d	   Z d
   Z d   Z	 d   Z
 d   Z d   Z RS(   NiŅ  i   i   i   i
   i   i   c   
      C   s  |  i | i   t  |  i | i |  |  | i |  } | i |  } | i
   | i
   j o` | i d j oP |  i | t |  |  i | i   t  |  i | i |  | i |   n |  i | |  | t } | i |  }	 | i
   | i
   j oe | i d j oU |  i |	 | i d d   | t 7} | i |  }	 |  i |	 | i d d   n |  i |	 | t  d  S(   Ni   i    R   i   (   R   R   R   R   Rµ  R.  R*  R`  t   asutct   there_and_backR   t   dstonR   R±  t   nexthour_utct   nexthour_tzt   dstoffRš   (
   R   R   R*  R`  RÅ  RČ  RĆ  RĘ  RÄ  RĒ  (    (    R   t   checkinsidey  s$    
)

)
 c         C   sa   |  i | i   t  |  i | i |  |  | i |  } | i |  } |  i | |  d  S(   N(
   R   R   R   R   R±  R.  R*  R`  RĆ  RÄ  (   R   R   R*  R`  RĆ  RÄ  (    (    R   t   checkoutside­  s
    c         C   s’   |  i i d |  } |  i i d |  } xĪ t d d  t t t d d  t d d  f D] } |  i	 | | | | |  x5 | | | | f D] } |  i	 | | | | |  q W|  i | | |  x/ | | | | f D] } |  i | | |  qŚ Wq[ Wd  S(   NR    RJ   i   R   i   RO   (   R   RÅ  Rš   R*  RČ  R   t   DAYRµ  R   RÉ  R`  t   duringRŹ  t   outside(   R   R*  R`  RÅ  RČ  RĶ  R   RĢ  (    (    R   t   convert_between_tz_and_utcø  s    1   c         C   sd   |  i t t  |  i t t  |  i t t  |  i t t  |  i t t  |  i t t  d  S(   N(   R   RĪ  R¶  t   utc_realR¾  t   utc_fake(   R   (    (    R   t	   test_easyĪ  s    c         C   sé  |  i t d d  } t d d d d  } | i d |  } |  i i d d	  }	 | i t	  i d d   }
 |  i |	 |
  |  i i d d
 d t  } |  i i d d  }	 | i t	  i d d   }
 |  i |	 |
  x	t t f D]ū } xņ t	 t f D]ä } |  i t d d  } | | i d   8} | | i d   } | i d |  } x d D] } |  i i d |  } x] d D]U } | i d |  }	 | i d |  } | i |  } |  i | i d d   |	  qvW| t 7} qTWqł Wqę Wd  S(   NRL   i   i÷’’’i<   s   -0900i    R    R   i   i   i   i   i   i;   R    (   i    i   i   i   (   i    i   i;   (   R   RÅ  R   t   fourbackR   t   ninewestRš   Ró   R.  R¶  R   Rō   R   RĻ  t   sixutcRŠ  R`  R¾  R*  RČ  t   first_std_hourR   RĆ  t	   asutcbaset   tzhourt   expectedbaseR    t   astzRµ  (   R   RÖ  RŅ  RÕ  RŌ  R*  RŲ  RŁ  RÓ  Ró   Rō   RĆ  R    R`  R×  (    (    R   t   test_trickyę  s8         c         C   st   d t  f d     Y} |  i i   i d t  } | i |    d | f d     Y} |  i	 t
 | i |    d  S(   Nt   okc           B   s   t  Z d   Z d   Z RS(   Nc         C   s   t  S(   N(   Rµ  (   R   R   (    (    R   R     s    c         C   s   t  S(   N(   Rµ  (   R   R   (    (    R   R     s    (   R	   R
   R   R   (    (    (    R   RŪ    s   	R    t   notokc           B   s   t  Z d   Z RS(   Nc         C   s   d  S(   N(   R   (   R   R   (    (    R   R   $  s    (   R	   R
   R   (    (    (    R   RÜ  #  s   (   R    RŪ  R   RA   R-   Rš   RĻ  R.  RÜ  R#   R¬   (   R   RŪ  RÜ  R-   (    (    R   t   test_bogus_dst  s
    c   
      C   s±  |  i t t i  t i   i d t  } |  i t
 t i |  | i d t  } t i |  } |  i | i t  |  i t t i | |  |  i t t i t i    d t f d     Y} | d d d d  } |  i i d d	 d t  } | i d |  } xĪ d D]Ę } | i d |  }	 | d
 j o |	 t d d  8}	 n t i |  } |  i |	 |  | | i }	 | i |  } |  i |	 |  | i d t  i |  } |  i |	 |  | t 7} | t 7} q	W|  i i d d	 d t  } | i d |  } xŖ d D]¢ } | i d |  }	 t i |  } |  i |	 |  | | i }	 | i |  } |  i |	 |  | i d t  i |  } |  i |	 |  | t 7} | t 7} qWd  S(   NR    t   FauxUSTimeZonec           B   s   t  Z d   Z RS(   Nc         C   s   | |  i S(   N(   R   R   R­  (   R   R   (    (    R   t   fromutc3  s    (   R	   R
   Rß  (    (    (    R   RŽ  2  s   iū’’’t   FEasternt   FESTt   FEDTR   i   i   i    i   i   i   RK   i   (   i   i    i   i   i   i   (   i    i   i   i   i   i   (   R   R#   RF   R¶  Rß  R   R   Rš   RĻ  R-   R¬   t   enowR   R    R   R   R¬  RŽ  Rą  RÅ  Rż   t   fstartt   wallRó   R   Rō   R­  R.  Rµ  RČ  (
   R   RŽ  Rä  Rż   Rå  Rć  Rō   R-   Rą  Ró   (    (    R   t   test_fromutc'  sP     
 
(   R	   R
   R   RÅ  RČ  RA   RÉ  RŹ  RĪ  RŃ  RŚ  RŻ  Rę  (    (    (    R   RĀ  q  s   	4				3	t   Oddballsc           B   s   t  Z d   Z RS(   Nc            s  t  i    t i  t      |  i    j  |  i    j  |  i    j  |  i    j  |  i	 t
    d    |  i	 t
    d    |  i	 t
    d    |  i	 t
    d    |  i	 t
    d    |  i	 t
    d    |  i	 t
    d    |  i	 t
    d    |  i  i      i d	 d
 d	 } |  i  i   i d |    t  i  i  i  } |  i  |  |  i |   t   i   i  i d d d  } |  i   |  |  i |    d  S(   Nc              s
      j  S(   N(   t   as_datet   as_datetime(    (   Ré  Rč  (    R   RE   r  s    c              s
      j  S(   N(   Ré  Rč  (    (   Ré  Rč  (    R   RE   s  s    c              s
      j S(   N(   Rč  Ré  (    (   Ré  Rč  (    R   RE   t  s    c              s
      j S(   N(   Ré  Rč  (    (   Ré  Rč  (    R   RE   u  s    c              s
      j S(   N(   Rč  Ré  (    (   Ré  Rč  (    R   RE   v  s    c              s
      j S(   N(   Ré  Rč  (    (   Ré  Rč  (    R   RE   w  s    c              s
      j S(   N(   Rč  Ré  (    (   Ré  Rč  (    R   RE   x  s    c              s
      j S(   N(   Ré  Rč  (    (   Ré  Rč  (    R   RE   y  s    i   i   R   i    (   R   R   Rč  R   R(  R³   Ré  R   Ru   R#   RF   t   __eq__R   t   different_dayRš   R   R   R   t   date_scR   R	  t   datetime_sc(   R   Ré  Rė  Rč  Rģ  Rķ  (    (   Ré  Rč  R   t   test_bug_1028306i  s0    #(   R	   R
   Rī  (    (    (    R   Rē  g  s   c          C   s[   g  }  t t t t t t t t t	 t
 t f D] } |  t i | d  q, ~  } t i |  S(   Nt   test(   t   _[1]R   R   RI   R   R   R
  R4  RX  Ro  RĀ  Rē  t   klasst   unittestt	   makeSuitet	   allsuitest	   TestSuite(   Rš  Rń  Rō  (    (    R   t
   test_suite  s    Nc          C   sŻ   d  k  } d  k } t   }  d  } xµ t o­ t i |   Pn | i	   | i
 o t d | i
   n t | d  o\ | i   } | i d d Id I| I| o | i d I| | IJn | i J| } q$ q$ Wd  S(   Ni   s'   gc.garbage not empty after test run: %rt   gettotalrefcountt   *i
   s   total refs:s   delta:(   t   gct   sysRö  t   thesuiteR   t   lastrcRk   t   test_supportt	   run_suitet   collectt   garbaget   SystemErrorR   R÷  t   thisrct   stderr(   Rū  R  Rś  Rü  Rł  (    (    R   t	   test_main  s&    			  

t   __main__(:   t   __doc__Rś  R  t   cPickleRņ  Rļ  Rż  R   R   R   R   R    R³   R   Rš  R6   R7   RØ   R8   R5   Rd   RG  Ri   t   TestCaseR   R   R   R   R@   RI   R   R   R   R	  R
  R3  R4  R9  RX  Ro  R«  R±  Rµ  RĖ  R²  R³  R¬  R¶  Rø  R»  R¾  RĻ  RŠ  RĀ  Rē  Rö  R  R	   (3   Rż  R»  RŠ  R¬  Rņ  R   R   R«  R   R6   R5   R   Ro  Rµ  R8   RĖ  R7   R²  R   R4  RX  R  R³  R    R3  Ri   R  Rø  R   R9  Rś  R±  RĀ  R   R@   Rē  R   RĻ  R   R   R¶  R¾  R
  Rš  Rö  R	  RI   R³   R   R  R   (    (    R   t   ?   sn   				V"
A'’ 8!’ ’ 4’ ė’  ų’ ’ b	*ö'		