
[c           @` st  d  Z  d d l m Z m Z m Z m Z d d l m Z d d l Z d d l	 Z
 d d l m Z d d l m Z d d l m Z m Z d d	 l m Z m Z d d
 l m 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   Z# d   Z$ d   Z% d   Z& d   Z' d   Z( d   Z) d   Z* d   Z+ d   Z, d   Z- e e.  d     Z/ d!   Z0 d"   Z1 d#   Z2 d$   Z3 d%   Z4 e e.  d&    Z5 d'   Z6 d(   Z7 e e.  d)    Z8 d*   Z9 d+   Z: d,   Z; d-   Z< d.   Z= d/   Z> e?   Z@ xL e jA jB   D]; ZC eD eC e jE  r;eD eC e jF  r;e@ jG eC  q;q;We jH jI d0 eJ e@ d1 e> d2 e> d3    ZK e?   ZL xa e jM jA jB   D]M ZC eD eC e jE  reD eC e jF  reC e jM jN k reL jG eC  qqWe jH jI d0 eJ eL d1 e> d2 e> d4    ZO e?   ZP xa e jQ jA jB   D]M ZC eD eC e jE  rceD eC e jF  rceC e jQ jN k rceP jG eC  qcqcWe jH jI d0 eJ eP d1 e> d2 e> d5    ZR d6   ZS d7   ZT d8   ZU d9   ZV e e jW  d:    ZX d;   ZY d<   ZZ d=   Z[ d>   Z\ d?   Z] d@   Z^ dA   Z_ dB   Z` dC   Za dD   Zb e ec  dE    Zd dF   Ze dG   Zf dH   Zg dI   Zh dJ   Zi dK   Zj dL   Zk dM   Zl dN   Zm dO   Zn dP   Zo dQ   Zp dR   Zq dS   Zr dT   Zs dU   Zt dV   Zu dW   Zv dX   Zw dY   Zx dZ   Zy d[   Zz d\   Z{ d]   Z| d^   Z} d S(_   u(   
Regression tests for the units package
i    (   t   absolute_importt   unicode_literalst   divisiont   print_function(   t   FractionN(   t   assert_allclosei   (   t   six(   t   ranget   cPickle(   t   raisest   catch_warnings(   t   units(   t	   constantsi   (   t   utilsc       	   C` s   d d l  m }  |  j   x t j t j } | j |  j t j d  } t	 | d  | j
 d  } | d d d g  } t	 | d	 d
 d g  Wd QXd S(   u?   
    Corresponds to "Getting Started" section in the docs.
    i   (   t   imperiali   g\Q?u   mile hour^-1g      ?g     @@g     @gY?g'^6@gɰ72[@N(   t    R   t   enablet   ut   cmt   st   tot   milet   hourR   t   _get_converter(   R   t
   speed_unitt   xt   speed_converter(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_getting_started   s    c          C` s  t  j t  j  t  j k s! t  t  j d t  j  }  |  t  j d t  j g d g  k sa t  t  j |   |  k s| t  t  j d |   t  j d t  j g d g  k s t  t  j d d |  d d t   } | t  j d t  j g d g  k s t  t  j d  t  j k st  t  j d	  t  j k s<t  t  j t  j k sTt  t  j d
  |  k sot  t  j d  t  j d g  g   k st  d  S(   Ng      $@i   g      Y@u   fooi   t	   namespaceg     @u   mu    u   10 m(   R   t   Unitt   mt   AssertionErrort   CompositeUnitt   localst   dimensionless_unscaledt   one(   t	   ten_metert   foo(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_initialisation*   s    !*7#*c          C` s   t  j t d d  }  t |  j d t  s2 t  t  j t d d  }  t |  j d t  sd t  t  j d }  t |  j d t  s t  d  S(   Ni   i   i    i   g      ?g      @gUUUUUU?(   R   R   R   t
   isinstancet   powersR   t   float(   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_invalid_power=   s    c           C` s   t  j t  j k s t  d  S(   N(   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_invalid_compareI   s    c           C` s+   t  j j t  j  d  d k s' t  d  S(   Ni   i  (   R   t   hR   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_convertM   s    c           C` si   t  j t j   t j j t j d  Wd  QXt  j t j  " t j t j j t j d  Wd  QXd  S(   Ni   (   t   pytestR	   R   t
   UnitsErrorR   R   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_convert_failQ   s    c           C` s   t  j t  j t  j j t  j  d  d k s5 t  t  j t  j t  j d k sX t  t  j t  j t  j t  j d k s t  t  j j d t  j d  d k s t  d  S(   Ni   i$   i   i   i  gMbP?(	   R   R   R   R,   R   R   R   t   HzR   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compositeX   s    5#*c           C` s   t  t j  d k s t  d  S(   Nu   cm(   t   strR   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_stra   s    c           C` s   t  t j  d k s t  d  S(   Nu
   Unit("cm")(   t   reprR   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt	   test_repre   s    c          C` s  t  j j t  j k s t  t  j j j d k s6 t  t  j j j t  j g k sW t  t  j j d k r t  j j t  j g k s t  t t  j j j d  t  j j j t  j	 g k s t  t  j
 d d t   }  |  j |  k s t  t  j
 d d t  j d t   } | j j d k s%t  | j j t  j g k sCt  | j   j d
 k s^t  | j   j t  j g k st  d  S(   Ng     @@g      ?gHzlT6+@u   blaR   u   blablai
   g      $@i  i  (   R   R   t
   representsR   t   kmt   scalet   basest   RyR   t   eVt   def_unitR!   t   hrt	   decomposeR   (   t   blat   blabla(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_representsi   s    !0!"c           C` s   t  t j j t j  d  t  t j j t j  d  t  t j j t j  d  t  t j j t j  d  t  t j	 j t j
  d  d  S(   NgMbP?i  gư>g(벥U>g-DT!@(   R   R   t   kpcR   t   Mpct   yrt   Myrt   AUt   pct   cyclet   rad(    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_units_conversiony   s
    c           C` s8   t  j t  j t d d  t  j t  j t  j d d  S(   Ni   i   i	   (   R   RC   RE   R   RF   t   AAt   erg(    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_units_manipulation   s    "c           C` s"   t  j t  j j   k s t  d  S(   N(   R   R;   R?   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_decompose   s    c          C` sD   d t  j d t  j }  |  j j d k s0 t  t |  j d  d S(   uh   
    Issue #1150: Test for conversion of dimensionless quantities
                 to the SI system
    g      ?u   dimensionlessgMbP?N(   R   RC   RD   t   unitt   physical_typeR   R   t   si(   t   testunit(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_dimensionless_to_si   s    c          C` sD   d t  j d t  j }  |  j j d k s0 t  t |  j d  d S(   ui   
    Issue #1150: Test for conversion of dimensionless quantities
                 to the CGS system
    g      ?u   dimensionlessgMbP?N(   R   R   R8   RP   RQ   R   R   t   cgs(   RS   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_dimensionless_to_cgs   s    c          C` sN   t  t j   }  t j d d d Wd  QXd t |  d j  k sJ t  d  S(   Nu   FOOt   parse_strictu   warni    (   R
   R   t   UnitsWarningR   R3   t   messageR   (   t   warning_lines(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_unknown_unit   s    c       	   C` s   t  j d  j   t  j t  j t  j k s2 t  t t  j  9 }  t  j d  j   t  j t  j t  j k sv t  Wd  QXd t	 |  d j
  k s t  d t	 |  d j
  k s t  t j t   t  j d d d Wd  QXd  S(   Nu   m/s/kgi    u   discouragedt   formatu   vounit(   R   R   t	   to_stringR   R   t   kgR   R
   RX   R3   RY   R.   R	   t
   ValueError(   RZ   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_multiple_solidus   s    28c       	   C` s  t  j d d d }  t |  t  j  s- t  |  j d k sB t  t  j d d d } |  | k si t  |  j |  s~ t  t  j d d d } |  | k s t  |  j |  s t  |  d k s t  |  t  j k s t  |  d  k s t  |  d  t  j f k st  t	 j
 t   |  j |  Wd  QX|  j d  } | j d  } t	 j
 t   t  j d d d } Wd  QXt	 j
 t   t  j d   } Wd  QXd  S(   Nu   FOORW   u   silentu   BARu   latexu   cgsu   strict(   R   R   R'   t   UnrecognizedUnitR   t   namet   is_equivalentR   t   NoneR.   R	   R_   R   R]   t	   TypeError(   RP   t   unit2t   unit3R   t   yt   unit4t   unit5(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_unknown_unit3   s*    c          C` s   d d d g t  j }  d  S(   Nu   au   bu   c(   R   R   (   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_invalid_scale   s    c          C` s4   t  j d d d d d }  |  j d k s0 t  d  S(   Nu	   10+22/cm2R\   u   cdsRW   u   silentgMD(   R   R   R9   R   (   RP   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_cds_power   s    c          C` s   t  j d t  j d d t   }  d t   k s7 t  t  j |     d t  j   j k sb t  Wd  QXd t  j   j k s t  d  S(   Nu   fooi   R   (   R   R=   R   R!   R   t   add_enabled_unitst   get_current_unit_registryt   registry(   R%   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_register   s
    "!c          C` s0   t  j t  j }  |  j t  j t  j d  } d  S(   Ni   (   R   R   R   t   in_unitsRH   R   (   R   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_in_units   s    c           C` s)   t  j t  j t  j d  k s% t  d  S(   Ni   (   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_null_unit   s    c           C` s@   t  j j d  t k s t  t  j j d  t k s< t  d  S(   Nu   foou   pc(   R   R   Rc   t   FalseR   t   True(    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_unrecognized_equivalency   s    c           C` s   t  j   d  S(   N(   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_unit_noarg   s    c          C` sW   y" t  j j t  j t  j d  Wn. t  j k
 rR }  d t |   k sS t  n Xd  S(   Ni   u   length(   R   RL   R   R,   R   R/   R3   R   (   t   e(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_convertible_exception   s    "c          C` sL   y t  j j t  j  Wn. t  j k
 rG }  d t |   k sH t  n Xd  S(   Nu   length(   R   R   R   R   R/   R3   R   (   Ry   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_convertible_exception2  s    c          C` s*   d t  f d     Y}  t j |     d  S(   Nt   Ac           B` s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyR|     s   (   t   objectR   R   (   R|   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_invalid_type  s    c          C` s   t  j j t  j t  j  s" t  t  j j d t  j j  }  |  d j d t  j k s] t  t  j j d t  j j  }  |  d j d t  j k s t  d S(   u   
    Issue #599
    R   i    N(	   R   t   srRc   RJ   R   t   composeRU   R:   t   __dict__(   t   results(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_steradian  s
    " c          C` s   d d l  m }  d d l m } | j j j d |  j  } | j t	 j
 t	 j t	 j g k sb t  | j t d d  d d g k s t  | j d k s t  d	 S(
   u   
    From issue #576
    i   (   RU   i   (   Ry   R:   g      ?ig      ?N(   R   RU   R   Ry   t   esuRP   R?   R:   t   _basesR   R   t   gR   R   t   _powersR   t   _scale(   RU   Ry   t   d(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_decompose_bases   s    ''c          C` sX   t  j t  j t  j }  |  j   } t | d j  t t  j t  j g  k sT t  d  S(   Ni    (	   R   t   cdR   t   WbR   t   setR   t   lmR   (   t   complext   composed(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_complex_compose.  s    c          C` s;   t  j j d t  j    }  t d   |  D  s7 t  d  S(   Nt   equivalenciesc         s` s$   |  ] } t  j g | j k Vq d  S(   N(   R   R1   R:   (   t   .0R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pys	   <genexpr>7  s    (   R   R   R   t   spectralt   anyR   (   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_equiv_compose5  s    c          C` s2   t  j t j   t j j d g   }  Wd  QXd  S(   NR   (   R.   R	   R   R/   R   R   (   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_empty_compose:  s    c         C` s
   t  |   S(   N(   R3   (   RP   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   _unit_as_str?  s    u   unitt   keyt   idsc         C` s   |  j    j   } t } x\ | D]T } t | j  rT | j d |  k rs t } Pqs q t |  j  d k r t } Pq q W| s t  d  S(   Ni    (   R?   R   Ru   t   lenR:   Rv   R   (   RP   t   composed_listt   foundR   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compose_roundtripN  s    c         C` sW   |  j  t j  } g  | D] } | j |   ^ q s: t  | d |  j k sS t  d  S(   Ni    (   t	   to_systemR   RR   Rc   R   (   RP   RR   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compose_cgs_to_sig  s    (c         C` s   y |  j  t j  } Wn2 t j k
 rJ t j |  j   j k rD q   nB Xg  | D] } | j |   ^ qR ss t  | d |  j k s t  d  S(   Ni    (	   R   R   RU   R/   R|   R?   R:   Rc   R   (   RP   RU   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compose_si_to_cgsy  s    (c           C` s[   t  j j t  j  d j d t  j k s/ t  t  j j t  j  d j d k sW t  d  S(   Ni   i    g      $@(   R   t   PaR   RU   R   t   BaR   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_to_cgs  s    /c          C` sB   d d l  m }  t j j d |  j  j d |  j k s> t  d  S(   Ni   (   RU   R:   i    (	   R   RU   R   R   R?   R:   R   R   R   (   RU   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_decompose_to_cgs  s    c          C` s   t  j t  j d t  j }  |  j d t  j t  j t  j g  } t |  d k sW t  | d j t  j t  j t  j g k s t  | d j	 d d d g k s t  d  S(   Ni   R   i   i    i   i(
   R   R^   R   R   R   t   NR   R   R   R   (   RP   t   result(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compose_issue_579  s
    $+c          C` sD   t  j t  j }  t |  j d t  j t  j g   d k s@ t  d  S(   NR   i   (   R   R^   R   R   R   R   R   (   RP   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_self_compose  s    c          C` s%   t  j }  |  j d t  j g  } d  S(   NR   (   R   R^   R   R   (   RP   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compose_failed  s    	c          C` s   t  j d t  j d }  |  j   } x, | D]$ } |  j   | j   k s+ t  q+ W|  j d t  j  } x, | D]$ } |  j   | j   k so t  qo W|  j d t  j  } x, | D]$ } |  j   | j   k s t  q Wd  S(   Ng      ?g      ?R   (   R   R   RE   R   R?   R   RU   RR   (   R   t   factoredRP   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compose_fractional_powers  s    ""c          C` s   t  j j   }  t |  d j  d k s. t  |  d j d t  j k sN t  t  j d j   }  |  d j d t  j t  j f k s t  t  j	 j
   j   }  |  d j d t  j	 k s t  d  S(   Ni    i   i(   R   t   lR   R   R:   R   R   R1   t   BqR;   R?   (   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compose_best_unit_first  s     )c          C` si   t  j t  j d t  j d t  j d t  j d }  |  j d t  j j  } t	 |  d k se t
  d  S(   Ni   g      @g      ?i   R   i   (   R   R^   R   t   auRE   R   R   RU   R:   R   R   (   t   newR   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compose_no_duplicates  s    5c          C` s7   d t  j t  j d }  |  j t  j t  j d  d S(   u   
    Issue #672
    i
   i   i   Nl     @=7M.c(   R   t   M_pR   R   t   M_sunRH   (   t   sigma(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_long_int  s    c          C` s   x~ d d g D]p }  xg d d g D]Y } xP d d g D]B } t  j d d d	 g d
 |  | | } t j j t j |  q3 Wq  Wq Wd S(   u   
    Regression test for #744

    A logic issue in the units code meant that big endian arrays could not be
    converted because the dtype is '>f4', not 'float32', and the code was
    looking for the strings 'float' or 'int'.
    u   <u   >u   iu   fu   4u   8i   i   i   t   dtypeN(   t   npt   arrayR   R   R   R   (   t   endiant   ntypet   byteR   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_endian_independence  s
    &c           C` s&   d t  j j j t  j k s" t  d S(   u   
    Issue #863
    i   N(   R   t   degreeRR   RP   RJ   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_radian_base  s    c           C` s/   t  t d  s t  t  t d  s+ t  d  S(   Nu   asu
   attosecond(   t   hasattrR   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt
   test_no_as  s    c           C` s   t  j j d d g k s t  t  j j d d g k s< t  t  j j d g k sW t  t t  j j  t t  j j  t t  j j  Bk s t  d  S(   Nu   ctu   count(   R   t   ctt   namesR   t   short_namest
   long_namesR   t   ph(    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_no_duplicates_in_names  s    c          C` s  t  j t j  }  t  j |   } | t j k s6 t  t j d g d i d d 6} d t j   j k sp t  t  j |  }  t  j |   } | j	 d g k s t  | j
 d  d k s t  d t j   j k s t  t j | g  / t  j |  }  d t j   j k st  Wd  QXt j g   } d t j   j k sJt  t  j |   } | j	 d g k sqt  | j
 d  d k st  d t j   j k st  Wd  QXd t j   j k st  d  S(   Nu   fooR\   u   baru   baz(   t   picklet   dumpsR   R   t   loadsR   t   IrreducibleUnitRo   Rp   R   t   get_format_nameRn   (   t   pt   othert   new_unitt   new_unit_copy(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_pickling  s(    !!c          C` s/   t  j d d d }  t j t j |    d S(   u   
    Issue #2047
    u   asdfRW   u   silentN(   R   R   R   R   R   (   t   a(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_pickle_unrecognized_unit"  s    c           C` s   t  j d d t  j d  S(   Nu   mR   (   R   R=   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_duplicate_define*  s    c          C` sA   d d l  m }  |    } t | j  t | j  k s= t  d  S(   Ni   (   Ro   (   t
   units.coreRo   R   t	   all_unitst   non_prefix_unitsR   (   Ro   Rp   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_all_units/  s    	c           C` s+   t  j j   t  j j d  k s' t  d  S(   Nu   latex(   R   R   t   _repr_latex_R]   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_repr_latex5  s    c           C` sR   t  j d t  j d t  j k s' t  t  j d d t  j t  j k sN t  d  S(   Nu   5sg      @(   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_operations_with_strings9  s    'c           C` s   t  j t  j k s t  t  j t  j k s0 t  t  j t  j k  sH t  t  j t  j k s` t  t j t  j   t  j t  j k Wd  QXd  S(   N(   R   R   R   R   R.   R	   R/   R^   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_comparison?  s    c          C` s9   d d l  m }  |  j t j t j t j d  g  d  S(   Ni   (   t   Gu   15 s(   R   R   R?   R   R^   R8   R   (   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt!   test_compose_into_arbitrary_unitsI  s    c          C` sY   t  j }  d } | |  t  j |  |  k s2 t  |  | |  t  j |  k sU t  d S(   uA   Check that multiplication with strings produces the correct unit.u   kgN(   R   R   R   R   (   t   u1t   us(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt$   test_unit_multiplication_with_stringO  s    	#c          C` sY   t  j }  d } | |  t  j |  |  k s2 t  |  | |  t  j |  k sU t  d S(   uA   Check that multiplication with strings produces the correct unit.u   kgN(   R   R   R   R   (   R   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_unit_division_by_stringW  s    	#c           C` s0   t  j t  j j t  j t  j j k s, t  d S(   u
   See #1616.N(   R   R   t   JyR:   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_sorted_bases_  s    c           C` sd   t  j t  j k s t  t  j t  j k s0 t  t  j t  j k sH t  t  j t  j k s` t  d S(   u	   See #1543N(   R   t   Mbitt   MbR   t   megabitt   Mbytet   MBt   megabyte(    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_megabitd  s    c          C` sU   t  j d  }  t  j d  } t t  j d |  | g d d g   d k sQ t  d S(   u	   See #1576u   nrad/su   Hz(1/2)i   iu   nrad / (Hz(1/2) s)N(   R   R   R3   R    R   (   t   unit1Rf   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt#   test_composite_unit_get_format_namem  s    $c          C` s*   d d l  m }  |  t j d t j d  S(   Ni   (   t!   assert_follows_unicode_guidelinest	   roundtrip(   t   tests.helperR   R   R   R   (   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_unicode_policyu  s    c       	   C` s   x d d d d d d d d g D]i \ }  } y t  j |   Wn7 t k
 ru } d j |  t j |  k s t  q Xt s t d   q Wd  S(   Nu   micronsu   micronu	   s/micronsu   Mu   mu   metreu   meteru	   angstromsu   Angstrom or angstromu	   milimeteru
   millimeteru
   ångströmu   kevu   EV, eV, kV or keVu   Did you mean {0}?u   Expected ValueError(   u   micronsu   micron(   u	   s/micronsu   micron(   u   Mu   m(   u   metreu   meter(   u	   angstromsu   Angstrom or angstrom(   u	   milimeteru
   millimeter(   u
   ångströmu   Angstrom or angstrom(   u   kevu   EV, eV, kV or keV(   R   R   R_   R\   R   t	   text_typeR   Ru   (   t   searcht   matchesRy   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_suggestions|  s    (c          C` sI   t  j d  }  |  t  j t  j d t  j d t  j d k sE t  d S(   u
   See #1911.u   erg /s /cm**2 /angstromiiN(   R   R   RM   R   R   t   angstromR   (   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_fits_hst_unit  s    c           C` s4   t  j t  j k s t  t  j t  j k s0 t  d S(   uB   Regression test for https://github.com/astropy/astropy/issues/3753N(   R   t   fbarnt	   femtobarnR   t   pbarnt   picobarn(    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_barn_prefixes  s    c          C` s5  d t  j }  d d t  j t  j t  j } d t  j t  j } t j d |  d | j t d d  | } | j	 d  } t j d |  d | t d d  | } | j	 d  } t j d |  d | j d | } | j	 d  } t j d |  d | d | } | j	 d  } t
 | |  t
 | |  t
 | |  t  j d } t | j d t  sht  t  j d } t | j d t  st  | j d j d k st  | j d j d k st  t  j t d d  t  j t d d  } t | j d t  st  | j d t d d  k s1t  d S(   u	   See #2069g    eAg      ?g     Q@i   i   i   i   u   pcg      @g      &@i    g      @i   i   NgUUUUUU?gUUUUUU?gF]tE?g۶m۶m?(   R   t   MsunR8   R   RD   t   cR   RU   R   R   R   R   R'   R(   R)   R   t	   numeratort   denominatorR   (   R   t   tHt   vcR   t   v1t   v2t   v3t   v4(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_fractional_powers  s.    -*$!*c           C` s(   t  j j j t  j j j k s$ t  d  S(   N(   R   Ra   t   is_unityt   __doc__t   UnitBaseR   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_inherit_docstrings  s    c          C` sN   t  j d }  t |  j   j d  s+ t  |  j   d t  j k sJ t  d  S(   Ng      ?u   imagi   (   R   t   magR   R?   R9   R   (   t   sqrt_mag(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_sqrt_mag  s    c          C` s?   t  j j d t  j d  g  d }  t  j j d |  g  d  S(   NR   u   si    (   R   R   R   R   (   t   composite_unit(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_composite_compose  s    %c           C` s   t  j j t  j  s t  d  S(   N(   R   R   Rc   t   bitR   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_data_quantities  s    c           C` s/   t  j d  k s t  t  j d  k s+ t  d  S(   N(   R   R   Rd   R   (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_compare_with_none  s    c          C` sR   t  j d  }  t |  t  s$ t  |  j d k s9 t  |  j d k sN t  d  S(   Ng?i   i   (   R   t   validate_powerR'   R   R   R  R  (   t   frac(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt#   test_validate_power_detect_fraction  s    c          C` s   d t  j d t  j }  d t  j } d } d t  j t  j d } d } d } d	 } d
 t  j } d t j |  t j t j  } | | | | | | t j	 | d }	 | |	 d }
 |
 j
 j d k s t  |
 j t  j  d  S(   Ng(\?i   gv@iBg      ?g&.>i   g      ?gaa?gyy?g    .Agu   length(   R   R   R   t   solMasst   solRadR   R   t   sqrtt   piR   RP   RQ   R   R   (   t   kappat   r_0t   qt   rho_0Rh   t   betaR   t   m_ht   t1t   t2R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt'   test_complex_fractional_rounding_errors  s    !*c          C` sr   t  j d t d d  }  t |  j d t  s6 t  |  j d j d k sR t  |  j d j d k sn t  d  S(   Ng      ?i   i   i    i   (   R   R   R   R'   R(   R   R  R  (   R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt&   test_fractional_rounding_errors_simple  s    c          C` s   d d l  m }  |  j   # |  j t j j   k s; t  Wd  QXd d l  m } | j   # | j	 t j
 j   k s| t  Wd  QXd  S(   Ni   (   t   cds(   R   (   R   R'  R   t   geoMassR   R^   t   find_equivalent_unitsR   R   t   inchR   (   R'  R   (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_enable_unit_groupings  s    $c          C` s   d d l  m }  x t j |  j  D] } | \ } } } } } | j d k r\ | s t  q# | j d k rz | s t  q# | j d k r | s t  q# | j d k r | d k s t  q# | j d k r# | d	 k s t  q# q# Wd
 S(   u   
    Test for a few units that the unit summary table correctly reports
    whether or not that unit supports prefixes.

    Regression test for https://github.com/astropy/astropy/issues/3835
    i   (   t	   astrophysu   lyru   pcu   barnu   cycleu   Nou   voxu   YesN(   R   R,  R   t   _iter_unit_summaryR   Rb   R   (   R,  t   summaryRP   t   _t   prefixes(    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   test_unit_summary_prefixes  s    (~   R  t
   __future__R    R   R   R   t	   fractionsR   R.   t   numpyR   t   numpy.testingR   t   externR   t   extern.six.movesR   R   R   R   R	   R
   R   R   R   R   R   R   R   R&   R*   R+   R-   R0   R2   R4   R6   RB   RK   RN   RO   RT   RV   R[   R`   Rk   Re   Rl   Rm   Rq   Rs   Rt   Rw   Rx   Rz   R{   R   R   R   R   R   R   R   R   t   COMPOSE_ROUNDTRIPR   t   valuest   valR'   R  t
   PrefixUnitt   addt   markt   parametrizet   sortedR   t   COMPOSE_CGS_TO_SIRU   t   deg_CR   t   COMPOSE_SI_TO_CGSRR   R   R   R   R   R   R/   R   R   R   R   R   R   R   R   R   R   R   R_   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R	  R  R  R  R  R  R  R%  R&  R+  R1  (    (    (    s=   lib/python2.7/site-packages/astropy/units/tests/test_units.pyt   <module>   s   "																			!														0		0			
										#					
												#									