ó
šßÈ[c           @` s«  d  Z  d d l m Z m Z m Z m Z d d l Z d d l Z d d l Z d d l	 m
 Z
 d d l Z d d l Z d d l m Z m Z 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 d l! m" Z" d d l! m# Z$ d d l% m& Z& y] d d l' Z' e' j( d ƒ d d l) j* Z+ d d l, m- Z- e- e' j. ƒ e- d ƒ k  Z/ e0 Z1 Wn e2 k
 r¢e3 Z1 n Xd e4 f d „  ƒ  YZ5 d e4 f d „  ƒ  YZ6 d „  Z7 d „  Z8 d „  Z9 d „  Z: d „  Z; d „  Z< d „  Z= d e4 f d „  ƒ  YZ> d  e4 f d! „  ƒ  YZ? d" „  Z@ d# „  ZA d$ „  ZB d% „  ZC d& „  ZD d' „  ZE d( „  ZF d) „  ZG d* „  ZH e eI ƒ d+ „  ƒ ZJ d, „  ZK d- „  ZL d. „  ZM d/ „  ZN d0 „  ZO d1 „  ZP d2 „  ZQ d3 „  ZR d4 „  ZS d5 „  ZT d6 „  ZU e eI ƒ d7 „  ƒ ZV d8 „  ZW d9 „  ZX d: „  ZY d; „  ZZ d< „  Z[ d= „  Z\ d> e4 f d? „  ƒ  YZ] e j^ j_ d@ ƒ e j^ j` dA ƒ dB e4 f dC „  ƒ  Yƒ ƒ Za dD „  Zb d S(E   u*   
    Test the Quantity class and related.
i    (   t   absolute_importt   unicode_literalst   divisiont   print_functionN(   t   Fraction(   t   assert_allcloset   assert_array_equalt   assert_array_almost_equali   (   t   raises(   t
   isiterablet
   minversion(   t   NUMPY_LT_1_10t   NUMPY_LT_1_14(   t   matmul(   t   units(   t   _UNIT_NOT_INITIALISED(   t   range(   t   cPickle(   t   sixu   Agg(   t   LooseVersionu   1.5t   TestQuantityCreationc           B` sk   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   c         C` s-  d t  j } t | t  j ƒ s% t ‚ t  j d } t | t  j ƒ sJ t ‚ d t  j } t | t  j ƒ so t ‚ t  j d } t | t  j ƒ s” t ‚ d t  j t  j } t | t  j ƒ sÀ t ‚ t j t ƒ  d t  j } Wd  QXt j t ƒ  d t  j } Wd  QXt j t ƒ  d t  j } Wd  QXd  S(   Ng×£p=
×&@gsh‘í|Çf@(	   t   ut   metert
   isinstancet   Quantityt   AssertionErrort   secondt   pytestR   t	   TypeError(   t   selft   quantity(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_1.   s     c         C` sŒ   t  j d d t  j ƒ} t  j d d ƒ } t  j d ƒ } | j t  j d ƒ k sW t ‚ t j t ƒ   t  j t	 ƒ  d t  j
 ƒ} Wd  QXd  S(   Ngmçû©ñÒ&@t   unitg…ëQ¸…5@u   cmi   (   R   R   R   R    t   UnitR   R   R   R   t   objectt   m(   R   t   q1t   q2t   q3t   q4(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_2G   s    c         C` s/   t  j t ƒ  t j d d d ƒ} Wd  QXd  S(   Ngmçû©ñÒ&@R    u
   testingggg(   R   R   t
   ValueErrorR   R   (   R   R$   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_3U   s    c      	   C` sæ  t  j d d d ƒ} t j | j ƒ s- t ‚ t  j d d d ƒ} t j | j ƒ sZ t ‚ t  j d d d ƒ} t j | j ƒ s‡ t ‚ t  j d ƒ } t j | j ƒ s® t ‚ | j t  j k sÆ t ‚ t  j d d d ƒ} t j | j ƒ só t ‚ t  j d d d ƒ} t j | j ƒ s t ‚ t  j d	 ƒ } t j | j ƒ sGt ‚ | j t  j k s_t ‚ t  j d
 d d ƒ} t j | j ƒ sŒt ‚ t	 j
 t ƒ  t  j d d d ƒ} Wd  QXt	 j
 t ƒ  t  j d d d ƒ} Wd  QXd  S(   Nu   nanR    u   cmu   NaNu   -nanu   nan cmu   infu   -infu   inf cmu   Infinityu    u   spam(   R   R   t   npt   isnant   valueR   R    t   cmt   isinfR   R   R   (   R   t   q(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_nan_infZ   s,    c         C` s>   t  j d d t  j ƒ} t j t ƒ  t  j | _ Wd  QXd  S(   NgÍÌÌÌÌÌ&@R    (   R   R   R   R   R   t   AttributeErrorR.   R    (   R   R$   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_unit_property~   s    c         C` sO  t  j d d t  j t  j d t ƒ} | j t k s: t ‚ t  j | ƒ } | j t k s^ t ‚ | j t | j ƒ k s| t ‚ | j	 | j	 k s” t ‚ t
 j d d g d t
 j ƒ} t  j | t  j ƒ } | j | j k sß t ‚ t  j t j d ƒ t  j ƒ } | j t k st ‚ t  j t j d ƒ t  j d t ƒ} | j t k sKt ‚ d S(   uÇ   Test that if an explicit dtype is given, it is used, while if not,
        numbers are converted to float (including decimal.Decimal, which
        numpy converts to an object; closes #1419)
        i   R    t   dtypeg      ð?g       @u   10.25N(   R   R   R#   t   st   intR4   R   t   floatR-   R    R+   t   arrayt   float32t   yrt   decimalt   DecimalR"   (   R   R$   R%   t   a3R&   R'   t   q5(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_preserve_dtype…   s    %$c         C` sŠ  t  j d ƒ } t j | d t j t j ƒ} | j | k	 sC t ‚ t j | d t j t j d t ƒ} | j | k s} t ‚ t j | ƒ } | | k	 sž t ‚ | j | j k	 s¶ t ‚ t j | d t ƒ} | | k sÝ t ‚ | j | j k sõ t ‚ t j | | j	 d t ƒ} | | k s"t ‚ | j | j k s:t ‚ t j | t j
 t j d t ƒ} | | k	 snt ‚ | j | j k	 s†t ‚ d  S(   Ng      $@R    t   copy(   R+   t   arangeR   R   R#   R5   t   baseR   t   FalseR    R.   (   R   t   at   q0R$   R%   R&   R'   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt	   test_copyŸ   s"    %"c         C` sÚ   d t  j f d „  ƒ  Y} | t j d ƒ t  j ƒ } t t  j | ƒ ƒ t  j k sX t ‚ t t  j | d t ƒƒ | k s t ‚ t t  j | t  j ƒ ƒ t  j k s© t ‚ t t  j | t  j d t ƒƒ | k sÖ t ‚ d S(   u>   Test subok can be used to keep class, or to insist on Quantityt   MyQuantitySubclassc           B` s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRG   ½   s   g      $@t   subokN(	   R   R   R+   RA   R#   t   typeR   t   Truet   km(   R   RG   t   myq(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt
   test_subok»   s    $'*c   	      C` s   t  j t  j d ƒ d d ƒ} t j | t j d d ƒ} | j d sL t ‚ t j | t j d d ƒ} | j d sz t ‚ t j | t j d d ƒ} | j d s¨ t ‚ t j | d d ƒj d sÊ t ‚ t j | d d ƒj d sì t ‚ t j | d d ƒj d st ‚ t  j t  j d ƒ d d ƒ} t j | t j d d ƒ} | j d sZt ‚ t j | t j d d ƒ} | j d sˆt ‚ t j | t j d d ƒ} | j d s¶t ‚ t j | d d ƒj d sØt ‚ t j | d d ƒj d sút ‚ t j | d d ƒj d st ‚ d S(	   u3   Test that order is correctly propagated to np.arrayg      $@t   orderu   Cu   C_CONTIGUOUSu   Fu   F_CONTIGUOUSu   AN(   R+   R8   RA   R   R   R#   t   flagsR   (	   R   t   act   qcct   qcft   qcat   aft   qfct   qfft   qfa(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt
   test_orderÇ   s(    """""c         C` sÐ   t  j d ƒ } t j | t j d d ƒ} | j d k rH | j d k sN t ‚ t j | t j d d ƒ} | j d k r‡ | j d	 k s t ‚ t j | t j d d ƒ} | j d k rÆ | j d
 k sÌ t ‚ d S(   u3   Test that ndmin is correctly propagated to np.arrayg      $@t   ndmini   i
   i   i   N(   i
   (   i   i
   (   i   i   i
   (   R+   RA   R   R   R#   t   ndimt   shapeR   (   R   RD   R$   R%   R&   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt
   test_ndminà   s    $$c         C` sý  d t  j f d „  ƒ  Y} t  j d ƒ } | j ƒ  j | ƒ } d | _ t j | ƒ } t | t j ƒ sm t	 ‚ | j t j
 k s… t	 ‚ t  j | j | k ƒ s£ t	 ‚ t j | t j ƒ } | j t j k sÐ t	 ‚ t  j | j d | k ƒ sò t	 ‚ t j | d t ƒ} t  j | j | k ƒ s%t	 ‚ d | d <| d d	 k sEt	 ‚ | d d	 k s[t	 ‚ | j ƒ  j | ƒ } t j
 | _ t j | t j d t ƒ} d | d <| d d	 k s·t	 ‚ | d d
 k sÍt	 ‚ d | _ t j t ƒ  t j | ƒ Wd QXd S(   u4   Test that unit attributes in objects get recognized.t   MyQuantityLookalikec           B` s   e  Z RS(    (   RH   RI   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyR_   í   s   g      @u   mg     @@R@   i    i   g        g       @u   nonsenseN(   R+   t   ndarrayRA   R@   t   viewR    R   R   R   R   R#   t   allR-   t   mmRC   R   R   R   (   R   R_   RD   t   mylookalikeR$   R%   R&   R'   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_non_quantity_with_unitë   s2    	"

	(   RH   RI   R   R(   R*   R1   R3   R?   RF   RO   RZ   R^   Re   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyR   ,   s   				$						t   TestQuantityOperationsc           B` s	  e  Z e j d  e j ƒ Z e j d e j ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z e j j e j d  d k  d d ƒd „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j j e d d ƒd „  ƒ Z d „  Z RS(   g×£p=
×&@g       @c         C` sÓ   |  j  |  j } | j d k s% t ‚ | j t j k s= t ‚ |  j |  j  } | j d k sb t ‚ | j t j k sz t ‚ t j d t j	 ƒ t j d t j
 ƒ } | j t j	 k sº t ‚ | j d k sÏ t ‚ d  S(   Ng      '@g     ø‘@gfffffp—@g      +@gÍÌÌÌLÍ@(   R$   R%   R-   R   R    R   R   t
   centimeterR   R#   RM   (   R   t   new_quantityt   new_q(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_addition  s    (c         C` s~   |  j  |  j } | j d k s% t ‚ | j t j k s= t ‚ |  j |  j  } | j d k sb t ‚ | j t j k sz t ‚ d  S(   Ng®Gáz®&@g     ¸‘À(   R$   R%   R-   R   R    R   R   Rg   (   R   Rh   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_subtraction!  s    c         C` s   |  j  |  j } | j d k s% t ‚ | j t j t j k sD t ‚ |  j |  j  } | j d k si t ‚ | j t j t j k sˆ t ‚ d |  j  } | j d k sª t ‚ | j t j k sÂ t ‚ |  j  d } | j d k sä t ‚ | j t j k sü t ‚ d  S(   Ng×£p=
×V@g      .@gš™™™™ie@(   R$   R%   R-   R   R    R   R   Rg   (   R   Rh   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_multiplication,  s    c         C` sw  |  j  |  j } t | j d d d ƒ| j t j t j k sE t ‚ |  j |  j  } t | j d d d ƒ| j t j t j k sŠ t ‚ t j	 d d t j ƒ} t j	 d d t j
 ƒ} | | } t | j d	 d d
 ƒ| j t j t j
 k sù t ‚ |  j  d } | j d k st ‚ | j t j k s3t ‚ d |  j  } | j d k sUt ‚ | j t j d ƒ k sst ‚ d  S(   Ng×£p=
×ö?R;   i   g»-.;´jæ?i   gÍÌÌÌÌÌ&@R    g      $@g=
×£p=ò?i
   gƒÀÊ¡Eò?g×£p=
×&@g      ð?u   1/m(   R$   R%   R   R-   R    R   R   Rg   R   R   R   R!   (   R   Rh   R$   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_divisionA  s$    
c         C` sœ   t  j d d ƒ } |  j t  j t  j |  j k o= | k n sH t ‚ |  j t  j t  j d d ƒ k sp t ‚ t  j |  j t  j d d ƒ k s˜ t ‚ d S(   u   Regression test for issue #587.g×£p=
×&@u   m*su   m/si   u   s/mNg»-.;´j¶?(   R   R   R$   R5   R   (   R   Ri   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_commutativity]  s    6(c         C` s†   |  j  d } t | j d d d ƒ| j t j d ƒ k sA t ‚ |  j  d } t | j d d d ƒ| j t j d	 ƒ k s‚ t ‚ d  S(
   Ni   g¾Á&SM`@R;   i   u   m^2i   g¥žÐkE—@i   u   m^3(   R$   R   R-   R    R   R!   R   (   R   Rh   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt
   test_powerf  s    i   i   i   t   reasonu(   __matmul__ only introduced in Python 3.5c         C` sl  t  j d ƒ } | t j } t d ƒ } t  j | | k ƒ sC t ‚ t d ƒ } t  j | | k ƒ sj t ‚ t d ƒ } t  j | | t j d k ƒ sœ t ‚ t  j d d d g d d d g d d d g g d d d g d d d g d d d g g d d d g d d d g d d d g g g ƒ t j } t d ƒ } t  j | t	 | | j
 ƒ | j | j k ƒ sht ‚ d  S(	   Ni   u   q @ au   a @ qu   q @ qi   g      ð?g        u   q @ q2(   R+   t   eyeR   R#   t   evalRb   R   R8   R5   R   R-   R    (   R   RD   R0   t   result1t   result2t   result3R%   t   result4(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_matrix_multiplicationp  s&    &c         C` sÆ   |  j  } | j |  j  j k s& t ‚ | j |  j  j k sA t ‚ |  j  } | j |  j  j k sg t ‚ | j |  j  j k s‚ t ‚ |  j  
} | j |  j  j k s§ t ‚ | j |  j  j k sÂ t ‚ d  S(   N(   R$   R-   R   R    (   R   Rh   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt
   test_unaryŠ  s    

c         C` s¥   d t  j t  j } t | ƒ } | j | j k s8 t ‚ | j | j k sP t ‚ d t  j t  j } t | ƒ } | j | j k s‰ t ‚ | j | j k s¡ t ‚ d  S(   Ng      ð?g      ð¿(   R   R#   R5   t   absR-   R   R    (   R   R0   Rh   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_absœ  s    c         C` sW   t  j d d t  j ƒ} t  j d d t  j ƒ} t j t  j ƒ  | | } Wd QXd S(   uM    When trying to add or subtract units that aren't compatible, throw an error gmçû©ñÒ&@R    g…ëQ¸…5@N(   R   R   R   R   R   R   t
   UnitsError(   R   R$   R%   Ri   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_incompatible_units¨  s    c         C` s†   t  j d d t  j ƒ} d } t j t ƒ  } | i d d 6Wd  QX| j j d | k sa t ‚ t j t ƒ  | t  j Wd  QXd  S(   Ngmçû©ñÒ&@R    u@   Unsupported operand type(s) for ufunc add: 'Quantity' and 'dict'i   u   ai    (	   R   R   R   R   R   R   R-   t   argsR   (   R   R$   t   type_err_msgt   exc(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_non_number_type±  s    c         C` sR  d t  j t  j } | d t  j t  j } | j d k sA t ‚ | j | j k sY t ‚ | d } | j d k sx t ‚ | j t  j k s t ‚ t j	 t  j
 ƒ ( |  j t  j d d t  j d ƒ ƒWd  QXt j	 t  j
 ƒ ( |  j t  j d d t  j d ƒ ƒWd  QXt  j t j d d	 d
 g ƒ t  j t  j d t ƒ} | t j d d d g ƒ } | j t  j k spt ‚ t | j t j d d d g ƒ ƒ t j	 t ƒ ! | t j d d	 d
 g ƒ 7} Wd  QXt j d d	 d
 g ƒ t  j t  j } | t j d d d g ƒ 7} | j t  j k st ‚ t j | j t j d d d g ƒ k ƒ sNt ‚ d  S(   Ng      @g      ð?g5^ºI@g?5^ºIð?gš™™™™™¹?R    u    i   i   i   R4   i   i   i   g/Ý$@g5^ºI@gP—n@iì  iÕ  i¾  (   R   R#   RM   Rc   R-   R   R    t   dimensionless_unscaledR   R   R{   R$   R   R!   R+   R8   R6   R   R   Rb   (   R   t   dqt   dq1t   dq2R0   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_dimensionless_operations¼  s*    
))4""&c   
      C` s<  d d l  m } t j d t j ƒ } t j d t j ƒ } | | j | j t j ƒ } t	 | j
 d d d ƒt j d t j d	 t j t j d ƒ } d
 d t j | j t j d t j d t j ƒ } t j d t j ƒ } t j d t j ƒ } | | }	 t	 |	 j
 d d d ƒ|	 j t j t j k s8t ‚ d S(   u!    Perform a more complicated test i   (   t   imperialg      .@g      &@gž˜õb(g@R;   i   gyÐ´WÒ=i   g      ð?g      @iýÿÿÿiþÿÿÿg      @g     @S@i   N(   t    R†   R   R   R   R   t   tot   milet   hourR   R-   R#   t   kgR5   R+   t   pit   pcRg   R    R.   R   (
   R   R†   t   distancet   timet   velocityt   GRi   t   side1t   side2t   area(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_complicated_operationÝ  s    +7
c         C` s$  d t  j t  j d t  j d k s+ t ‚ d t  j d t  j k sK t ‚ d t  j d t  j k sk t ‚ t  j d } d | } | j | ƒ t k s t ‚ | j | ƒ t k s¸ t ‚ | | k sÊ t ‚ d t  j d } | | k sí t ‚ d t  j d k st ‚ d t  j d k s t ‚ d  S(   Ni   iþÿÿÿid   i   g      ð?g     @@(   R   R.   R   R#   t   __eq__t   NotImplementedRL   Rc   (   R   R    R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_comparisonó  s    +  
c   	      C` sZ  t  j d t  j ƒ } d } d } t j t ƒ  } t | ƒ Wd  QX| j j d | k s_ t	 ‚ t j t ƒ  } t
 | ƒ Wd  QX| j j d | k s t	 ‚ t j rç t j t ƒ  } t | ƒ Wd  QX| j j d | k sç t	 ‚ n  t j t ƒ  } | j ƒ  Wd  QX| j j d | k s%t	 ‚ t  j d t  j t  j ƒ } t | ƒ t | j t  j ƒ ƒ k skt	 ‚ t
 | ƒ t
 | j t  j ƒ ƒ k s•t	 ‚ t j rËt | ƒ t | j t  j ƒ ƒ k sËt	 ‚ n  t j t ƒ  } | j ƒ  Wd  QX| j j d | k s	t	 ‚ t  j d t  j ƒ } t | ƒ d k s6t	 ‚ t
 | ƒ d k sNt	 ‚ t j rrt | ƒ d k srt	 ‚ n  t j t ƒ  } | j ƒ  Wd  QX| j j d | k s°t	 ‚ t  j d t  j d t
 ƒ} t | ƒ d k sãt	 ‚ t
 | ƒ d k sût	 ‚ t j rt | ƒ d k st	 ‚ n  | j ƒ  d k s7t	 ‚ t  j d d g t  j ƒ } t j t ƒ  } t | ƒ Wd  QX| j j d | k st	 ‚ t j t ƒ  } t
 | ƒ Wd  QX| j j d | k sÎt	 ‚ t j rt j t ƒ  } t | ƒ Wd  QX| j j d | k st	 ‚ n  t j t ƒ  } | j ƒ  Wd  QX| j j d | k sVt	 ‚ d  S(	   Ni   uG   only dimensionless scalar quantities can be converted to Python scalarsuO   only integer dimensionless scalar quantities can be converted to a Python indexi    g®Gáz®ó?i   R4   g       @(   R   R   R#   R   R   R   R7   R-   R}   R   R6   R   t   PY2t   longt	   __index__RM   t   to_valueR   (	   R   R$   t   converter_err_msgt   index_err_msgR   R%   R&   R'   R>   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_numeric_converters  sh    	**	-			u/   list multiplication only works for numpy <=1.10c         C` sP   t  j d t  j d t ƒ} | d d d g d d d d d d g k sL t ‚ d S(   u*   Test that use of __index__ actually works.i   R4   u   au   bu   cN(   R   R   R   R6   R   (   R   R'   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt+   test_numeric_converter_to_index_in_practicea  s    c         C` s   t  j d t  j ƒ } t j t j | ƒ t j d g ƒ k ƒ sE t ‚ t  j d d d g t  j ƒ } t j t j | ƒ t j d d d g ƒ k ƒ s™ t ‚ d  S(   Ng®Gáz®ó?g      ð?g       @g      @(   R   R   R#   R+   Rb   R8   R   (   R   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_array_convertersh  s    0(   i   i   (    RH   RI   R   R   R   R$   Rg   R%   Rj   Rk   Rl   Rm   Rn   Ro   R   t   markt   skipift   syst   version_infoRw   Rx   Rz   R|   R€   R…   R•   R˜   RŸ   t   xfailR   R    R¡   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRf     s*   							
						!			Zc          C` sÔ   t  j d d t  j ƒ}  |  j } | d k s3 t ‚ |  j t  j ƒ } | d k sW t ‚ |  j t  j ƒ } | j d k s~ t ‚ t j	 t  j
 ƒ  |  j t  j ƒ Wd  QXt j	 t  j
 ƒ  |  j t  j ƒ Wd  QXd  S(   Ngš™™™™™¹?R    g-Cëâ6?(   R   R   R   R-   R   Rœ   t	   kilometerRˆ   R   R   R{   t   zettastokes(   R$   R-   t   value_in_kmRh   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_conversions  s    	c          C` s  t  j d d g d t  j ƒ}  |  j } d | d <t j |  d d g t  j k ƒ sY t ‚ |  j ƒ  } d | d <t j |  d d g t  j k ƒ s— t ‚ |  j d ƒ } d | d <t j |  d d g t  j k ƒ sØ t ‚ |  j d	 ƒ } d | d <t j |  d d g t  j k ƒ st ‚ d  S(
   Ng      ð?g       @R    g        i    g      @i   u   mu   cm(   R   R   R   R-   R+   Rb   R   Rœ   (   R$   t   v1t   v2t   v3t   v4(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_value_views‚  s    	
(
(
(
c          C` so  t  j d d t  j ƒ}  |  j t  j d t  j ƒ  ƒ} t | d ƒ |  j t  j d t  j ƒ  ƒ} t | j | ƒ t  j d d t  j	 ƒ}  |  j t  j
 d t  j ƒ  ƒ} |  j t  j
 d t  j ƒ  ƒ} | j t  j d t  j ƒ  ƒ} | j t  j d t  j ƒ  ƒ} t | d ƒ t | j | ƒ | j t  j
 k s6t ‚ t | d ƒ t | j | ƒ | j t  j k skt ‚ d  S(   Ngš™™™™™¹?R    t   equivalenciesg  €\VæAgš™™™™™Ù?gö(\8yAgKƒ2·N{?(   R   R   R   Rœ   t   Hzt   spectralR   Rˆ   R-   t	   arcsecondt   aut   parallaxt	   arcminuteR    R   (   R$   R¬   R%   R­   R&   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt#   test_quantity_conversion_with_equiv”  s     c          ` s	  d t  j f ‡  f d †  ƒ  Y‰  ˆ  d d g d t  j ƒ}  |  j t  j ƒ } | j t  j k sd t ‚ | j t  j ƒ } | j t  j k sŽ t ‚ t | j |  j ƒ ˆ  d d g d t  j ƒ} | j t  j ƒ j t  j ƒ } | j t  j k sò t ‚ t | j | j ƒ d  S(   Nt
   MySpectralc           ` s2   e  Z e j ƒ  Z ‡  f d  †  Z ‡  f d †  Z RS(   c         ` s   | j  ˆ  ƒ S(   N(   Ra   (   R   t   objR    (   R¸   (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   __quantity_view__­  s    c         ` s   ˆ  | | Ž  S(   N(    (   R   R}   t   kwargs(   R¸   (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   __quantity_instance__°  s    (   RH   RI   R   R²   t   _equivalenciesRº   R¼   (    (   R¸   (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyR¸   ª  s   iè  iÐ  R    (	   R   R   R±   Rˆ   t   nmR    R   R   R-   (   R$   R%   R&   R'   R>   (    (   R¸   s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt.   test_quantity_conversion_equivalency_passed_on©  s    	c           C` sB   t  j j d t  j ƒ s t ‚ t  j j d t  j ƒ s> t ‚ d  S(   Ni    i   (   R   t   degt   is_equivalentt   radianR   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_self_equivalencyÁ  s    c          C` sâ   d t  j t  j d d t  j d }  |  j j d k s? t ‚ |  j j t  j k sZ t ‚ d t  j } | j j d k s t ‚ | j j t  j k sš t ‚ d t  j } | j j d k s¿ t ‚ | j j d t  j k sÞ t ‚ d  S(   Ng      $@i   g      i@iú   i
   i   (   R   R#   R5   t   mst   siR-   R   R    (   R$   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_siÆ  s    'c          C` s"  d t  j t  j d d t  j d }  |  j j d k s? t ‚ |  j j t  j k sZ t ‚ d t  j } | j j d k s t ‚ | j j t  j k sš t ‚ d t  j } | j j d k s¿ t ‚ | j j d t  j k sÞ t ‚ d t  j	 } | j j d k st ‚ | j j t  j
 k st ‚ d  S(	   Ng      $@i   g      i@iú   iè  i
   i   id   (   R   R.   R5   RÄ   t   cgsR-   R   R    R#   t   Pat   barye(   R$   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_cgsÔ  s    't   TestQuantityComparisonc           B` s   e  Z d  „  Z d „  Z RS(   c         C` sÝ   t  j d d d ƒt  j d d d ƒk s0 t ‚ t  j d d d ƒt  j d d d ƒk sa t ‚ t  j d d t  j ƒt  j d d t  j ƒk t k s t ‚ t  j d d t  j ƒt  j d d t  j ƒk t k sÙ t ‚ d  S(   Niè  R    u   mi   u   kmiL  (   R   R   R   R#   R5   RL   RC   (   R   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_equalityè  s    01<c         C` sº  t  j d d t  j ƒt  j d d t  j ƒk s6 t ‚ t  j d d t  j ƒt  j d d t  j ƒk  sl t ‚ t j t  j ƒ ; t  j d d t  j ƒt  j d d t  j ƒk sµ t ‚ Wd  QXt j t  j ƒ ; t  j d d t  j ƒt  j d d t  j ƒk  st ‚ Wd  QXt  j d d t  j ƒt  j d d t  j ƒk s@t ‚ t  j d d t  j ƒt  j d d t  j ƒk svt ‚ t  j d d t  j ƒt  j d d t  j ƒk s¬t ‚ t  j d d t  j ƒt  j d d t  j ƒk sât ‚ t j t  j ƒ ; t  j d d t  j ƒt  j d d t  j ƒk s+t ‚ Wd  QXt j t  j ƒ ; t  j d d t  j ƒt  j d d t  j ƒk szt ‚ Wd  QXt  j d d t  j ƒt  j d d t  j ƒk s¶t ‚ d  S(   NiL  R    i   i„  iè  i°  (	   R   R   R   R§   R   R   R   R{   R   (   R   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_comparisonï  s     66<<66666<(   RH   RI   RÌ   RÍ   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRË   æ  s   	t   TestQuantityDisplayc           B` s°   e  Z e j d  d d d e ƒZ e j d d d ƒZ e j d  d d g d d ƒZ d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   i   R    u   mR4   gÍÌÌÌÌÌô?gffffff@gÍÌÌÌÌÌ!@c         C` sØ   t  j d d d ƒ} t  j d d d d t ƒ} t rw t |  j | ƒ d k sU t ‚ t |  j | ƒ d k sµ t ‚ n> t |  j | ƒ d k s– t ‚ t |  j | ƒ d	 k sµ t ‚ t |  j | ƒ d
 k sÔ t ‚ d  S(   Ng      ð?R    u   m-1i   R4   u   <Quantity 1.0>u   <Quantity [ 1. , 2.3, 8.9]>u   <Quantity 1.>u   <Quantity [1. , 2.3, 8.9]>u   <Quantity 1>(   R   R   R6   R   t   reprt
   scalarintqR   t   arrq(   R   R%   R&   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt    test_dimensionless_quantity_repr  s    "c         C` s¹   t  j d d d ƒ} t  j d d d d t ƒ} t |  j | ƒ d k sO t ‚ t |  j | ƒ d k sn t ‚ t r– t |  j | ƒ d k sµ t ‚ n t |  j | ƒ d	 k sµ t ‚ d  S(
   Ng      ð?R    u   m-1i   R4   u   1.0u   1u   [ 1.   2.3  8.9]u   [1.  2.3 8.9](   R   R   R6   t   strRÐ   R   R   RÑ   (   R   R%   R&   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_dimensionless_quantity_str  s    "c         C` s.   t  j d ƒ } t | d ƒ d k s* t ‚ d  S(   Ng…ëQ¸	@u   .2fu   3.14(   R   R   t   formatR   (   R   R$   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt"   test_dimensionless_quantity_format#  s    c         C` s:   t  |  j ƒ d k s t ‚ t  |  j ƒ d k s6 t ‚ d  S(   Nu   1 mu   1.3 m(   RÓ   RÐ   R   t   scalarfloatq(   R   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_scalar_quantity_str'  s    c         C` s:   t  |  j ƒ d k s t ‚ t  |  j ƒ d k s6 t ‚ d  S(   Nu   <Quantity 1 m>u   <Quantity 1.3 m>(   RÏ   RÐ   R   R×   (   R   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_scalar_quantity_repr+  s    c         C` sC   t  r$ t |  j ƒ d k s? t ‚ n t |  j ƒ d k s? t ‚ d  S(   Nu   [ 1.   2.3  8.9] mu   [1.  2.3 8.9] m(   R   RÓ   RÑ   R   (   R   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_array_quantity_str/  s    c         C` sC   t  r$ t |  j ƒ d k s? t ‚ n t |  j ƒ d k s? t ‚ d  S(   Nu   <Quantity [ 1. , 2.3, 8.9] m>u   <Quantity [1. , 2.3, 8.9] m>(   R   RÏ   RÑ   R   (   R   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_array_quantity_repr5  s    c         C` s^   t  |  j d ƒ d k s t ‚ t  |  j d ƒ d k s< t ‚ t  |  j d ƒ d k sZ t ‚ d  S(   Nu   02du   01 mu   .1fu   1.3 mu   .0fu   1 m(   RÕ   RÐ   R   R×   (   R   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_scalar_quantity_format;  s    c         C` sY   t  j d ƒ j t j ƒ } t | ƒ j t ƒ s6 t ‚ t	 | ƒ j t d ƒ sU t ‚ d  S(   Ng      $@u   >(
   R+   RA   Ra   R   R   RÓ   t   endswithR   R   RÏ   (   R   t   bad_quantity(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_uninitialized_unit_format@  s    c         C` s*  d d l  m } t j d d ƒ } |  j j ƒ  d k s= t ‚ |  j j ƒ  d k sX t ‚ | j ƒ  d k sp t ‚ |  j j ƒ  d k s‹ t ‚ t	 j
 d	 ƒ t j } t	 j
 d
 ƒ t j } t	 j
 d ƒ d t j } t	 j ƒ  } | j } zît j d d ƒ } t	 j d d d g ƒ t j }	 t	 j d d ƒ | j ƒ  d k sBt ‚ |	 j ƒ  d k sZt ‚ t	 j d d ƒ | j ƒ  d k s‚t ‚ |	 j ƒ  d k sšt ‚ d	 | _ | j ƒ  }
 d |
 k sÁt ‚ | j ƒ  } d | k sßt ‚ | j ƒ  } d | k sýt ‚ d | _ | j ƒ  }
 d |
 k s$t ‚ | j ƒ  } d | k sBt ‚ | j ƒ  } d | k s`t ‚ d | _ t	 j d d ƒ | j ƒ  }
 d |
 k s—t ‚ | j ƒ  } d | k sµt ‚ | j ƒ  } d | k sÓt ‚ Wd  t	 j |   | | _ Xt	 j t	 j t	 j g t j } | j ƒ  d k s&t ‚ d  S(   Ni   (   t   confg  ì“áBu   m/su   $1 \; \mathrm{m}$u   $1.3 \; \mathrm{m}$u,   $1.5 \times 10^{14} \; \mathrm{\frac{m}{s}}$u   $[1,~2.3,~8.9] \; \mathrm{m}$id   iè  i'  g    eÍÍAgoÍX4oÍAg8ÛÜ˜ž@g¨[óW4oAi    t	   precisioni   u1   $9.8765432 \times 10^{8} \; \mathrm{\frac{m}{s}}$u6   $[7.89123,~1.2345679 \times 10^{8},~0] \; \mathrm{cm}$i   u+   $9.9 \times 10^{8} \; \mathrm{\frac{m}{s}}$u,   $[7.9,~1.2 \times 10^{8},~0] \; \mathrm{cm}$u   \dotsié  iÿÿÿÿt	   thresholdic   u,   $[\infty,~-\infty,~{\rm NaN}] \; \mathrm{m}$(   t   units.quantityRà   R   R   RÐ   t   _repr_latex_R   R×   RÑ   R+   RA   R#   t   get_printoptionst   latex_array_thresholdR8   R.   t   set_printoptionst   inft   nan(   R   Rà   t   q2scalart   qmedt   qbigt   qvbigt   popst   oldlatR0   t   qat   lsmedt   lsbigt   lsvbigt   qinfnan(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_repr_latexE  s^    					
 (   RH   RI   R   R   R6   RÐ   R×   RÑ   RÒ   RÔ   RÖ   RØ   RÙ   RÚ   RÛ   RÜ   Rß   Rõ   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRÎ   	  s   		
							c          C` sB   d t  j }  |  j ƒ  d t  j t  j t  j d k s> t ‚ d  S(   Ni   iþÿÿÿ(   R   t   Nt	   decomposeR‹   R#   R5   R   (   R$   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_decompose‚  s    c          C` sÙ   t  j d d d g ƒ t j d t j }  t  j |  j ƒ  j t  j d d d g ƒ k ƒ s` t ‚ t  j |  t  j d d d g ƒ t j d t j k ƒ sŸ t ‚ t  j |  j ƒ  j t  j d d d g ƒ k ƒ sÕ t ‚ d S(	   u  
    Regression test for bug #1163

    If decompose was called multiple times on a Quantity with an array and a
    scale != 1, the result changed every time. This is because the value was
    being referenced not copied, then modified, which changed the original
    value.
    i   i   i   g       @gü©ñÒMb@?gü©ñÒMbP?gú~j¼t“X?N(	   R+   R8   R   R#   RM   Rb   R÷   R-   R   (   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_decompose_regression‡  s    	*6?c          C` s7  t  j t j d ƒ t  j ƒ }  t |  j t j ƒ s9 t ‚ |  j	 sI t ‚ t
 |  ƒ t
 |  j ƒ k sj t ‚ |  d d !} | j |  j k s t ‚ t | t  j ƒ s§ t ‚ t
 | ƒ d k s¿ t ‚ t  j d t  j ƒ } | j	 sã t ‚ t j t ƒ  t
 | ƒ Wd QXt j t ƒ  | d Wd QXt  j t j d ƒ t  j d t ƒ} | j	 sTt ‚ t j t ƒ  t
 | ƒ Wd QXt j t ƒ  | d Wd QXt | j t ƒ sªt ‚ t j d d d g d t d ƒ t j f t d ƒ t j f t d ƒ t j f g ƒ} t  j | t  j ƒ } | j	 s#t ‚ | d } | j | d j ƒ  k sLt ‚ | j | j k sdt ‚ t | t  j ƒ s|t ‚ | j	 s‹t ‚ | d } t j | j | d k ƒ s·t ‚ | j | j k sÏt ‚ t | t  j ƒ sçt ‚ | j	 s÷t ‚ | d d } | j | j k st ‚ t | t  j ƒ s5t ‚ | j	 sDt ‚ | d d }	 |	 j	 sat ‚ |	 | k sst ‚ t  j t t d ƒ ƒ t  j ƒ }  t |  j t j ƒ s¯t ‚ t |  d j t j d ƒ d ƒ t |  d j t j d ƒ d ƒ t j t  j ƒ & t |  d j t j d ƒ d ƒ Wd QXt j t  j ƒ & t |  d j t j d ƒ d ƒ Wd QXt j d ƒ t  j }
 t  j t j d ƒ } t j |  |
 k ƒ s¬t ‚ t j |
 | k ƒ sÇt ‚ t j t ƒ  t |  ƒ Wd QXt j t ƒ  t |  ƒ Wd QXt j r3t j t ƒ  t |  ƒ Wd QXn  d S(   u0   
    Test using quantites with array values
    i
   i   i   i   g      $@Ni    R4   g      ð?g       @g      @g      @g      @g      @g      @g       @g      "@u   xu   yu   zi   (   g      ð?g       @g      @(   g      @g      @g      @(   g      @g       @g      "@(   R   R   R+   RA   R   R   R-   R`   R   t   isscalart   lenR    R   R   R   R8   R6   RÓ   R7   t   kpct   itemRb   t   listR   R   R{   R   R™   Rš   (   t   qsect	   qsecsub25t   qsecnotarrayt   qseclen0arrayRD   t   qkpct   qkpc0t   qkpcxt   qkpcx1t   qkpc1xt   qsec2t   qsec3(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_arrays–  s~    !$

"!!!''	c          C` sw   t  j d d d g ƒ t j }  |  d d t j k s< t ‚ t  j |  d d !t j d d g t j ƒ k ƒ ss t ‚ d  S(   Ng      ð?g       @g      @i    i   (   R+   R8   R   R#   R   Rb   R   (   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_array_indexing_slicingð  s    c          C` sw   t  j d d d g ƒ t j }  t  j d g ƒ t j |  d d +t  j |  t  j d d d g ƒ t j k ƒ ss t ‚ d  S(   Ng      ð?g       @g      @g      y@i   i   g      @(   R+   R8   R   R#   R.   Rb   R   (   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_array_setsliceö  s     c          C` sã   t  j d t  j t  j ƒ }  |  d } d |  } |  t j d ƒ } | j d k sX t ‚ | j t  j t  j k sw t ‚ | j d k sŒ t ‚ | j t  j t  j k s« t ‚ | j d k sÀ t ‚ | j t  j t  j k sß t ‚ d S(   u)   
    Regression test from issue #679
    g      @i   g       @g      à?N(	   R   R   R   R   R+   R8   R-   R   R    (   R0   t   qott   toqt   npqot(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_inverse_quantityü  s    

c          C` sh   t  j d t  j t  j t  j ƒ }  t j t ƒ  d |  _ Wd  QXt j t ƒ  t  j |  _	 Wd  QXd  S(   Ngš™™™™™#@i   (
   R   R   R   R   R   R   R2   R-   R‹   R    (   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_mutability  s
    #c          C` sï   t  j d t  j ƒ }  t  j |  t  j ƒ } | j d k s? t ‚ t  j |  | g t  j ƒ } | d j d k ss t ‚ | d j d k sŒ t ‚ t  j | |  g ƒ } | j | j k s¹ t ‚ | d j d k sÒ t ‚ | d j d k së t ‚ d  S(   Ni<   i   i    (   R   R   R   t   minuteR-   R   R    (   R$   R%   R&   R'   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt'   test_quantity_initialized_with_quantity  s    c          C` sy   d t  j d }  |  j d k s& t ‚ |  j t  j t  j k sE t ‚ |  d } | j t  j t  j t  j k su t ‚ d  S(   Ng      ð?u   si   u   m(   R   R#   R-   R   R    R5   (   R$   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_string_unit)  s
    
c           C` s   d t  j d  S(   Nu   foo(   R   R#   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt!   test_quantity_invalid_unit_string2  s    c          C` sR   t  j d t  j ƒ }  t |  _ t |  j d ƒ t |  j d ƒ t |  j d ƒ d  S(   Ng      ð?id   gÁm²Ì‹®‚<(	   R   R   R   RL   t    _include_easy_conversion_membersR   Rg   R.   t   parsec(   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_implicit_conversion7  s
    	c          C` sÒ   t  j d t  j ƒ }  t |  _ d |  _ t |  ƒ } d | k sE t ‚ d | k sW t ‚ d | k si t ‚ d | k s{ t ‚ d | k s t ‚ d | k sŸ t ‚ d	 | k s± t ‚ t j	 t
 ƒ  |  j Wd  QXd  S(
   Ng      ð?i*   u
   centimeteru   cmu   parsecu   foou   tou   valueu   __setattr__(   R   R   R   RL   R  t   foot   dirR   R   R   R2   t   l(   R0   t   attrs(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt%   test_implicit_conversion_autocomplete@  s    		c          C` s}   d d g t  j }  t |  ƒ s% t ‚ t j t |  ƒ ƒ } | d t  j k sS t ‚ t | ƒ sf t ‚ t j t	 t | ƒ d S(   u‚   Regressiont est for issue #878.

    Scalar quantities should not be iterable and should raise a type error on
    iteration.
    g      .@g      1@N(
   R   R#   R	   R   R   t   nextt   iterR   R   R   (   R$   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_iterabilityT  s    c          C` sÎ  t  j t j d d d g d d d g g ƒ d t  j ƒ}  |  j ƒ  } t j |  j | j k ƒ sf t ‚ |  j	 | j	 k s~ t ‚ |  j
 | j
 k s– t ‚ |  j | j k	 s® t ‚ |  j d d	 ƒ } | j d
 sÓ t ‚ t j |  j | j k ƒ sô t ‚ |  j	 | j	 k st ‚ |  j
 | j
 k s$t ‚ |  j | j k	 s<t ‚ |  j d d ƒ } | j d sat ‚ t j |  j | j k ƒ s‚t ‚ |  j	 | j	 k sšt ‚ |  j
 | j
 k s²t ‚ |  j | j k	 sÊt ‚ d  S(   Ng      ð?g       @g      @g      @g      @g      @R    RP   u   Fu   F_CONTIGUOUSu   Cu   C_CONTIGUOUS(   R   R   R+   R8   R#   R@   Rb   R-   R   R    R4   RQ   (   R$   R%   R&   R'   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRF   d  s$    9!!!c          C` s¾   t  j t j d d d g ƒ d t  j ƒ}  t j |  ƒ } t | t  j ƒ sQ t ‚ t j	 |  j
 | j
 k ƒ sr t ‚ |  j | j k sŠ t ‚ |  j | j k s¢ t ‚ |  j
 | j
 k	 sº t ‚ d  S(   Ng      ð?g       @g      @R    (   R   R   R+   R8   R#   R@   t   deepcopyR   R   Rb   R-   R    R4   (   R$   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_deepcopy}  s    *!c           C` sa   d d t  j k s t ‚ t j d ƒ d t  j k s; t ‚ d t  j t j d ƒ k s] t ‚ d S(   u˜   
    A regression test to ensure that numpy scalars are correctly compared
    (which originally failed due to the lack of ``__array_priority__``).
    i
   g      $@N(   R   R#   R   R+   t   int64(    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_equality_numpy_scalar‰  s    "c          C` s†   t  j d ƒ t j }  t j t j |  ƒ ƒ } t  j |  j | j k ƒ sO t	 ‚ |  j
 j | j
 ƒ sj t	 ‚ |  j
 | j
 k s‚ t	 ‚ d S(   u+   
    Testing pickleability of quantity
    i
   N(   R+   RA   R   R#   t   picklet   loadst   dumpsRb   R-   R   R    RÁ   (   R$   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_pickelability“  s
    !c          C` s¬  t  j d ƒ }  |  j t  j k s' t ‚ |  j d k s< t ‚ t  j d ƒ }  |  j t  j t  j k sj t ‚ |  j d k s t ‚ t  j |  ƒ t  j d ƒ k s£ t ‚ t  j d ƒ }  |  t  j d t  j ƒ k sÓ t ‚ t  j d ƒ }  |  t  j d t  j	 ƒ k st ‚ t  j d	 ƒ }  |  t  j d t  j	 ƒ k s3t ‚ t  j d
 ƒ }  |  t  j d t  j	 ƒ k sct ‚ t  j d ƒ }  |  t  j d t  j	 ƒ k s“t ‚ t  j d t  j ƒ }  |  t  j d t  j ƒ k sÉt ‚ t  j d t  j ƒ }  |  j d k sót ‚ |  j t  j k st ‚ t  j d ƒ }  |  t  j d t  j
 ƒ k s;t ‚ t j t ƒ  t  j d ƒ Wd  QXt j t ƒ  t  j d ƒ Wd  QXt j t ƒ  t  j d ƒ Wd  QXt j t ƒ  t  j d ƒ Wd  QXt j t ƒ  t  j d ƒ Wd  QXt j t ƒ  t  j d ƒ Wd  QXt j t ƒ  t  j d g ƒ Wd  QXt j t ƒ  t  j t j d g ƒ ƒ Wd  QXt j t ƒ  t  j d ƒ Wd  QXt j t ƒ  t  j d ƒ Wd  QXd  S(   Nu   1g      ð?u   1.5 m/sg      ø?u   .5 mg      à?u   -1e1kmiöÿÿÿu   -1e+1kmu   +.5kmu   +5e-1kmu   5g      @u   5 kmg     ˆ³@u   5Emu    u   mu	   1.2.3 degu   1+degu   1-2degu
   1.2e-13.3mu   5Eu   5 foo(   R   R   R    R   R   R-   R#   R5   R!   RM   t   EmR   R   R   R+   R8   R)   (   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt(   test_quantity_initialisation_from_string¡  sX    $!!!!!!!c          C` sB   t  j d ƒ t j }  t j t ƒ  t  j |  |  ƒ } Wd  QXd  S(   Ni
   (   R+   RA   R   R#   R   R   R   t   bitwise_and(   R$   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_unsupportedÑ  s    c          C` s)   d t  j }  |  j t  j k s% t ‚ d  S(   Ng      ð?(   R   RŠ   R    R   (   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_unit_identityØ  s    c          C` sd   t  j d d g ƒ t j }  |  j t j ƒ } |  j d d k sG t ‚ | j d d k s` t ‚ d  S(   Niè  iÐ  i    i   (   R+   R8   R   R#   Rˆ   RM   R-   R   (   R$   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_to_viewÝ  s    c           C` s   d t  j d d  S(   Ng      @i   i   (   i   i   (   R   R#   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_tuple_powerä  s    c          C` sg   d t  j d t d d ƒ }  |  j d k s3 t ‚ |  j t  j k sK t ‚ |  j j d k sc t ‚ d  S(   Ng      9@i   i   g      @u   f(   R   R#   R   R-   R   R    R4   t   kind(   R0   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_fraction_poweré  s    c           C` s(   t  j j j t j j j k s$ t ‚ d  S(   N(   R   R   t   argmaxt   __doc__R+   R`   R   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_inherit_docstringsò  s    c          C` sc  d d l  m }  |  d t j d ƒ t j d ƒ g d d d g ƒ } t j | d _ t j | d ƒ } | j t j k s~ t ‚ t	 | j
 | d ƒ t j | d ƒ } | j t j k s½ t ‚ t	 | j
 | d ƒ t j | d t j ƒ } | j t j k st ‚ t	 | j
 | d d ƒ t j | d t j ƒ } | j t j k sKt ‚ t	 | j
 | d ƒ d	 S(
   u»   
    Checks that units from tables are respected when converted to a Quantity.
    This also generically checks the use of *anything* with a `unit` attribute
    passed into Quantity
    i   (   t   Tablet   datai   t   namesu   au   biè  N(   t   tableR5  R+   RA   R   Rü   R    R   R   R   R-   R   R   (   R5  t   tRð   t   qbt   qapt   qbp(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_quantity_from_tableö  s    3c          C` s&  d d l  m }  m } | t j d ƒ d t j ƒ} t j | ƒ } | d  | d *|  ƒ  } t j d ƒ t j | d <t j d ƒ t j | d <t	 | d ƒ | k sª t
 ‚ t j | d | d g ƒ j t j } d	 d d
 g } | | d	 f j | d | j k s
t
 ‚ | d | | | d	 f <d  S(   Ni   (   R5  t   Columng      $@R    i   i
   u   xu   yi    i   (   R8  R5  R>  R+   RA   R   Rc   R   t   onesRK   R   t   vstackt   TR    (   R5  R>  t   cR0   R9  t   xyt   ii(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt$   test_assign_slice_with_quantity_like  s    	'*c          C` sW  d d g t  j }  |  j d d t  j ƒ } t j | j d d d g k ƒ sS t ‚ | j t  j k sk t ‚ | j	 j
 d k sƒ t ‚ t t d ƒ rö |  j d d d g t  j ƒ } t j | j d d d d g k ƒ sÛ t ‚ | j t  j k sö t ‚ n  t j t  j ƒ  |  j d d t  j ƒ Wd	 QXd d g d
 d g g t  j }  |  j d d d g t  j d d ƒ} t j | j d d g d d g d
 d g g k ƒ s£t ‚ |  j d d d g t  j d d ƒ} t j | j d d d g d
 d d g g k ƒ sþt ‚ |  j d d t  j d d ƒ} t j | j d d d g d
 d d g g k ƒ sSt ‚ d	 S(   u¢   
    Test Quantity.insert method.  This does not test the full capabilities
    of the underlying np.insert, but hits the key functionality for
    Quantity.
    i   i   i    iè  u   fu   1.8.0iÐ  g      ø?Ni   i   i
   i   t   axis(   R   R#   t   insertRM   R+   Rb   R-   R   R    R4   R0  R
   R   R   R{   R5   (   R0   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_insert)  s,    '*%	%c          C` s–   t  j d t j d t j g d t ƒ}  t rb t |  ƒ d k sG t ‚ t	 |  ƒ d k s’ t ‚ n0 t |  ƒ d k sz t ‚ t	 |  ƒ d k s’ t ‚ d S(	   uÀ   
    Test print/repr of object arrays of Quantity objects with different
    units.

    Regression test for the issue first reported in
    https://github.com/astropy/astropy/issues/3777
    i   i   R4   u9   array([<Quantity 1.0 m>, <Quantity 2.0 s>], dtype=object)u#   [<Quantity 1.0 m> <Quantity 2.0 s>]u7   array([<Quantity 1. m>, <Quantity 2. s>], dtype=object)u!   [<Quantity 1. m> <Quantity 2. s>]N(
   R+   R8   R   R#   R5   R"   R   RÏ   R   RÓ   (   RD   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_repr_array_of_quantityP  s    	)t   TestSpecificTypeQuantityc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` sd   d t  j f d „  ƒ  Y} d | f d „  ƒ  Y} d | f d „  ƒ  Y} | |  _ | |  _ | |  _ d  S(   Nt   Lengthc           B` s   e  Z e j Z RS(    (   RH   RI   R   R#   t   _equivalent_unit(    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRK  d  s   t   Length2c           B` s   e  Z e j Z RS(    (   RH   RI   R   R#   t   _default_unit(    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRM  g  s   t   Length3c           B` s   e  Z e j Z RS(    (   RH   RI   R   R#   t   _unit(    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRO  j  s   (   R   t   SpecificTypeQuantityRK  RM  RO  (   R   RK  RM  RO  (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   setupc  s    		c      	   C` s   |  j  t j d ƒ t j ƒ } t | ƒ |  j  k s: t ‚ t j t j	 ƒ " |  j  t j d ƒ t j
 ƒ Wd  QXt j t j	 ƒ  |  j  t j d ƒ ƒ Wd  QX|  j t j d ƒ ƒ } t | ƒ |  j k sÒ t ‚ | j |  j j k sí t ‚ t j t j	 ƒ  |  j t j d ƒ ƒ Wd  QXd  S(   Ng      $@g      @(   RK  R+   RA   R   RM   RK   R   R   R   t   UnitTypeErrorRŠ   RM  RN  RO  (   R   R  t   l2(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_creationq  s    #c         C` s  t  j d ƒ t j j |  j ƒ } t | ƒ |  j k s= t ‚ t j	 t j
 ƒ % t  j d ƒ t j j |  j ƒ Wd  QXt  j d ƒ j |  j ƒ } t | ƒ |  j k s¬ t ‚ | j d  k sÁ t ‚ t  j d ƒ j |  j ƒ } t | ƒ |  j k s÷ t ‚ | j |  j j k st ‚ d  S(   Ng      @i   (   i   i   (   R+   RA   R   RM   Ra   RK  RK   R   R   R   RS  R5   RP  t   NoneR?  RO  R    (   R   R  t   vt   l3(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt	   test_view  s    "&c         C` sñ   |  j  t j d ƒ t j ƒ } | d t j } t | ƒ |  j  k sK t ‚ d t j | } t | ƒ |  j  k sw t ‚ | | } t | ƒ |  j  k sœ t ‚ | d t j } t | ƒ t j	 k sÈ t ‚ | | } t | ƒ t j	 k sí t ‚ d  S(   Ng      @g      ð?(
   RK  R+   RA   R   R.   R#   RK   R   RM   R   (   R   R  t   sum1t   sum2t   sum3t   res1t   res2(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt&   test_operation_precedence_and_fallback  s    

(   RH   RI   RR  RU  RY  R_  (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRJ  b  s   			u   not HAS_MATPLOTLIBu   MATPLOTLIB_LT_15t   TestQuantityMatplotlibc           B` s    e  Z d  Z d „  Z d „  Z RS(   u:  Test if passing matplotlib quantities works.

    TODO: create PNG output and check against reference image
          once `astropy.wcsaxes` is merged, which provides
          the machinery for this.

    See https://github.com/astropy/astropy/issues/1881
    See https://github.com/astropy/astropy/pull/2139
    c         C` s,   t  j d d d g d ƒ } t j | ƒ d  S(   Ni   i   i   u   s(   R   R   t   pltt   plot(   R   R6  (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt	   test_plotª  s    c         C` sE   t  j d d d g d ƒ } d d d g t  j } t j | | ƒ d  S(   Ni   i   i   u   secondi   i   (   R   R   R#   Ra  t   scatter(   R   t   xt   y(    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_scatter®  s    (   RH   RI   R3  Rc  Rg  (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyR`    s   	c          C` s˜   d t  j f d „  ƒ  Y}  t  j d t  j ƒ } |  | _ t  j d | ƒ } t | ƒ t  j k sd t ‚ t  j d | d t ƒ} t | ƒ |  k s” t ‚ d  S(   Nt
   MyQuantityc           B` s   e  Z RS(    (   RH   RI   (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyRh  µ  s   u   my_degg      ð?RJ   (   R   R   R!   RÀ   t   _quantity_classRK   R   RL   (   Rh  t   my_unitR$   R%   (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   test_unit_class_override´  s    	(c   R3  t
   __future__R    R   R   R   R¤   R@   R;   t	   fractionsR   R   t   numpyR+   t   numpy.testingR   R   R   t   tests.helperR   t   utilsR	   R
   t   utils.compatR   R   t   utils.compat.numpyR   R‡   R   R   Rã   R   t   extern.six.movesR   R   R%  t   externR   t
   matplotlibt   uset   matplotlib.pyplott   pyplotRa  t   distutils.versionR   t   __version__t   MATPLOTLIB_LT_15RL   t   HAS_MATPLOTLIBt   ImportErrorRC   R"   R   Rf   Rª   R¯   R·   R¿   RÃ   RÆ   RÊ   RË   RÎ   Rø   Rù   R
  R  R  R  R  R  R  R)   R  R  R  R   RF   R"  R$  R(  R*  R,  R-  R.  R/  R1  R4  R=  RE  RH  RI  RJ  R¢   R£   R¦   R`  Rk  (    (    (    s@   lib/python2.7/site-packages/astropy/units/tests/test_quantity.pyt   <module>   sŽ   "

âÿ f							#y			Z				
										
		0									'	;