
    sg$                     <   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
l/m0Z0 ddZ1eZ2e(Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=y)    )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)sqrtc                 P    t         t        |       j                  |fi |d      S )NT)	full_prec)r	   r   evalf)enoptionss      V/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/units/tests/test_util.pyNSr2      s&     
  .g.$??    c                  0    t         t         z   t         k(  sJ y N)L r3   r1   test_dim_simplify_addr8      s    q5A::r3   c                  >    t         t        z  t         t        z  k(  sJ y r5   r6   Tr7   r3   r1   test_dim_simplify_mulr<      s    Q3!A#::r3   c                  <    t        t        d      t        dz  k(  sJ y N   )r   r6   r7   r3   r1   test_dim_simplify_powr@   #   s    q!91r3   c                  L    t         t         z   t        z  t         t        z  k(  sJ y r5   r:   r7   r3   r1   test_dim_simplify_recrB   '   s    EQ;!A#r3   c                  	   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 t        t%        t        dz  t        dz  z         t              t%        t        dz  t        dz  z         k(  sJ t        t        dz  t        dz  z   dz  t              t        dz  t        dz  z   dz  k(  sJ y )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   r*   r7   r3   r1   test_convert_to_quantitiesrK   ,   s   a1$$$dI&%	/%*????eFlN3~i7OOOOiof,n=OOOk%'.?1^CSSSSneFl3yv7MMMMa&f559OOOOc6"eFl222aff%V333dE"fUl3&6666d4i40E)OU4Z4PPPPahf-6999ahvqy 89QuWX=MfVWi=WWWWi$&.&,s2BBBBa	kAdF*E2fUl36FFFFdAguax(E%(N8,CCCCaai'5>(+BBBBa	k$&44eFlCuU{TYZ`T`Gaaaaa	k$&44j6GHFS]L]_cdj_jLkkkki4)#34e<%ST*@TTTTi)Y666gv&#f*R-777gv/3v:b=@@@bj&)SZ777b&!SZ/// d5!8eSj0159T%(UTWZBW=XXXXuax%*,q0%8UAXs
=RUV<VVVVr3   c            
         ddl m}   | d      \  }}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 t        t)        t        dz  t
        dz  z         t        t
        g      t)        t        dz  t
        dz  z         k(  sJ t        t        dz  t
        dz  z   dz  t        t
        g      t        dz  t
        dz  z   dz  k(  sJ t        d|t        z  t        z   z  dt        z        d|t        z  t        z   z  k(  sJ t        d|t        z  |t        z  z   z  dt*        z        dt*        |z  dz  |t*        z  dz  z   z  k(  sJ y )Nr   r   z
alpha betarE   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*meterrJ        )sympy.core.symbolr   r'   r#   r   r"   r   r   r   r   r   r
   r   r2   r   r   r   r    r   r   r*   r   )r   alphabetas      r1   $test_convert_to_tuples_of_quantitiesrV   N   s`   ),'KE4nufo6)e:Kf:TTTTnufo6)e:Kf:TTTTneE6&:;y5?PSY?YYYYeeXv678E1H;LVUVY;VVVVej$78HZQR]<RSW<WX^`aXa<aaaaiof,~.>?>QQQnq(5&(*CDfU^H^abHbbbba.(5&(*CDX]H]`fHffffa!^V45Q>>>jND 9:a@  E^  ^  ^  ^jh/159OOOOj.!48LLLLjf-37KKKKj+V4:>SSSSjEA~v+FGOSUVZmmmm d5!8fck12UFODUTUXX^`cXcMcHdddduax&#+-1E6?CqSY[^S^H^abGbbbb aee+,ag6!T%Z%=O:PPPPaeeEk12AiK@Q	RVW[H[^cdm^mnr^rHrEstttr3   c                  x   ddl m} m}m}m}m}m} ddlm}  |d      \  }}| |z  j                         dk(  sJ ||z  j                         dk(  sJ || z  j                         dk(  sJ d|z  |z  |dz  z  |z  | z  j                         d	|z  t        z  k(  sJ | |z  |z  j                         d
dt        z  z  k(  sJ d|z  t        z  j                         dt        z  k(  sJ d|z  t        z  dt        z  z  j                         dk(  sJ dt        dz  z  |t        z  dz  z  j                         dk(  sJ y )Nr   )cmmmr&   mKkilor   x yrP   rR   i r?   i ʚ;rQ   rM   rD   i     )sympy.physics.unitsrX   rY   r&   rZ   r[   r\   rS   r   simplifyr   r   r   r   )	rX   rY   r&   rZ   r[   r\   r   xys	            r1   test_eval_simplifyrc   m   s@   ::)5>DAqrE###qD??$$$rE'''qDF2q5LN2'')Z\&-@@@@rE!G1hz&9#::::dF5L""$U
222dF5L!I+&002a777ilNDJ?*446!;;;r3   c                  F   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 y )Nr   quantity_simplify)r\   footr   r]      i@  r?      rR   i      rD      )
sympy.physics.units.utilrf   r_   r\   rg   rS   r   r   r   r   )rf   r\   rg   r   ra   rb   s         r1   test_quantity_simplifyrm   ~   sV   :.)5>DAqQ$ve 3a 789QU
6@QTU@U=VVVVT$Yt45q$b.9QRT9TTTTT$YT	D$+4F(FGHDRSGUY[\U\_cdf_fhlostvovhv_wUwLxy{L{{{{Qd4!45d:;tDy|KKKT1WT\D!GDL89RaZ^KKKr3   c                     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 y )Nr   re   )ampereohmvoltr   pascalfaradr"   wattsiemenshenryteslaweberr   r   TSI)across_dimensionsunit_systemrO   rD   r?            )rl   rf   r_   ro   rp   rq   r   rr   rs   r"   rt   ru   rv   rw   rx   r   r   r   r   r   r   )rf   ro   rp   rq   r   rr   rs   r"   rt   ru   rv   rw   rx   r   r   s                  r1   (test_quantity_simplify_across_dimensionsr      ss   : F  F  F  FVCZ4TRVZZZZQvXc\TtTXYZ^X^^^^T&[DdSWZZZZT#X4PTZZZZU5!8^tQUVZ````U3Y$DQU[[[[U6\TtTX\\\\UAXf_RVW[`bc[cdj[jjjjU6\TtTX\\\\U7]dPTUY]]]]T&[DdSWZZZZVD[DdSW^^^^WT\TtTX]]]]T&[/4UYZ^ccccT&[1TW[\`eeeeU6\TtTX]]]]Qy[-SWX\^_d\dfhiofo\ppppQxZ-fai74]abfghnfnnnnr3   c                  h   t        d      } t        t        | z         t        | z   k(  sJ t        t        | z         t        | z   k(  sJ t        t        | z   j	                  | 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	        y )
Nra   c                  &    t        t        dz         S NrQ   )r(   r   r7   r3   r1   <lambda>z'test_check_dimensions.<locals>.<lambda>   s    /q9 r3   c                  &    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                  4    t        dt        z  t        z         S r>   r   r7   r3   r1   r   z'test_check_dimensions.<locals>.<lambda>   s    /E	F0BC r3   c                  :    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 r3   c                  :    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 r3   c                  P    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 r3   )
r   r(   r   r   subsr   r   r   r)   
ValueError)ra   s    r1   test_check_dimensionsr      s    AD1H%111FQJ'6A:555VaZ--a89VCCCF5L501UU6\5IIII
:9:
:;<
:>?
:?@
:CD
:GH
:GH
:STr3   N)   )>sympy.core.containersr   sympy.core.numbersr   sympy.core.powerr   rS   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&   rl   r'   r(   sympy.testing.pytestr)   (sympy.functions.elementary.miscellaneousr*   r2   r6   r;   r8   r<   r@   rB   rK   rV   rc   rm   r   r   r7   r3   r1   <module>r      s    ' !   % & #1 1 1 1 1 1 1 1
 B ' 9@ 


WDu><"Lo2Ur3   