a
    kh                     @   s   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 d dlmZmZmZ d d	lmZ d d
lmZmZmZmZmZmZ d dlmZ d dlmZ dd Zdd Z dd Z!dd Z"dd Z#dd Z$dd Z%dS )    )	dimsys_SI)pi)S)Symbol)Abs)log)sqrt)acosatan2cos	Dimension)lengthtimemassforcepressureangle)foot)raisesc                  C   s^   t ttdiksJ tjtdks(J tjtdks:J tt} t | ttjiksZJ d S )N   r   L)	r   get_dimensional_dependenciesr   namer   symbolr   r   ZHalf)Z
halflength r   W/var/www/auris/lib/python3.9/site-packages/sympy/physics/units/tests/test_dimensions.pytest_Dimension_definition   s
    r   c                   C   sJ   t tdd  t tdd  t tdd  t tdd  t tdd  d S )Nc                   S   s   t dS )N)r   r      r   r   r   r   r   <lambda>       z1test_Dimension_error_definition.<locals>.<lambda>c                   S   s
   t dgS )Nr   r   r   r   r   r   r      r    c                   S   s   t ddiS )Nr   ar   r   r   r   r   r   !   r    c                   S   s   t ddiS )Nr   )r   r   r   r   r   r   r   r   $   r    c                   S   s   t dddS )Nr   r   )r   r   r   r   r   r   r   '   r    )r   	TypeErrorAssertionErrorr   r   r   r   test_Dimension_error_definition   s
    r$   c                   C   s.   t tddksJ t tdddks*J d S )Nr   zDimension(length)r   zDimension(length, L))strr   r   r   r   r   test_str*   s    r&   c                   C   s   t tdu sJ t tt du s(J t tddu s>J tt du sPJ td t du sfJ td t du s|J d S )NFTZ	undefined      ?)r   Zis_dimensionlessr   r   Zhas_integer_powersr   r   r   r   test_Dimension_properties/   s    r)   c                  C   s`  t t  t ksJ t t  t ks J t  t ks.J ttdd  ttdd  ttdd  ttdd  td} t |  }|| t  kr|jrt|jt | hksJ t d }|dt    krdt  krn n|jrt|jt dhksJ tt	t  t
d  t t dt	dt
d	iksJ tt	t  t
d  t tt d   t dt	dt
d	iksNJ ttd
d  d S )Nc                   S   s   t t S Nr   r   r   r   r   r   r   >   r    z(test_Dimension_add_sub.<locals>.<lambda>c                   S   s   t t S r*   r   r   r   r   r   r   r   ?   r    c                   S   s   t t S r*   r+   r   r   r   r   r   @   r    c                   S   s   t t S r*   r,   r   r   r   r   r   A   r    xr   r   c                   S   s   t tt td  t S )Nr   )r   r   r   r   r   r   r   r   r   r   r   Q   r    )r   r   r"   r   Zis_Addsetargsr   r   r   r   r   r   )r-   er   r   r   test_Dimension_add_sub9   s*    (<


r2   c            
      C   s  dt  t d   kr*t d   kr*t ks0n J dt  dt  ksDJ td} | t  }|t |  krx|jrxt|j| t hks|J | t  }|| t d  kr|jrt|j| dt  hksJ t |  }|t | d  kr|jrt|jd|  t hksJ t t }t t  t d ks
J tt t  t diks&J tt d t diksBJ tt t t dtdiksbJ t|t dtdiks~J t|d t dtdiksJ tt t  i ksJ t|t  t i ksJ tt d t diksJ t|d t dtdiksJ t d }t|t tdiks2J tt t t tiksNJ tt t t   t t	diksrJ t
td	d
  t dksJ t t  dksJ t d }t|i ksJ td}td}t|d |d  }||t |t i}	t|	t sJ d S )Nr   r   r-   r'   r.   g      r(   r!   c                   S   s   t tt S r*   )r   r   r   r   r   r   r   r   s   r    z,test_Dimension_mul_div_exp.<locals>.<lambda>r   b)r   r   Zis_Mulr/   r0   r   r   r   r   r   r   r"   r   subsZequivalent_dims)
r-   mdZveloZlength_aZlength_0r!   r3   cZc_dimr   r   r   test_Dimension_mul_div_expS   sD    0(00   $r8   c                   C   s  t tdd  t tdd  t tdd  t tdd  t tdd  t tdd  tti ksfJ ttdi ks|J ttti ksJ tttti ksJ tt	tt tt i ksJ tt
ttdiksJ tt
tt i ksJ ttd	i ksJ d S )
Nc                   S   s   t ttS r*   )r   r   r   r   r   r   r   r   r      r    z*test_Dimension_functions.<locals>.<lambda>c                   S   s   t ttS r*   )r   r   r	   r   r   r   r   r   r      r    c                   S   s   t tttS r*   )r   r   r
   r   r   r   r   r   r   r      r    c                   S   s   t ttS r*   r   r   r   r   r   r   r   r   r      r    c                   S   s   t tdtS )Nd   r9   r   r   r   r   r      r    c                   S   s   t ttdS )N
   r9   r   r   r   r   r      r    r   r'   )r   r"   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   test_Dimension_functions   s     r<   N)&Zsympy.physics.units.systems.sir   Zsympy.core.numbersr   Zsympy.core.singletonr   Zsympy.core.symbolr   Z$sympy.functions.elementary.complexesr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr	   r
   r   Zsympy.physics.units.dimensionsr   Z5sympy.physics.units.definitions.dimension_definitionsr   r   r   r   r   r   Zsympy.physics.unitsr   Zsympy.testing.pytestr   r   r$   r&   r)   r2   r8   r<   r   r   r   r   <module>   s$    	
/