
[c           @   so   d  d l  Z d d l m Z d d l m Z d   Z d   Z d   Z	 d	   Z
 d
   Z d   Z d   Z d S(   iNi   (   t   corei   (   t   catch_warningsc          C   s  t  j d d d d d d  }  t  j d t  j d	 d
  } t  j t  j d	 t  j d	 d  } t j d d d d d d |  d d d t  j d d d d d d d d  \ } } } } } } | j d k s t  t j d d d d d d |  d d d d t  j d d d d d d d d  \ } } } } } } | j d k sEt  t j | d d  d d f | d d d  d f d d d d |  d d d d  f d d d t  j d d d d d d d d  \ } } } } } } | j d k t j d d |  d  \ }	 }
 } } |	 j d k st  | j d k s4t  | j	 t  j	 d  k sRt  t j d d |  d d  \ }	 }
 } } |	 j d k st  | j d k st  | j	 t  j	 d  k st  d S(   s\   
    Runs a set of tests that mostly make sure vectorization is
    working as expected
    g   BAg      ?g      8@g      N@i<   i   i   g        g       @i   i   g      @g     @g      ?iy   i    Nt   UTCi   t   i4ix   iy   (   iy   (    (   i   i   iy   (   iy   (   iy   i   (    (   i   (
   t   npt   linspacet   pit   erfat   atco13t   shapet   AssertionErrort   Nonet   d2dtft   dtype(   t   jdt   rat   dect   aobt   zobt   hobt   dobt   robt   eot   iyt   imt   idt   ihmsf(    (    s<   lib/python2.7/site-packages/astropy/_erfa/tests/test_erfa.pyt   test_erfa_wrapper   s"    !$[_$(c          C   s  t  j d t j  \ }  } |  d k s. t  | d d d d g k j   sR t  t  j d t j  \ }  } |  d k s t  | d d d d g k j   s t  t  j d d d d  } t j j	 | t j  t  j
 d d d d  } t j j	 | t j  t  j d t j  } t j j	 | t j  t  j d t j  } t j j	 | t j  t  j d	 d
  \ }  } |  d k st  | d d d d g k j   st  t  j d d d d  } t j j	 | d  d  S(   Ni   t   -i   i    t   +i   g        g      @i   g      i$   i   g      ?(   R   t   a2afR   R   R
   t   allt   a2tft   af2at   testingt   assert_allcloset   tf2at   anpt   anpmt   d2tft   tf2d(   t   signt   idmsfR   t   radt   days(    (    s<   lib/python2.7/site-packages/astropy/_erfa/tests/test_erfa.pyt   test_angle_ops&   s&    $$$c          C   s  t  j d t j d  t j d  g  \ }  } t j j |  t j d  t j j | t j d  t  j d t j d  t j d  g  \ }  } } t j j |  t j d  t j j | t j d  t j j | d  t  j d t j d  t j d  g d d d g g  \ }  } } } } } t j j |  t j d  t j j | t j d  t j j | d  t j j | t j d  d  t j j | d  t j j | d  t  j	 t j d t j d  } t j j | d t j d  d t j d  d g d d t  j
 t j d t j d d  } t j j | d t j d  d t j d  d g d d t  j t j d t j d d t j d  d d d  } t j j | d t j d  t j d  g d d d g g d d d  S(   Ng        g       @g      @g      ?t   atolg+=g      (   R   t   c2sR   t   sqrtR"   R#   R   t   p2st   pv2st   s2ct   s2pt   s2pv(   t   thetat   phit   rt   tdt   pdt   rdt   ct   pv(    (    s<   lib/python2.7/site-packages/astropy/_erfa/tests/test_erfa.pyt   test_spherical_cartesianD   s(    03K! <#<9c       
   C   s	  t  j d d d d  t   p }  t  j d d d d  t |   d k sP t  |  d j t  j k sl t  d t |  d j  k s t  Wd QXt   y }  t  j d d d g d d d  t |   d k s t  |  d j t  j k s t  d	 t |  d j  k st  Wd QXy, t  j d d d
 d g d d d g d  WnI t  j	 k
 r} d | j
 d k rt st d | j
 d   qn Xy, t  j d d d
 d g d d d g d  WnI t  j	 k
 r} d | j
 d k rt st d | j
 d   qn Xd S(   sI   
    Test that the ERFA error reporting mechanism works as it should
    i  i   g      ?id   i    s   1 of "dubious year (Note 1)"Ni   s   2 of "dubious year (Note 1)"i"   i   i+   s)   1 of "bad day (Note 3)", 1 of "bad month"s5   Raised the correct type of error, but wrong message: t   warningsD   Raised the correct type of error, but there were warnings mixed in: (   R   t   datR   t   lenR
   t   categoryt   ErfaWarningt   strt   messaget	   ErfaErrort   argst   False(   t   wt   e(    (    s<   lib/python2.7/site-packages/astropy/_erfa/tests/test_erfa.pyt   test_errwarn_reportinga   s*    %%,$,c    
      C   sf  d d d g }  d d d g } d } d } d	 d
 d g } t  j |  | | |  } | j d k sf t  t j j | |  t  j |  g d | | |  } | j d k s t  t j j | | g d  t j |   } t j | | d | d | d | d g d d d } t  j | d d d  | | |  }	 |	 j d k sHt  t j j |	 | g d  d S(   s\   
    Tests that ERFA functions working with vectors are correctly consumed and spit out
    gݗKlgVplzg`/˿g=>gM?[gw'UTAgo?gVY?gd
kgK{izg}Z]ܿ˿i   i   i   i   t   ordert   FN(   i   (   i   i   (   i   i   (   R   t   abR	   R
   R   R"   R#   t   array(
   t   pnatt   vt   st   bm1t   expectedt   rest   res2t   pnatat   arrint   res3(    (    s<   lib/python2.7/site-packages/astropy/_erfa/tests/test_erfa.pyt   test_vector_inouts   s,    			8%c    
      C   sv  d }  d } t  j d  } d | d d <d | d d <d	 | d d <d
 | d d <d | d d <d | d d <t j |  | |  } | j d k s t  t  j j | d d  t  j j | d d  t  j j | d d d d g  t  j j | d t  j d   t  j	 | j
   d  j d  } t j |  | |  } t  j | d d  sZt  t  j | g d  } t j |  | |  } | j d k st  t  j j | d d  t  j | g d  d  d  d  } t j |  | |  } | j d k st  t  j j | d d  t  j | g d d d } t j |  | |  }	 |	 j d k s[t  t  j j |	 d d  d  S(   Ng   2BAg\#?i   i   gp=J6Wi    g%Ai   gp=
@3gC=gpvkYp|gQɛm@?t   pmtge=*|M)@t   emgV*?t   ebg}h2?gZ'iڿgΫ*ǿt   bpni	   RL   RM   (   i   i   (    (   i   i   (   i   (   i   (   i   (   R   t   emptyR   t   apcs13R	   R
   R"   R#   t   eyet   rollt   ravelt   reshapet   allcloseRO   (
   t   jd1t   jd2t   pvmatt   astromt   pvmatbadt	   astrombadt   pvmatarrt   astrom2t   astrom3t   astrom4(    (    s<   lib/python2.7/site-packages/astropy/_erfa/tests/test_erfa.pyt   test_matrix_in   s@    
 !#c          C   s   t  j d d d g  \ }  } |  j d k s3 t  |  j t  j k sK t  | j d k s` t  t j j |  d d d  t j j |  d d d	 d
 d g  t  j	 d d |  d  \ } } t j j | d  t j j | d  d S(   s:   
    Checks producing and consuming of ERFA c structs
    g   2BAg\#?i   i   i    R[   ge=*|M)@RQ   gt}?g9E?g԰.q?gGz@gʡE?gD@ggҼ ?N(   i   (   i   (
   R   t   apci13R	   R
   R   t   dt_eraASTROMR   R"   R#   t   atciqz(   t   amR   t   rit   di(    (    s<   lib/python2.7/site-packages/astropy/_erfa/tests/test_erfa.pyt   test_structs   s    
(   t   numpyR   t    R    R   t   tests.helperR   R   R-   R>   RK   RZ   Rp   Rw   (    (    (    s<   lib/python2.7/site-packages/astropy/_erfa/tests/test_erfa.pyt   <module>   s   				#	%	.