U
    ZÊ¹jê  ã                   @   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/bwave/python/venv/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 )NFTZ	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ršt|jƒt | hksžt‚t d }|dt    krÂdt  krÞn n|jrÞt|jƒt dhksât‚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*    (<ÿ

ÿþ
r2   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r°t|jƒ| dt  hks´t‚t |  }|t | d  krè|jrèt|jƒd|  t hksìt‚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�sžt‚t t t  ¡i k�s¶t‚t |t  t ¡i k�sÒt‚t t d ¡t dik�sît‚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�sŽt‚t t  dk�s t‚t d }t |¡i k�s¼t‚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_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sft‚t tdƒ¡i ks|t‚t ttƒ¡i ks’t‚t tt	t	ƒ¡i ksªt‚t t
t	t	 t	t	 ƒ¡i ksÊt‚t tt	ƒ¡t	diksät‚t tt	t	 ƒ¡i ksþt‚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 )Néd   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   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$    	
/