
    sg                         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y)    )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      }|j                  | t               |j                  | 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 y )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      \/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/units/tests/test_unitsystem.pytest_definitionr!      s    	$Bq6D	D1b'4	5Bb&)  Xa_5r~~#d)+++ryy>aAr]***77d??88{"""    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 y )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z1a&!"&CCCC
Aq6"#1a'HHHHr"   c                  t   t        d      } | j                  t        j                  t               t        d      }|j                  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 y )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&&quuf5	$B''uV|<q"ambU+Db$**+q!tBwq"u}T/AAAAr"   c                     t        t        t        ft        f      } t	        d      }|j                  dt        t        z         | j                  t        f|f      }t        t        t        t        ft        |f      }t        |j                        t        |j                        k(  sJ t        |j                        t        |j                        k(  sJ y )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
))REB5
!C
aBZ!R
)Cs3s#7777szz?c#**o---r"   c                  f    t        t        t        t        ft        f      } | j
                  dk(  sJ y )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 y )N)dimension_systemT)r   r   r   r   r   r   is_consistent)r<   uss     r    test_is_consistentr?   >   s6    &~6	QF-=	>Bt###r"   c                     ddl m} m} t        j                  d      }|j                         }dD ]  }|D ]  }t        |t              sJ | dt        |              |j                  r
J | d       |j                  r
J | d       |j                  j                  j                  |      szJ d|j                   d	|          | |v sJ ||v sJ y )
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   s    -,,T2K..0E s b 	bDdH-]$7PQUVZQ[P\/]]-''HD61G)HH'00YTF:X2YY0yy~~008aE$))LY_X`:aa8		bb 5==%<<r"   c                      t         j                  j                         D ]X  } | j                  j                         D ]9  }|j	                  t
              }|D ]  }|| j                  v rJ d| d|          ; Z y )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 f)77>>@ 	fN"((2E f{111eU4&@WXcWd3ee1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      sN    F F ' " 7 7 N 3 5 /# IB.
$fr"   