
    Rie!                     2   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 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&m'Z'm(Z(m)Z) d dl*m+Z+m,Z, d d	l-m.Z. ddZ/eZ0e(Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;dS )    )Tuple)pi)Powsymbols)sympify)sstr)G
centimetercoulombdaydegreegramhbarhourinchjoulekelvinkilogram	kilometerlengthmetermileminutenewtonplanckplanck_lengthplanck_massplanck_temperatureplanck_timeradianssecondspeed_of_light	steradiantimekm)
convert_tocheck_dimensions)raises   c                 V    t           t          |           j        |fi |d          S )NT)	full_prec)r	   r   evalf)enoptionss      Clib/python3.11/site-packages/sympy/physics/units/tests/test_util.pyNSr2      s1     

 ..g..$????    c                  :    t           t           z   t           k    sJ d S N)L r3   r1   test_dim_simplify_addr8      s    q5A::::::r3   c                  J    t           t          z  t           t          z  k    sJ d S r5   r6   Tr7   r3   r1   test_dim_simplify_mulr<      s    Q3!A#::::::r3   c                  L    t          t          d          t          dz  k    sJ d S N   )r   r6   r7   r3   r1   test_dim_simplify_powr@   "   s%    q!991r3   c                  Z    t           t           z   t          z  t           t          z  k    sJ d S r5   r:   r7   r3   r1   test_dim_simplify_recrB   &   s%    EQ;!A#r3   c                  r
   t          dt                    dk    sJ t          t          t                    dt          z  dz  k    sJ t          t          t          z  t
                    t
          dz  k    sJ t          dt          z  t          z  t
                    t
          k    sJ t          dt          z  t          z  t
                    dt
          z  k    sJ t          t
          t          t          z            dt          z  t          z  k    sJ t          dt
          z  t          t          z            dt          z  t          z  k    sJ t          t          t                    dt          z  k    sJ t          dt          z  t                    dt          z  k    sJ t          t          t                    d	t          z  d
z  k    sJ t          t          t          z  t          t          z            dt          z  dt          z  z  k    sJ t          dt          z  t          t          z            dt          z  k    sJ t          dt          z  t          t          z  t          dz  z            dt          z  t          z  t          dz  z  k    sJ t          t          t          z   t                    dt          z  d
z  k    sJ t          dt          z  dt          z  z   t                    dt          z  d
z  k    sJ t          t          dz  t          dz            dt          dz  z  dz  k    sJ t          dt          dz  z  t                    dt          dz  z  dz  k    sJ t          dt          z  t          z  dt          z  t          z  z   t          t          z            dt          z  dt          z  z  k    sJ t          dt          z  t          z  dt          z  t          z  z   t          t          z            dt          z  dt          z  z  k    sJ t          t          t          t          z   z  t                    dt          dz  z  k    sJ t          t          t                    t          k    sJ t          t          t                     dt           z  t"          z  k    sJ t          t          t          t           g          dt           z  t"          z  k    sJ t          t"          t          z  t                     dt           z  k    sJ t          t"          t                     dt           z  k    sJ d S )N   i:b  i	=  Jx#r?   iQ x   i }   i i  i?  i@x}i  i`  im  iA ie  i'    )r'   r   r   r   r"   r#   r   r   r   r   r   r   r   r$   r   r!   r   r   r7   r3   r1   test_convert_to_quantitiesrJ   +   s'   a1$$$$dI&&%	/%*?????eFlN33~i7OOOOOiof,n==OOOOk%'.??1^CSSSSSneFl33yv7MMMMMa&f5559OOOOOc6""eFl2222aff%%V3333dE""fUl3&66666d4i400E)OU4Z4PPPPPahf--69999ahvqy 899QuWX=MfVWi=WWWWWi$&..&,s2BBBBBa	kAdF*E22fUl36FFFFFdAguax((E%(N8,CCCCCaai''5>(+BBBBBa	k$&44eFlCCuU{TYZ`T`Gaaaaaa	k$&44j6GHHFS]L]_cdj_jLkkkkki4)#34e<<%ST*@TTTTTi))Y6666gv&&#f*R-7777gv//3v:b=@@@@bj&))SZ7777b&!!SZ//////r3   c            
         t          t          t          t          g          dt          z  t          z  k    sJ t          t          t          t          f          dt          z  t          z  k    sJ t          t          t	          t          t                              dt          z  t          z  k    sJ t          t
          t          t          t          g          t          t          dz  z  t          dz  z  k    sJ t          t
          t          t          t          g          dt          dz  z  t          z  t          dz  z  k    sJ t          dt          z  t          z  t          g          t          k    sJ t          t          dz  t          t          t          g          t          t          z  dz  dz  k    sJ t          dt          z  t          t          t          g          dt          z  t          z  k    sJ t          t          t          t          t          g          dt          z  k    sJ t          t          t          t          t          t          g          d          dk    sJ t          t          t          t                    d          d	k    sJ t          t          t          t                    d          d
