
    g                         d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d	 Zd
 Zd Zd Zd Zd Zd Zd ZdS )    )DimensionSystemjoulesecondampere)Rational)S)ckgms)lengthtime)Quantity)
UnitSystem)
convert_toc                     t          d          } t          t          f}t          |t          | fdd          }|                    | t                     |                    | t          dd                     t          |j
                  t          |          k    sJ t          |j                  t          t          t          | hk    sJ |j        dk    sJ |j        dk    sJ d S )NdmMSz	MS system   
   )r   r   r   r   r	   set_quantity_dimensionr   set_quantity_scale_factorr   set_base_units_unitsnamedescr)r   basemss      e/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/units/tests/test_unitsystem.pytest_definitionr!      s    	$Bq6D	D1b'4	5	5Bb&)))  Xa__555r~#d))++++ry>>aAr]****7d????8{""""""    c                  @   t          t          t          t          fd                    dk    sJ t          t          t          t          f                    dk    sJ t	          t          t          t          f                    dt          dt          dk    sJ d S )Nr   )r   zUnitSystem((meter, second))z<UnitSystem: (z, z)>)strr   r   r   repr r"   r    test_str_reprr'      s    z1a&t,,,--5555z1a&!!""&CCCCC
Aq6""###111aaa'HHHHHHHr"   c                     t          d          } |                     t          j        t                     t          d          }|                    t          j        t
          t          z             t          t          t          t          | f|f          }t          ||j                  t          dz  t          z  t          dz  z  dz  k    sJ d S )NAJs   i  )r    set_global_relative_scale_factorr   Oner   r   r   r   r   r
   r   r   r   )r)   r*   mksas      r    test_convert_tor0   #   s    A&&quf555	$B''uV|<<<q"ambU++Db$*++q!tBwq"u}T/AAAAAAAr"   c                     t          t          t          ft          f          } t	          d          }|                    dt          t          z             |                     t          f|f          }t          t          t          t          ft          |f          }t          |j                  t          |j                  k    sJ t          |j                  t          |j                  k    sJ d S )Nr*   r   )r   r   r   r	   r   r-   r   r   extendr
   r   r   r   )r   r*   mksress       r    test_extendr5   .   s    	QFQD	!	!B	$B''5<888
))REB5
!
!C
aBZ!R
)
)Cs3s#7#77777sz??c#*oo------r"   c                  p    t          t          t          t          ft          f          } | j        dk    sJ d S )N   )r   r   r
   r   r	   dim)dimsyss    r    test_dimr:   9   s,    B
QD))F:??????r"   c                      t          t          t          g          } t          t          t
          g|           }|j        dk    sJ d S )N)dimension_systemT)r   r   r   r   r   r   is_consistent)r<   uss     r    test_is_consistentr?   >   sE    &~66	QF-=	>	>	>Bt######r"   c                     ddl m} m} t          j        d          }|                                }dD ]}|D ]}t          |t                    sJ | dt          |                       |j	        rJ | d            |j
        rJ | d            |j        j                            |          rJ d|j         d	|             | |v sJ ||v sJ d S )
Nr   )voltohmSI)gigaterapetaexazettayottakilohectodecadecicentimillimicronanopicofemtoattozeptoyoctoz must be a Quantity, not z is marked as prefixedz is marked as physics constantUnit z has prefix )sympy.physics.unitsrA   rB   r   get_unit_systemget_units_non_prefixed
isinstancer   typeis_prefixedis_physical_constantr   
startswith)rA   rB   unit_systemunitsprefixunits         r    test_get_units_non_prefixedrd   D   s9   --------,T22K..00E s b b 	b 	bDdH--]]$/]/]QUVZQ[Q[/]/]]]]'HHD)H)H)HHHH0YYT2Y2Y2YYYYy~0088aa:a$):a:aY_:a:aaaaa		b
 5====%<<<<<<r"   c                      t           j                                        D ]V} | j                                        D ]:}|                    t
                    }|D ]}|| j        v sJ d| d|              ;Wd S )NrW   z is not in unit system )r   _unit_systemsvaluesderived_unitsatomsr   r   )r`   preferred_unitra   rc   s       r    ,test_derived_units_must_exist_in_unit_systemrk   Q   s    !/6688 f f)7>>@@ 	f 	fN"((22E f f{11113e43e3eXc3e3e1111f	ff fr"   N)rX   r   r   r   r   sympy.core.numbersr   sympy.core.singletonr   sympy.physics.units.definitionsr	   r
   r   r   5sympy.physics.units.definitions.dimension_definitionsr   r   sympy.physics.units.quantitiesr   sympy.physics.units.unitsystemr   sympy.physics.units.utilr   r!   r'   r0   r5   r:   r?   rd   rk   r&   r"   r    <module>rs      sL   F F F F F F F F F F F F ' ' ' ' ' ' " " " " " " 7 7 7 7 7 7 7 7 7 7 7 7 N N N N N N N N 3 3 3 3 3 3 5 5 5 5 5 5 / / / / / /# # # I I IB B B. . .  
$ $ $  f f f f fr"   