U
    9%e                     @   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ttjtdks(ttjtdks:ttt} t | ttj	iksZtd S )N   r   L)
r   get_dimensional_dependenciesr   AssertionErrornamer   symbolr   r   ZHalf)Z
halflength r   h/var/www/html/Darija-Ai-API/env/lib/python3.8/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   	TypeErrorr   r   r   r   r   test_Dimension_error_definition   s
    r$   c                   C   s.   t tddkstt tdddks*td S )Nr   zDimension(length)r   zDimension(length, L))strr   r   r   r   r   r   test_str*   s    r&   c                   C   s   t tdkstt tt dks(tt tddks>ttt dksPttd t dksfttd t dks|td S )NFT	undefined      ?)r   Zis_dimensionlessr   r   r   Zhas_integer_powersr   r   r   r   test_Dimension_properties/   s    r*   c                  C   s`  t t  t kstt t  t ks tt  t ks.t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stt d }|dt    krdt  krn n|jrt|jt dhkstt	t
t  td  t t dt
dtd	ikstt	t
t  td  t tt d   t dt
dtd	iksNt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#   r   Zis_Addsetargsr   r   r   r   r   r   )r.   er   r   r   test_Dimension_add_sub9   s*    (<


r3   c            
      C   s  dt  t d   kr*t d   kr*t ks0n tdt  dt  ksDttd} | t  }|t |  krx|jrxt|j| t hks|t| t  }|| t d  kr|jrt|j| dt  hkstt |  }|t | d  kr|jrt|jd|  t hkstt t }t t  t d ks
ttt t  t diks&ttt d t diksBttt t t dtdiksbtt|t dtdiks~tt|d t dtdiksttt t  i kstt|t  t i ksttt d t dikstt|d t dtdikstt d }t|t tdiks2ttt t	 t t	iksNttt t t   t t
diksrtttd	d
  t dkstt t  dkstt d }t|i ksttd}td}t|d |d  }||t |t i}	t|	t st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   r   Zis_Mulr0   r1   r   r   r   r   r   r   r#   r   subsZequivalent_dims)
r.   mdZveloZlength_aZlength_0r"   r4   cZc_dimr   r   r   test_Dimension_mul_div_expS   sD    0(00   $r9   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sftttdi ks|tttti kstttt	t	i ksttt
t	t	 t	t	 i kstttt	t	dikstttt	t	 i kstttd	i kst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   r:   r   r   r   r   r       r!   c                   S   s   t ttdS )N
   r:   r   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*   r3   r9   r=   r   r   r   r   <module>   s$    	
/