k    sJ t          t          t          t                    d          dk    sJ t          t          t           t"                    d          dk    sJ t          t          t          t          t          t          t          g          t                    d          dk    sJ d S )NrE   r?   逖 rF   g      ?   )r/   zW6.187142e+34*gravitational_constant**0.5000000*hbar**0.5000000/speed_of_light**1.500000z2.176434e-8*kilogramz1.616255e-35*meter   z5.39125e-44*secondz1.416784e+32*kelvin
   z1.000000000*meter)r'   r#   r   r"   r   r   r   r   r   r
   r   r2   r   r   r   r    r   r   r7   r3   r1   $test_convert_to_tuples_of_quantitiesrP   I   s   nufo66)e:Kf:TTTTTnufo66)e:Kf:TTTTTneE6&:&:;;y5?PSY?YYYYYeeXv6778E1H;LVUVY;VVVVVej$788HZQR]<RSW<WX^`aXa<aaaaaiof,~.>??>QQQQnq(5&(*CDDfU^H^abHbbbbba.(5&(*CDDX]H]`fHfffffa!^V455Q>>>>jND 9::a@@@  E^  ^  ^  ^  ^jh//15559OOOOOj..!4448LLLLLjf--3337KKKKKj+V44:::>SSSSSjEA~v+FGGOOSUVVVZmmmmmmmr3   c                     ddl m} m}m}m}m}m} ddlm}  |d          \  }}| |z  	                                dk    sJ ||z  	                                dk    sJ || z  	                                dk    sJ d|z  |z  |dz  z  |z  | z  	                                d	|z  t          z  k    sJ | |z  |z  	                                d
