o
    *ήc                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZmZ d dlmZmZmZmZmZ d dlmZ edZd	d
 Zdd Zdd Zdd ZdS )    )Mul)Rational)S)Symbolsymbols)Quantitylengthmeter)PREFIXESPrefixprefix_unitkilokibi)SIxc                  C   s  t d } t d }t d }tddddd}| | dksJ || |ks$J d|  |ks,J ||  |ks4J || d	ks<J d| tjd ksGJ || td
d ksSJ || dks[J td} t| tj t| tj ||  d|  kswJ ||  d|  ksJ td }t	|t
sJ |jdtfksJ tt }t	|t
sJ |jttfksJ td }t	|t
sJ |jtddtfksJ |jtjd tfksJ tt }t	|t
sJ |jdt tfksJ d S )NmkMdodecadd      )base   i  
fake_meter   )r
   r   r   Oner   r   set_quantity_dimensionset_quantity_scale_factorr   
isinstancer   argsr   r   )r   r   r   r   expr1expr2expr3expr4 r%   N/tmp/pip-target-vg8gfxp4/lib/python/sympy/physics/units/tests/test_prefixes.pytest_prefix_operations   s<   r'   c                  C   s   t ddd} | dt td td td d}t dd	d}t d
dd}t ddd}t|t t|td  t|td  t|td  |||g}t| |}t	|t	|ks\J t	t
dd |t	tdksmJ d S )Nr   r   abbrevr   cd)r   r*   r+   millifake_metermmcentifake_metercmdecifake_meterdmc                 S   s   | j S Nr(   )vr%   r%   r&   <lambda>K   s    z"test_prefix_unit.<locals>.<lambda>zmm,cm,dm)r    set_global_relative_scale_factorr	   r
   r   r   r   r   r   setmapr   )r   prefq1q2q3resprefsr%   r%   r&   test_prefix_unit7   s   

&r>   c                   C   s    t jdksJ tjdksJ d S )N
      )r   r   r   r%   r%   r%   r&   
test_basesN   s   rA   c                   C   s,   t tttks
J t tttksJ d S r2   )evalreprr   r   r%   r%   r%   r&   	test_reprS   s   rD   N)sympy.core.mulr   sympy.core.numbersr   sympy.core.singletonr   sympy.core.symbolr   r   sympy.physics.unitsr   r   r	   sympy.physics.units.prefixesr
   r   r   r   r   sympy.physics.units.systemsr   r   r'   r>   rA   rD   r%   r%   r%   r&   <module>   s    *