o
    g                     @   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   Half)
halflength r   `/var/www/visachat/venv/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   is_dimensionlessr   r   has_integer_powersr   r   r   r   test_Dimension_properties/   s   r0   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   r1   r2   r   r   r   r   r   r   r!   ?   r"   c                   S      t t S r2   r3   r   r   r   r   r!   @   r"   c                   S   r5   r2   r4   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   is_Addsetargsr   r   r   r   r   r   )r6   er   r   r   test_Dimension_add_sub9   s*   (>
r<   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   r6   r,   r7   g      r-   r$   c                   S   s   t tt S r2   )r   r   r   r   r   r   r   r!   s       z,test_Dimension_mul_div_exp.<locals>.<lambda>r   b)r   r   is_Mulr9   r:   r   r   r   r   r   r   r&   r   subsequivalent_dims)
r6   mdvelolength_alength_0r$   r>   cc_dimr   r   r   test_Dimension_mul_div_expS   sD   2(00$rI   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 r2   )r   r   r   r   r   r   r   r   r!      r=   z*test_Dimension_functions.<locals>.<lambda>c                   S   rJ   r2   )r   r   r	   r   r   r   r   r   r!      r=   c                   S   s   t tttS r2   )r   r   r
   r   r   r   r   r   r   r!          c                   S   rJ   r2   r   r   r   r   r   r   r   r   r!      r=   c                   S   s   t tdtS )Nd   rL   r   r   r   r   r!      rK   c                   S   s   t ttdS )N
   rL   r   r   r   r   r!      rK   r   r,   )r   r&   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   test_Dimension_functions   s    rO   N)&sympy.physics.units.systems.sir   sympy.core.numbersr   sympy.core.singletonr   sympy.core.symbolr   $sympy.functions.elementary.complexesr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr	   r
   r   sympy.physics.units.dimensionsr   5sympy.physics.units.definitions.dimension_definitionsr   r   r   r   r   r   sympy.physics.unitsr   sympy.testing.pytestr   r   r(   r*   r0   r<   rI   rO   r   r   r   r   <module>   s&     	
/