dt          z  z  k    sJ d|z  t          z  	                                dt          z  k    sJ d|z  t          z  dt          z  z  	                                dk    sJ dt          dz  z  |t          z  dz  z  	                                dk    sJ d S )Nr   )cmmmr&   mKkilor   x yrO     i r?   i ʚ;   rL   rD   i     )sympy.physics.unitsrR   rS   r&   rT   rU   rV   sympy.core.symbolr   simplifyr   r   r   r   )	rR   rS   r&   rT   rU   rV   r   xys	            r1   test_eval_simplifyr`   ]   s   ::::::::::::::::))))))75>>DAqrE####qD??$$$$rE''''qDF2q5LN2''))Z\&-@@@@@rE!G1hz&9#:::::dF5L""$$U
2222dF5L!I+&0022a7777ilNDJ?*4466!;;;;;;r3   c                     ddl m}  ddlm}m} ddlm}  |d          \  }} | |d|z  t          z  t          z  |z   z            |dt          z  t          z  |z   z  k    sJ  | |t          z  |t          z   z            |dz  ||d	z  z   z  d	z  k    sJ  | |t          z  ||z  t          |t          z   z  z   z            |dz  |dz  |d	z  ||d	z  z   z  z   z  d	z  k    sJ  | d|t          z  |z  d
z  z  t          z            d|z  d	z  k    sJ  | |dz  t          z  t          dz  |z  z             d|dz  z  dz  k    sJ d S )Nr   quantity_simplify)rV   footr   rW      i@  r?      rX   i      rD      )
sympy.physics.units.utilrc   r[   rV   rd   r\   r   r   r   r   )rc   rV   rd   r   r^   r_   s         r1   test_quantity_simplifyrj   n   s   ::::::........))))))75>>DAqQ$ve 3a 7899QU
6@QTU@U=VVVVVT$Yt455q$b.9QRT9TTTTTT$YT	D$+4F(FGHHDRSGUY[\U\_cdf_fhlostvovhv_wUwLxy{L{{{{{Qd4!45d:;;tDy|KKKKT1WT\D!GDL899RaZ^KKKKKKr3   c                  X   ddl m}  ddlm}m}m}m}m}m}m	}m
}m}	m}
m}m}m}m}  | ||z  dd          |k    sJ  | d|z  |z  dd          d|z  k    sJ  | ||z  dd          |k    sJ  | ||z  dd          |k    sJ  | |t"          dz  z  dd          |k    sJ  | ||z  dd          |k    sJ  | ||z  dd          |k    sJ  | t"          dz  |z  dd          t"          dz  |z  k    sJ  | ||z  dd          |k    sJ  | |t$          z  dd          |k    sJ  | ||z  dd          |k    sJ  | ||z  dd          |	k    sJ  | t$          |z  dd          |k    sJ  | ||z  |z  dd          |
k    sJ  | ||z  t"          d	z  z  dd          |k    sJ  | ||z  dd          |k    sJ  | d
t&          z  |z  dd          dt"          z  d|z  z  k    sJ  | d
t(          z  t"          z  |d	z  z  dd          d
|z  k    sJ d S )Nr   rb   )ampereohmvoltr   pascalfaradr"   wattsiemenshenryteslaweberr   r   TSI)across_dimensionsunit_systemrN   rD   r?            )ri   rc   r[   rl   rm   rn   r   ro   rp   r"   rq   rr   rs   rt   ru   r   r   r   r   r   r   )rc   rl   rm   rn   r   ro   rp   r"   rq   rr   rs   rt   ru   r   r   s                  r1   (test_quantity_simplify_across_dimensionsr|   {   s   :::::: F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  F  FVCZ4TRRRVZZZZZQvXc\TtTTTXYZ^X^^^^^T&[DdSSSWZZZZZT#X4PPPTZZZZZU5!8^tQUVVVZ`````U3Y$DQQQU[[[[[U6\TtTTTX\\\\\UAXf_RVWWW[`bc[cdj[jjjjjU6\TtTTTX\\\\\U7]dPTUUUY]]]]]T&[DdSSSWZZZZZVD[DdSSSW^^^^^WT\TtTTTX]]]]]T&[/4UYZZZ^cccccT&[1TW[\\\`eeeeeU6\TtTTTX]]]]]Qy[-SWXXX\^_d\dfhiofo\pppppQxZ-fai74]abbbfghnfnnnnnnnr3   c                     t          d          } t          t          | z             t          | z   k    sJ t          t          | z             t          | z   k    sJ t          t          | z                       | t                              t          k    sJ t          t
          t          z  t          z             t          t          t
          z  z   k    sJ t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          d	            d S )
Nr^   c                  0    t          t          dz             S NrY   )r(   r   r7   r3   r1   <lambda>z'test_check_dimensions.<locals>.<lambda>   s    /q99 r3   c                  0    t          t          dz             S r   )r(   r   r7   r3   r1   r   z'test_check_dimensions.<locals>.<lambda>   s    /
;; r3   c                  :    t          t          t          z             S r5   )r(   r   r%   r7   r3   r1   r   z'test_check_dimensions.<locals>.<lambda>   s    />> r3   c                  :    t          t          t          z             S r5   r(   r   r"   r7   r3   r1   r   z'test_check_dimensions.<locals>.<lambda>   s    /?? r3   c                  @    t          dt          z  t          z             S r>   r   r7   r3   r1   r   z'test_check_dimensions.<locals>.<lambda>   s    /E	F0BCC r3   c                  F    t          dt          z  dt          z  z             S )Nr?   rD   r   r7   r3   r1   r   z'test_check_dimensions.<locals>.<lambda>   s    /E	AJ0FGG r3   c                  F    t          dt          z  dt          z  z             S r   )r(   r"   r   r7   r3   r1   r   z'test_check_dimensions.<locals>.<lambda>   s    /F
QY0FGG r3   c                  `    t          dt          z  t          t          z   z  t          z             S r>   )r(   r   r   r   r&   r7   r3   r1   r   z'test_check_dimensions.<locals>.<lambda>   s#    /E	4*;L0MPR0RSS r3   )
r   r(   r   r   subsr   r   r   r)   
ValueError)r^   s    r1   test_check_dimensionsr      sM   AD1H%%1111FQJ''6A:5555VaZ--a8899VCCCCF5L5011UU6\5IIIII
:99:::
:;;<<<
:>>???
:??@@@
:CCDDD
:GGHHH
:GGHHH
:SSTTTTTr3   N)r*   )<sympy.core.containersr   sympy.core.numbersr   sympy.core.powerr   r\   r   sympy.core.sympifyr   sympy.printing.strr	   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&   ri   r'   r(   sympy.testing.pytestr)   r2   r6   r;   r8   r<   r@   rB   rJ   rP   r`   rj   r|   r   r7   r3   r1   <module>r      s   ' ' ' ' ' ' ! ! ! ! ! !             % % % % % % & & & & & & # # # # # #1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 B A A A A A A A ' ' ' ' ' '@ @ @ @   
  
    
0 0 0<n n n(< < <"L L Lo o o2U U U U Ur3   