ó
~9­\c           @   sµ  d  d l  m Z m Z m Z m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z d  d l m Z m Z m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 d  d l7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< d  d l= m> Z> m? Z? d  d l@ mA ZA d  d lB mC ZC mD ZD mE ZE e> d ZF d	 „  ZG d
 „  ZH d „  ZI d „  ZJ d „  ZK d „  ZL d „  ZM d „  ZN d „  ZO d „  ZP d „  ZQ d „  ZR d „  ZS d „  ZT d „  ZU d „  ZV d „  ZW d „  ZX eC d „  ƒ ZY d „  ZZ d „  Z[ d „  Z\ d „  Z] d  „  Z^ d! „  Z_ d" S(#   iÿÿÿÿ(   t   Abst   Addt   Basict   Functiont   Numbert   Rationalt   St   Symbolt   difft   expt	   integratet   logt   sint   sqrtt   symbols(   t   amount_of_substancet
   convert_tot	   find_unitt   volume(!   t   amut   aut
   centimetert   coulombt   dayt   energyt   foott   gramst   hourt   incht   kgt   kmt   mt   metert   milet
   millimetert   minutet   pressuret   quartt   st   secondt   speed_of_lightt   temperaturet   bitt   bytet   kibibytet   mebibytet   gibibytet   tebibytet   pebibytet   exbibytet   kilogramt   gravitational_constant(   t	   Dimensiont   charget   lengtht   timet   dimsys_default(   t   PREFIXESt   kilo(   t   Quantity(   t   XFAILt   raisest   warns_deprecated_sympyt   kc           C   s   t  t ƒ d k s t ‚ d  S(   NR2   (   t   strR   t   AssertionError(    (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_str_repr   s    c           C   s8   d t  d t  k s t ‚ d t  d t k s4 t ‚ d  S(   Ni
   (   R   RA   R&   (    (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_eq   s    c          C   sË   t  d ƒ }  |  j t ƒ |  j t d ƒ ƒ |  j t ƒ d t k sK t ‚ t j t t	 ƒ d t t	 k sr t ‚ t
 j t	 ƒ d t	 k s‘ t ‚ |  j t	 ƒ |  k s¬ t ‚ t j t ƒ t k sÇ t ‚ d  S(   Nt   q1iˆ  iJxÞi€Q (   R;   t   set_dimensionR6   t   set_scale_factorR   R   R   RA   R(   R&   R   (   t   q(    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_convert_to   s    'c          C   sý  t  d d d ƒ}  |  j t ƒ |  j d ƒ t  d d d ƒ} | j t ƒ | j d ƒ t  d ƒ } | j t ƒ | j t ƒ t  d ƒ } | j t ƒ | j d t ƒ |  j d k s½ t ‚ |  j t k sÒ t ‚ |  j	 t
 d ƒ k sí t ‚ | j t k st ‚ | j d k st ‚ | j	 t
 d ƒ k s2t ‚ | j d	 k sGt ‚ | j | j Œ  | k set ‚ | j | j Œ  j | j k s‰t ‚ | j t k sžt ‚ | j d
 k s³t ‚ t ƒ   t  d d d ƒ Wd  QXt ƒ   t  d d t d t ƒWd  QXd  S(   Nt   s10t   abbrevt   sabbri
   t   ut   damR   i   iè  iˆ  t   invalidt	   dimensioni   t   mismatcht   scale_factor(   R;   RE   R7   RF   R6   R:   RQ   RA   RO   RJ   R   t   funct   argsR>   R   (   RG   RL   R   t   v(    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_Quantity_definition/   s6    $

c          C   sX  t  d ƒ }  |  j t ƒ |  j t j ƒ |  j t d ƒ k sD t ‚ |  j	 t d ƒ k s_ t ‚ t  d d d ƒ}  |  j t ƒ |  j t d ƒ ƒ |  j t d ƒ k s¬ t ‚ |  j	 t d ƒ k sÇ t ‚ |  j
 d k sÜ t ‚ t |  j
 t ƒ sô t ‚ t  d d d ƒ}  |  j t ƒ |  j d t ƒ |  j	 t d ƒ k s?t ‚ |  j
 d k sTt ‚ d  S(   NRL   RJ   t   omi   t   ikmi   i¸  (   R;   RE   R6   RF   R   t   Onet   nameR   RA   RJ   RQ   t
   isinstanceR   R:   (   RL   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_abbrevR   s"    c          C   sF   t  d d d ƒ}  t |  ƒ d k s* t ‚ t |  ƒ d k sB t ‚ d  S(   Nt   unitnameRJ   RM   (   R;   t   reprRA   R@   (   RL   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt
   test_printk   s    c          C   s|   t  d d d ƒ}  t  d ƒ } |  | k s0 t ‚ t  d d d ƒ} |  | k sT t ‚ t  d d d ƒ} |  | k sx t ‚ d  S(	   NRL   RJ   RM   t   v1t   v2t   dst   v3t   dm(   R;   RA   (   RL   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_Quantity_eqq   s    c          C   s
  t  d ƒ }  t  d ƒ } t  d ƒ } |  j t ƒ | j t ƒ | j t ƒ |  j t d ƒ ƒ | j t d ƒ ƒ | j t d ƒ ƒ t |  | t ƒ s t ‚ |  | j	 |  ƒ d t j
 |  k sÇ t ‚ t |  | t ƒ sà t ‚ |  | j	 |  ƒ t j
 |  k st ‚ d  S(   NRL   RT   t   wi
   i   i   i   (   R;   RE   R6   R7   RF   R   RZ   R   RA   R   t   Half(   RL   RT   Re   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_add_sub{   s    *c          C   sü   t  d ƒ }  t  d ƒ } t  d ƒ } |  j t t ƒ | j t t ƒ | j t t ƒ |  j t t ƒ | j t t ƒ | j t t ƒ | t |  | ƒ } t t  j	 | ƒ ƒ } t
 j | ƒ i d d 6d d 6k sÜ t ‚ t t t d ƒ k sø t ‚ d  S(	   Nt   v_w1t   v_w2t   v_w3i   R6   iÿÿÿÿR7   i   (   R;   RE   R6   R7   RF   R    R'   R    R4   t   get_dimensional_exprR8   t   get_dimensional_dependenciesRA   R   (   Rh   Ri   Rj   t   exprt   Dq(    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_quantity_abs’   s    c             sû   t  d ƒ ‰ t  d ƒ }  t  d ƒ ‰ ˆ j t ƒ |  j t ƒ ˆ j t ƒ ˆ j t d ƒ ƒ |  j t d ƒ ƒ ˆ j t d ƒ ƒ d „  ‰  t t ‡  ‡ ‡ f d †  ƒ t t ‡  ‡ ‡ f d	 †  ƒ t t ‡  ‡ f d
 †  ƒ t t ‡  ‡ f d †  ƒ d  S(   NRL   RT   Re   i
   i   i   c         S   s   t  j |  ƒ d  S(   N(   R;   t   _collect_factor_and_dimension(   Rm   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   check_unit_consistency¶   s    c              s   ˆ  ˆ ˆ ƒ S(   N(    (    (   Rq   RL   Re   (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   <lambda>¹   t    c              s   ˆ  ˆ ˆ ƒ S(   N(    (    (   Rq   RL   Re   (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyRr   º   Rs   c              s   ˆ  ˆ d ƒ S(   Ni   (    (    (   Rq   RL   (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyRr   »   Rs   c              s   ˆ  ˆ d ƒ S(   Ni   (    (    (   Rq   RL   (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyRr   ¼   Rs   (   R;   RE   R6   R7   RF   R   R=   t
   ValueError(   RT   (    (   Rq   RL   Re   sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_check_unit_consistency©   s    	c          C   sè  t  d ƒ }  t  d ƒ } t  d ƒ } t  d ƒ } t  d ƒ } |  j t ƒ | j t ƒ | j t ƒ | j t t ƒ | j t t ƒ |  j t d ƒ ƒ | j t d ƒ ƒ | j t d ƒ ƒ | j t d ƒ ƒ | j t d ƒ ƒ d	 |  |  d
 k sþ t ‚ |  d	 |  k st ‚ |  | } | } | | k s6t ‚ | | j | ƒ k sQt ‚ |  d	 |  k sgt ‚ |  | } | } | | k s‰t ‚ | | j | ƒ k s¤t ‚ t  d ƒ } | j t d
 ƒ | j t d ƒ ƒ |  | d k sêt ‚ |  d d	 k s t ‚ |  d	 |  k st ‚ t  d ƒ }	 t  d ƒ }
 |	 j t d ƒ |
 j t d
 ƒ |	 j t d ƒ ƒ |
 j t d	 ƒ d ƒ |  d |	 k st ‚ |  d
 |
 k s¦t ‚ |  d |	 j |  ƒ k sÅt ‚ |  d
 |
 j |  ƒ k sät ‚ d  S(   NRL   RT   t   tt   uti
   i   i   i   i   iÿÿÿÿt   lp1i    t   u2t   u3id   (   R;   RE   R6   R7   RF   R   RA   R   (   RL   RT   Rv   Rw   R`   R_   t   ut1t   ut2Rx   Ry   Rz   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_mul_div¿   sT    

c          C   s‘  t  d t t t t d ƒ d k s+ t ‚ t  t t t ƒ t d d ƒ k sS t ‚ t	 t  t
 t t
 ƒ j d ƒ ƒ d k s t ‚ d t t t }  t  t  |  t t ƒ t ƒ }  |  t d ƒ d	 k sË t ‚ t t d ƒ t t ƒ k sí t ‚ t t ƒ d t k s	t ‚ t d
 ƒ }  t |  t t |  d t d t f ƒ d t t k sQt ‚ |  t t j |  d t d t f ƒ d t t k st ‚ d  S(   Ni   i   i°  iè  i'  i   s   6.0e+23I!>œ   IÈeae   Rv   i   (   R   R   R&   R   R   RA   R   R    R   R@   R   R   t   nR   R(   R#   R   R   R    R   R
   (   Rv   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt
   test_units  s    +(."<c           C   sR   t  d t t d t ƒ d k s' t ‚ t  d t t d t ƒ d k sN t ‚ d  S(   Ni   i   iç   (   R   R%   R   R    RA   R"   (    (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_issue_quart  s    'c           C   s   t  t k  j s t ‚ d  S(   N(   R   R&   t   is_RelationalRA   (    (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_issue_5565  s    c        0   C   sÌ  t  d ƒ d d d g k s! t ‚ t  t ƒ d d d d g k sE t ‚ t  t ƒ d d d d g k si t ‚ t  t ƒ d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 g/ k st ‚ t  t d5 ƒ d6 d7 d8 g k s3t ‚ t  t d5 ƒ d6 d7 d8 g k sXt ‚ t  t d9 ƒ d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH g k s¡t ‚ t  dI ƒ dJ dK dL dM dN g k sÈt ‚ d  S(O   NR   t   coulombst   coulomb_constantt   Ct   planck_chargeR   R   t   cmRc   t   ftR   t   lyt   mit   mmt   nmt   pmt   umt   ydt   nmit   feetR   R   R!   t   yardR    t   milest   yardst   inchest   meterst   micront   micronst	   decimetert	   kilometert	   lightyeart	   nanometert	   picometerR   t
   decimeterst
   kilometerst
   lightyearst
   micrometerR"   t
   nanometerst
   picometerst   centimeterst   micrometerst   millimeterst   nautical_milet   planck_lengtht   nautical_milest   astronomical_unitt   astronomical_unitsiÿÿÿÿt   Dt   dioptret   optical_poweri   t   lt   clt   dlt   mlt   literR%   t   literst   quartst	   decilitert
   centilitert
   deciliterst
   millilitert   centiliterst   milliliterst   planck_volumet   voltaget   VRT   t   voltt   voltst   planck_voltage(   R   RA   R   R5   R   R6   (    (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_find_unit   s&    !$$	$%%c          C   s¤   t  d ƒ }  t |  t |  ƒ t k s+ t ‚ t |  d t d |  ƒ d |  d t d k sb t ‚ t t t ƒ d k s} t ‚ t t d t ƒ d t k s  t ‚ d  S(   Nt   xi   i   i   (   R   R   R    RA   (   RÃ   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_Quantity_derivative6  s
    7c          C   sÀ   t  d ƒ }  t  d ƒ } |  j t t d t t ƒ | j t t t t d t ƒ |  | sf t ‚ |  | } t t  j	 | ƒ ƒ } t
 j | ƒ i d d 6d d 6d d 6d	 d
 6k s¼ t ‚ d  S(   NRD   t   q2i   iÿÿÿÿR6   t   massi   R)   iûÿÿÿR7   (   R;   RE   R6   R$   R)   R7   R   RA   R4   Rk   R8   Rl   (   RD   RÅ   RG   Rn   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_quantity_postprocessing>  s    !
c          C   s…  d t  d ƒ f t j d ƒ k s' t ‚ d t f t j t t ƒ k sL t ‚ d t t f t j t t d t d t	 ƒ k s… t ‚ t
 d ƒ \ }  } |  | d t f t j |  t | t ƒ k sÌ t ‚ t d	 ƒ } | j t t ƒ t | ƒ } d t t f t j t | ƒ ƒ k s!t ‚ t d
 ƒ } t d ƒ } | j t t ƒ | j t t ƒ | j t d ƒ d t t ƒ | j d t t ƒ t | d | ƒ } t d ƒ d t t f t j | ƒ k sÒt ‚ t d ƒ d t t | d } d t d ƒ d t  d ƒ f t j | ƒ k s(t ‚ | | | } t d ƒ d t d ƒ d t t t d ƒ d f t j | ƒ k st ‚ d  S(   Ni¸  i   ié  i   i$   i
   s   x yid   t   cHRh   Ri   i   i   i   i´  (   R4   R;   Rp   RA   R6   R    R   R7   R'   R   R   R   R   RE   R   R   R   R	   RF   R   R    (   RÃ   t   yRÈ   t   pHRh   Ri   Rm   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_factor_and_dimensionP  s6    '%& 3c       	   C   s¡   t  ƒ  - t d t t t d ƒ d t t ƒ }  Wd  QX|  j t t ƒ |  j t d ƒ d t t ƒ |  t	 |  ƒ } d t t f t j
 | ƒ k s t ‚ d  S(   NRh   i   i   i    (   R>   R;   R6   R7   R   R    R'   RE   RF   R    Rp   RA   (   Rh   Rm   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt"   test_factor_and_dimension_with_Absw  s    
.c          C   s€  t  d ƒ }  t  d ƒ } t  d ƒ } |  j t ƒ | j t ƒ | j t ƒ |  j d t ƒ | j t ƒ | j t ƒ t d ƒ } t d ƒ } t	 d ƒ } | | | ƒ j
 | | ƒ } | j i |  | | | ƒ 6| | 6| | 6ƒ } t  j | ƒ t  j |  | | ƒ k o't d ƒ t d	 ƒ d
 k n s2t ‚ t  j | ƒ t  j |  | | ƒ k oqd t t d
 f k n s|t ‚ d  S(   NR¯   Rv   t   t1i$   RÃ   RÉ   t   fR6   R7   i   i
   (   R;   RE   R6   R7   RF   R   R   R'   R   R   R   t   subsRk   RA   Rp   (   R¯   Rv   RÍ   RÃ   RÉ   RÎ   t   dfdxt   dl_dt(    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt#   test_dimensional_expr_of_derivative  s(    -(c          C   sµ   t  d ƒ }  t  d ƒ } |  j t t ƒ | j t t ƒ |  j t t ƒ | j t t ƒ t  j t |  ƒ ƒ t t  j |  ƒ ƒ k sŒ t	 ‚ t  j t |  | ƒ ƒ d k s± t	 ‚ d  S(   NRh   Ri   i   (
   R;   RE   R6   R7   RF   R    R'   Rk   R   RA   (   Rh   Ri   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt'   test_get_dimensional_expr_with_function˜  s    c          C   sy  t  t t ƒ d t k s t ‚ t  t t ƒ d t k s> t ‚ t  t t ƒ d t k s] t ‚ t  t t ƒ d t k s| t ‚ t  t t ƒ d t k s› t ‚ t  t t ƒ d t k sº t ‚ t j  t	 ƒ d t	 k sÙ t ‚ t j  t	 ƒ d t	 k sø t ‚ d t t
 }  t  |  t ƒ d	 t t
 k s)t ‚ t  |  t ƒ d
 t t k sLt ‚ t  |  t t g ƒ d t t k sut ‚ d  S(   Ni   i   i   i   i   i   i   i
   i (  iX  i `	 i   i   @I       I       I       i    (   R   R,   R+   RA   R-   R.   R/   R0   R1   R*   R   R#   (   t   a(    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_binary_information¥  s    ##c          C   sÃ   t  d ƒ \ }  } } |  | } i t t d t d |  6t | 6} | j | ƒ t d t d k sj t ‚ | | } i t t d t d | 6t | 6} | j | ƒ t t t d k s¿ t ‚ d  S(   Ns   energy mass forcei   (   R   R2   R    R'   RÏ   RA   R3   (   R   RÆ   t   forcet   expr1t   unitst   expr2(    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_eval_subs·  s    
$'
$c          C   s©   t  t ƒ t  d ƒ j ƒ  t  t d ƒ k s2 t ‚ t  t ƒ t  t ƒ j ƒ  t  d ƒ k sa t ‚ t d d t ƒ}  t  t ƒ t  |  ƒ j ƒ  t  t |  ƒ k s¥ t ‚ d  S(   Ni   i   t   pt   positive(   R   R   t   simplifyRA   R   R   t   True(   RÛ   (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_issue_14932Á  s    2/c          C   sg  d d l  m }  m } d d l m } t |  ƒ j d  k sA t ‚ t |  ƒ j	 d  k s\ t ‚ t |  ƒ j
 d  k sw t ‚ t |  ƒ j d  k s’ t ‚ t |  ƒ j d  k s­ t ‚ t |  ƒ j d  k sÈ t ‚ | t |  ƒ t | ƒ ƒ d  k	 sï t ‚ t d ƒ } |  | } | j r)t | j ƒ |  | h k s/t ‚ |  d } | j r]t | j ƒ |  d h k sct ‚ d  S(   Niÿÿÿÿ(   R   R   (   t   EqRÃ   i   (   t   sympy.physics.unitsR   R   t   sympyRà   R   t   is_zerot   NoneRA   t   is_positivet   is_nonnegativet   is_negativet   is_algebraict   is_rationalR   t   is_Addt   setRS   (   R   R   Rà   RÃ   t   e(    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   test_issue_14547È  s    '
*
N(`   Râ   R    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   Rá   R   R   R   R   t   sympy.physics.units.definitionsR   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/   R0   R1   R2   R3   t   sympy.physics.units.dimensionsR4   R5   R6   R7   R8   t   sympy.physics.units.prefixesR9   R:   t   sympy.physics.units.quantitiesR;   t   sympy.utilities.pytestR<   R=   R>   R?   RB   RC   RH   RU   R[   R^   Rd   Rg   Ro   Ru   R}   R   R€   R‚   RÂ   RÄ   RÇ   RË   RÌ   RÒ   RÓ   RÕ   RÚ   Rß   Rí   (    (    (    sH   lib/python2.7/site-packages/sympy/physics/units/tests/test_quantities.pyt   <module>   s@   d"Ð(
				#			
				B							'
				
	