o
    GZh                     @   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s-J d S )N   r   L)	r   get_dimensional_dependenciesr   namer   symbolr   r   ZHalf)Z
halflength r   X/var/www/auris/lib/python3.10/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      s   
 c                   S      t ddiS )Nr   ar   r   r   r   r   r   !       c                   S   r!   )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 s(J td t du s3J td t du s>J d S )NFT	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rM|jrMt|jt | hksOJ t d }|dt    kradt  krpn J |jrpt|jt dhksrJ tt	t  t
d  t t dt	dt
d	iksJ tt	t  t
d  t tt d   t dt	dt
d	iksJ ttd
d  d S )Nc                   S      t t S Nr   r   r   r   r   r   r   >   r    z(test_Dimension_add_sub.<locals>.<lambda>c                   S   r-   r.   r   r   r   r   r   r   r   ?   r    c                   S      t t S r.   r/   r   r   r   r   r   @   r    c                   S   r1   r.   r0   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   s    )r   r   r$   r   Zis_Addsetargsr   r   r   r   r   r   )r2   er   r   r   test_Dimension_add_sub9   s*   (>
r7   c            
      C   s  dt  t d   krt d   krt ksJ  J dt  dt  ks#J td} | t  }|t |  kr=|jr=t|j| t hks?J | t  }|| t d  krY|jrYt|j| dt  hks[J t |  }|t | d  kru|jrut|jd|  t hkswJ t t }t t  t d ksJ tt t  t diksJ tt d t diksJ tt t t dtdiksJ t|t dtdiksJ 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sJ t d }t|t tdiksJ tt t t tiksJ tt t t   t t	diks0J t
td	d
  t dks>J t t  dksGJ t d }t|i ksUJ td}td}t|d |d  }||t |t i}	t|	t syJ d S )Nr   r   r2   r*   r3   g      r+   r"   c                   S   s   t tt S r.   )r   r   r   r   r   r   r   r   s       z,test_Dimension_mul_div_exp.<locals>.<lambda>r   b)r   r   Zis_Mulr4   r5   r   r   r   r   r   r   r$   r   subsZequivalent_dims)
r2   mdZveloZlength_aZlength_0r"   r9   cZc_dimr   r   r   test_Dimension_mul_div_expS   sD   2(00$r>   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s3J ttdi ks>J ttti ksIJ tttti ksUJ tt	tt tt i kseJ tt
ttdiksrJ tt
tt i ksJ ttd	i ksJ d S )
Nc                   S      t ttS r.   )r   r   r   r   r   r   r   r   r      r8   z*test_Dimension_functions.<locals>.<lambda>c                   S   r?   r.   )r   r   r	   r   r   r   r   r   r      r8   c                   S   s   t tttS r.   )r   r   r
   r   r   r   r   r   r   r          c                   S   r?   r.   r   r   r   r   r   r   r   r   r      r8   c                   S   s   t tdtS )Nd   rA   r   r   r   r   r      r@   c                   S   s   t ttdS )N
   rA   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    rD   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,   r7   r>   rD   r   r   r   r   <module>   s&     	
/