ó
šßÈ[c           @   sƒ   d  d l  Z  d  d l Z d  d l Z d  d l Z d d l m Z d d l m Z	 d f  d „  ƒ  YZ
 d f  d	 „  ƒ  YZ d
 „  Z d S(   iÿÿÿÿNi   (   t   Timei   (   t   broadcast_tot   TestManipulationc           B   sz   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 RS(   sE   Manipulation of Time objects, ensuring attributes are done correctly.c         C   sM  t  j d d ƒ } t  j d d d ƒ } t | d  d  … t  j f | d d d d	 ƒ|  _ t | d  d  … t  j f | d d d d	 d
 d ƒ|  _ t | d  d  … t  j f | d d d d	 d
 t  j t | ƒ ƒ t  j t | ƒ ƒ f ƒ|  _ t | d  d  … t  j f | d d d d	 d
 t  j t | ƒ ƒ t  j t | ƒ ƒ f ƒ|  _ d  S(   NiPÃ  iZÃ  g        g+‡ÙÎ÷ï?gš™™™™™É?t   formatt   mjdt   scalet   utct   locationt   45dt   50d(   R   R	   (   t   npt   arangeR    t   newaxist   t0t   t1t   lent   t2(   t   selfR   t   frac(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   setup   s    2,,0,c         C   sÙ  |  j  j ƒ  } | j |  j  j f k s- t ‚ t j | j |  j  j j ƒ  k ƒ sW t ‚ t j | j |  j  j ƒ sx t ‚ | j	 d  k s t ‚ |  j j ƒ  } | j |  j j f k sº t ‚ t j | j |  j j j ƒ  k ƒ sä t ‚ t j | j |  j j ƒ st ‚ | j	 |  j j	 k s t ‚ |  j j ƒ  } | j |  j j f k sMt ‚ t j | j |  j j j ƒ  k ƒ swt ‚ t j | j |  j j ƒ s˜t ‚ | j	 j | j k s³t ‚ t j | j	 |  j j	 ƒ sÕt ‚ d  S(   N(   R   t   ravelt   shapet   sizet   AssertionErrorR
   t   allt   jd1t   may_share_memoryR   t   NoneR   R   (   R   t   t0_ravelt   t1_ravelt   t2_ravel(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt
   test_ravel   s     *!*!*!c         C   sy  |  j  j ƒ  } | j |  j  j f k s- t ‚ | j d  k sB t ‚ t j | j	 |  j  j	 ƒ sd t ‚ |  j
 j ƒ  } | j |  j
 j f k s‘ t ‚ t j | j	 |  j
 j	 ƒ s³ t ‚ | j |  j
 j k	 sÎ t ‚ | j |  j
 j k sé t ‚ |  j j ƒ  } | j |  j j f k st ‚ t j | j	 |  j j	 ƒ s8t ‚ | j j | j k sSt ‚ t j | j |  j j ƒ sut ‚ d  S(   N(   R   t   flattenR   R   R   R   R   R
   R   R   R   R   (   R   t
   t0_flattent
   t1_flattent
   t2_flatten(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_flatten0   s    """c         C   se  |  j  j ƒ  } | j d k s$ t ‚ t j | j |  j  j j ƒ  k ƒ sN t ‚ t j | j |  j  j ƒ so t ‚ | j d  k s„ t ‚ |  j
 j ƒ  } | j d k s¨ t ‚ t j | j |  j
 j j ƒ  k ƒ sÒ t ‚ t j | j |  j
 j ƒ só t ‚ | j |  j
 j k st ‚ |  j j ƒ  } | j d k s2t ‚ t j | j |  j j j ƒ  k ƒ s\t ‚ t j | j |  j j ƒ s}t ‚ | j j | j k s˜t ‚ t j | j |  j j ƒ s¹t ‚ |  j j } | j d k sÚt ‚ t j | j |  j j j k ƒ st ‚ t j | j |  j j ƒ s"t ‚ | j j | j j k s@t ‚ t j | j |  j j ƒ sat ‚ d  S(   Ni   i
   (   i   i
   (   i   i
   (   i   i
   (   i   i
   (   R   t	   transposeR   R   R
   R   R   R   R   R   R   R   t   T(   R   t   t0_transposet   t1_transposet   t2_transposet   t2_T(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_transposeA   s,    *!*!*!!'!c         C   s½  |  j  j ƒ  } | j d k s$ t ‚ t j | j |  j  j j ƒ  k ƒ sN t ‚ | j d  k sc t ‚ t j	 | j |  j  j ƒ s„ t ‚ |  j
 j ƒ  } | j d k s¨ t ‚ t j | j |  j
 j j ƒ  k ƒ sÒ t ‚ | j |  j
 j k sí t ‚ t j	 | j |  j
 j ƒ st ‚ |  j j ƒ  } | j d k s2t ‚ t j | j |  j j j ƒ  k ƒ s\t ‚ | j j | j k swt ‚ t j	 | j |  j j ƒ s˜t ‚ t j	 | j |  j j ƒ s¹t ‚ d  S(   Ni   (   i   (   i   (   i   (   R   t   diagonalR   R   R
   R   R   R   R   R   R   R   (   R   t   t0_diagonalt   t1_diagonalt   t2_diagonal(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_diagonalZ   s     *!*!*!c         C   sá  |  j  j d d ƒ } | j d k s* t ‚ t j | j |  j  j j d d ƒ k ƒ sZ t ‚ t j | j |  j  j ƒ s{ t ‚ | j d  k s t ‚ |  j
 j d d ƒ } | j d k sº t ‚ t j | j |  j
 j j d d ƒ k ƒ sê t ‚ t j | j |  j
 j ƒ st ‚ | j |  j
 j k s&t ‚ |  j j d d ƒ } | j d k sPt ‚ t j | j |  j j j d d ƒ k ƒ s€t ‚ t j | j |  j j ƒ s¡t ‚ | j j | j k s¼t ‚ t j | j |  j j ƒ sÝt ‚ d  S(   Ni    i   i   i
   (   i   i
   (   i   i
   (   i   i
   (   R   t   swapaxesR   R   R
   R   R   R   R   R   R   R   (   R   t   t0_swapaxest   t1_swapaxest   t2_swapaxes(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_swapaxesl   s     0!0!0!c         C   s  |  j  j d d d ƒ } | j d k s- t ‚ t j | j |  j  j j j d d d ƒ k ƒ sc t ‚ t j | j |  j  j j j d d d ƒ k ƒ s™ t ‚ t j	 | j |  j  j ƒ sº t ‚ t j	 | j |  j  j ƒ sÛ t ‚ | j
 d  k sð t ‚ |  j j d d d ƒ } | j d k st ‚ t j | j |  j j j d d d ƒ k ƒ sPt ‚ t j	 | j |  j j ƒ sqt ‚ | j
 |  j j
 k sŒt ‚ |  j j d d d ƒ } | j d k s¹t ‚ t j | j |  j j j d d d ƒ k ƒ sìt ‚ t j	 | j |  j j ƒ st ‚ | j
 j | j k s(t ‚ t j	 | j
 |  j j
 ƒ sIt ‚ |  j j d d d ƒ } | j d k svt ‚ t j | j |  j j j d d d ƒ k ƒ s©t ‚ t j	 | j |  j j ƒ sÊt ‚ | j
 j | j k såt ‚ t j	 | j
 |  j j
 ƒ st ‚ |  j j d d ƒ j } | j d k s4t ‚ t j	 | j |  j j ƒ sUt ‚ | j
 j | j k spt ‚ t j	 | j
 |  j j
 ƒ s‘t ‚ | j d d ƒ } | j d	 k s¸t ‚ t j	 | j |  j j ƒ sÚt ‚ | j
 j | j k sõt ‚ t j	 | j
 | j
 ƒ st ‚ d  S(
   Ni   i   i
   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i
   (   i
   i   (   R   t   reshapeR   R   R
   R   R   t   _timet   jd2R   R   R   R   R   R&   (   R   t
   t0_reshapet
   t1_reshapet
   t2_reshapet   t2_reshape2t   t2_reshape_tt   t2_reshape_t_reshape(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_reshape~   sH    66!!3!3!!3!"!!"	c         C   sÂ  |  j  j ƒ  } d | _ | j d k s- t ‚ t j | j |  j  j j j d d d ƒ k ƒ sc t ‚ t j | j	 |  j  j j	 j d d d ƒ k ƒ s™ t ‚ | j
 d  k s® t ‚ | j } t j t ƒ  d	 | _ Wd  QX| j | j j k sñ t ‚ | j j | j j k st ‚ | j	 j | j j k s-t ‚ |  j j ƒ  } d
 | _ | j d k sZt ‚ t j | j |  j j j d d d ƒ k ƒ st ‚ | j
 j d k s¥t ‚ d |  j _ |  j j d k sÉt ‚ |  j j j d k sät ‚ |  j j	 j d k sÿt ‚ |  j j
 j d k st ‚ |  j j
 j d k s5t ‚ |  j j } t j t ƒ  d |  j _ Wd  QX|  j j j | k s~t ‚ |  j j	 j | k s™t ‚ |  j j
 j | k s´t ‚ |  j ƒ  d  S(   Ni   i   i
   i    i   i2   (   i   i   i   (   i   i   i   (   i
   i   (   i   i   i   (   i   i   i   (    (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i    i    i   (   i2   (   R   t   copyR   R   R
   R   R   R7   R6   R8   R   R   R&   t   pytestt   raisest   AttributeErrorR   R   t   stridesR   (   R   R9   t   t0_reshape_tR:   t   oldshape(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_shape_setting§   s<    	66		3c         C   s  |  j  j d d d d d ƒ j ƒ  } | j d k s9 t ‚ t j | j |  j  j j d d d ƒ k ƒ sl t ‚ t j | j |  j  j ƒ s t ‚ | j	 d  k s¢ t ‚ |  j j d d d d d ƒ j ƒ  } | j d k sÛ t ‚ t j | j |  j j j d d d ƒ k ƒ st ‚ t j | j |  j j ƒ s/t ‚ | j	 |  j j	 k sJt ‚ |  j j d d d d d d d ƒ j ƒ  } | j d k s‰t ‚ t j | j |  j j j d d d ƒ k ƒ s¼t ‚ t j | j |  j j ƒ sÝt ‚ | j	 j | j k søt ‚ t j | j	 |  j j	 ƒ st ‚ d  S(   Ni   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   R   R6   t   squeezeR   R   R
   R   R   R   R   R   R   R   (   R   t
   t0_squeezet
   t1_squeezet
   t2_squeeze(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_squeezeÑ   s     $3!$3!*3!c         C   sA  |  j  d  d  … t j d  d  … f } | j d k s: t ‚ t j | j |  j  j d  d  … t j d  d  … f k ƒ sz t ‚ t j | j |  j  j ƒ s› t ‚ | j d  k s° t ‚ |  j
 d  d  … d  d  … t j f } | j d k sê t ‚ t j | j |  j
 j d  d  … d  d  … t j f k ƒ s*t ‚ t j | j |  j
 j ƒ sKt ‚ | j |  j
 j k sft ‚ |  j d  d  … d  d  … t j f } | j d k s t ‚ t j | j |  j j d  d  … d  d  … t j f k ƒ sàt ‚ t j | j |  j j ƒ st ‚ | j j | j k st ‚ t j | j |  j j ƒ s=t ‚ d  S(   Ni
   i   i   (   i
   i   i   (   i
   i   i   (   i
   i   i   (   R   R
   R   R   R   R   R   R   R   R   R   R   (   R   t	   t0_adddimt	   t1_adddimt	   t2_adddim(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_add_dimensionã   s     %@!%@!%@!c         C   sÕ  |  j  j d ƒ } | j d k s' t ‚ t j | j |  j  j j j d ƒ k ƒ sW t ‚ | j d  k sl t ‚ |  j
 j d d d ƒ} | j d k s™ t ‚ t j | j |  j
 j j d d d ƒk ƒ sÌ t ‚ | j |  j
 j k sç t ‚ |  j j d d d	 ƒ} | j d k st ‚ t j | j |  j j j d d d	 ƒk ƒ sGt ‚ | j j | j k sbt ‚ |  j j d ƒ } | j d k s‰t ‚ t j | j |  j j j d ƒ k ƒ s¶t ‚ | j j | j k sÑt ‚ d  S(   Ni   i   i   t   axisi   i
   i   i   i    i   (   i   i   (   i   (   i   i   (   i   i   (   i
   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   i   i   (   i   (   i   i   (   R   t   takeR   R   R
   R   R   R7   R   R   R   R   (   R   t   t0_taket   t1_taket   t2_taket   t2_take2(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt	   test_takeõ   s     033-c         C   sÆ  |  j  j t d d ƒ} | j d k s- t ‚ t j | j |  j  j k ƒ sQ t ‚ t j | j |  j  j ƒ sr t ‚ | j	 d k s‡ t ‚ |  j j t d d ƒ} | j d	 k s´ t ‚ t j | j |  j j k ƒ sØ t ‚ t j | j |  j j ƒ sù t ‚ | j	 |  j j	 k st ‚ |  j j t d d
 ƒ} | j d k sAt ‚ t j | j |  j j k ƒ set ‚ t j | j |  j j ƒ s†t ‚ | j	 j | j k s¡t ‚ t j | j	 |  j j	 ƒ sÂt ‚ d S(   s   Test using a callable method.R   i   i
   i   N(   i   i
   i   (   i   i
   i   (   i   i
   i   (   i   i
   i   (   i   i
   i   (   i   i
   i   (   R   t   _applyt   np_broadcast_toR   R   R
   R   R   R   R   R   R   R   (   R   t   t0_broadcastt   t1_broadcastt   t2_broadcast(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_broadcast  s     $!$!$!(   t   __name__t
   __module__t   __doc__R   R   R$   R+   R0   R5   R?   RG   RL   RP   RW   R]   (    (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyR      s   							)	*			t   TestArithmeticc           B   sá   e  Z d  Z i  i d d 6i d d 6i d d 6i d d 6f Z d Z d „  Z e j j	 d	 e
 j e e ƒ ƒ d
 „  ƒ Z e j j	 d	 e
 j e e ƒ ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s/   Arithmetic on Time objects, using both doubles.RQ   i    i   i   t   mint   maxt   sortc         C   s®   t  j d d d ƒ j d d d ƒ } t  j d d d d d	 g ƒ } t | | d d d d ƒ|  _ t  j d d d d d g ƒ } t | | d d d d ƒ|  _ | | |  _ d  S(   NiPÃ  i´Ã  i
   i   i   i   gš™™™™™¹?gVçž¯Ò<gÍÌÌÌÌÌì?g¼‰Ø—²Ò¬<R   R   R   R   i    i   i   gâ™™™™™¹?gR™™™™™¹?gÏÌÌÌÌÌì?(   R
   R   R6   t   arrayR    R   R   t   jd(   R   R   R   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyR      s    $s   kw, funcc         C   sÁ   t  |  j d | ƒ |   } t  |  j d | ƒ |   } t  t d | ƒ |  j |  } t j | | k ƒ sr t ‚ t j | | k ƒ s t ‚ | j | j k s¥ t ‚ | j | j k s½ t ‚ d S(   s  
        Test that np.argfunc(jd, **kw) is the same as t0.argfunc(**kw) where
        jd is a similarly shaped array with the same ordinal properties but
        all integer values.  Also test the same for t1 which has the same
        integral values as jd.
        t   argN(   t   getattrR   R   R
   Rf   R   R   R   (   R   t   kwt   funct   t0vt   t1vt   jdv(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_argfuncs*  s    c         C   sm   t  |  j | ƒ |   } t  t | ƒ |  j |  } t j | j | k ƒ sQ t ‚ | j | j k si t ‚ d S(   s•   
        Test that np.func(jd, **kw) is the same as t1.func(**kw) where
        jd is a similarly shaped array and the same integral values.
        N(   Rh   R   R
   Rf   R   t   valueR   R   (   R   Ri   Rj   Rl   Rm   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt
   test_funcs:  s    c         C   s   |  j  j ƒ  d k s t ‚ t j |  j  j d d ƒ d k ƒ sE t ‚ t j |  j  j d d ƒ d k ƒ so t ‚ t j |  j  j d d ƒ d k ƒ s™ t ‚ d  S(   Ni   RQ   i    i   (   R   t   argminR   R
   R   (   R   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_argminE  s    **c         C   s§   |  j  j ƒ  |  j  j d k s% t ‚ t j |  j  j d d ƒ d k ƒ sO t ‚ t j |  j  j d d ƒ d k ƒ sy t ‚ t j |  j  j d d ƒ d k ƒ s£ t ‚ d  S(   Ni   RQ   i    i   i   i   (   R   t   argmaxR   R   R
   R   (   R   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_argmaxK  s    %**c      	   C   sX  t  j |  j j ƒ  t  j d d d d d g ƒ k ƒ s< t ‚ t  j |  j j d d ƒ t  j d ƒ j d d d ƒ k ƒ s~ t ‚ t  j |  j j d d ƒ t  j d ƒ j d d ƒ k ƒ s½ t ‚ t  j |  j j d d ƒ t  j d d d d d g ƒ k ƒ sÿ t ‚ t  j |  j j d d  ƒ t  j d ƒ j d	 d ƒ d  d  … d
 f j	 ƒ  k ƒ sTt ‚ d  S(   Ni   i    i   i   i   RQ   i   i2   iÿÿÿÿ(   i   i    i   i   i   (
   R
   R   R   t   argsortRe   R   R   R6   R   R   (   R   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_argsortQ  s    <B?Bc         C   s©  |  j  j ƒ  |  j  d k s" t ‚ t j |  j  j d ƒ |  j  d k ƒ sP t ‚ t j |  j  j d ƒ |  j  d  d  … d f k ƒ sŠ t ‚ t j |  j  j d ƒ |  j  d  d  … d  d  … d f k ƒ sÍ t ‚ |  j  j d ƒ j d k sî t ‚ |  j  j d d t ƒj d k st ‚ |  j  j d ƒ j d	 k s6t ‚ |  j  j d d t ƒj d
 k s]t ‚ |  j  j d ƒ j d k s~t ‚ |  j  j d d t ƒj d k s¥t ‚ d  S(   Ni    i   i   i   t   keepdims(   i    i    i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   i   (   R   Rb   R   R
   R   R   t   True(   R   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_minY  s    ".:C!'!'!c         C   s  |  j  j ƒ  |  j  d
 k s" t ‚ t j |  j  j d ƒ |  j  d k ƒ sP t ‚ t j |  j  j d ƒ |  j  d  d  … d f k ƒ sŠ t ‚ t j |  j  j d ƒ |  j  d  d  … d  d  … d f k ƒ sÍ t ‚ |  j  j d ƒ j d k sî t ‚ |  j  j d d	 t ƒj d k st ‚ d  S(   Niÿÿÿÿiþÿÿÿi    i   i   i   i   i   Rw   (   iÿÿÿÿiÿÿÿÿiþÿÿÿ(   i   i   (   i   i   i   (   R   Rc   R   R
   R   R   Rx   (   R   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_maxe  s    ".:C!c         C   sÀ   |  j  j ƒ  |  j  j ƒ  |  j  j ƒ  k s1 t ‚ t j |  j  j d ƒ |  j  j d ƒ |  j  j d ƒ k ƒ st t ‚ |  j  j d ƒ j d k s• t ‚ |  j  j d d t ƒj d k s¼ t ‚ d  S(   Ni    i   Rw   i   (   i   i   (   i   i   i   (	   R   t   ptpRc   Rb   R   R
   R   R   Rx   (   R   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_ptpm  s    1C!c      
   C   s¼  t  j |  j j ƒ  |  j d  d  … d  d  … d f k ƒ s@ t ‚ t  j |  j j d ƒ |  j k ƒ sj t ‚ t  j |  j j d ƒ |  j k ƒ s” t ‚ t  j |  j j d ƒ |  j d  d  … d  d  … d f k ƒ s× t ‚ t  j |  j j d  ƒ |  j d  d  … d  d  … d	 f j ƒ  k ƒ s t ‚ t  j |  j j d ƒ d  d  … d  d  … d f |  j j d ƒ k ƒ slt ‚ t  j |  j j d ƒ d  d  … d  d  … d f |  j j d ƒ k ƒ s¸t ‚ d  S(
   Ni   i    i   i   i   iÿÿÿÿ(   i   i    i   i   i   (   i   i    i   i   i   (   i   i    i   i   i   (	   R
   R   R   Rd   R   R   R   Rb   Rc   (   R   (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt	   test_sorts  s    @**C4LN(   Rb   Rc   Rd   (   R^   R_   R`   R   t   kwargst	   functionsR   RA   t   markt   parametrizet	   itertoolst   productRn   Rp   Rr   Rt   Rv   Ry   Rz   R|   R}   (    (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyRa     s   1	
**						c          C   s¾   t  d d d d d ƒ}  |  j } t j | ƒ } t | j ƒ t j k sN t ‚ | j	 ƒ  } t | j ƒ t j k sx t ‚ | j
 ƒ  } t | j ƒ t j k s¢ t ‚ | j | j k sº t ‚ d  S(   Ng    €5è@R   t   taiR   R   (   R    t   ut1R@   t   deepcopyt   typet   delta_ut1_utcR
   t   ndarrayR   R    R   (   t   tt   t_ut1t
   t_ut1_copyt   t_ut1_flattent   t_ut1_ravel(    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   test_regression  s    	(   R‚   R@   RA   t   numpyR
   t    R    t   utils.compat.numpyR   RY   R   Ra   R   (    (    (    s>   lib/python2.7/site-packages/astropy/time/tests/test_methods.pyt   <module>   s   ÿ d