U
    —9%e‚"  ã                   @   s\  d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZm Z  d dl!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d„ Z/dd „ Z0d!d"„ Z1d#d$„ Z2d%d&„ Z3d'd(„ Z4d)d*„ Z5d+d,„ Z6d-d.„ Z7d/S )0é    )ÚQ)Úrefine)ÚExpr)ÚIÚRationalÚnanÚpi)ÚS)ÚSymbol)ÚAbsÚargÚimÚreÚsign)Úexp)Úsqrt)ÚatanÚatan2)ÚwÚxÚyÚz)ÚEqÚNe)Ú	Piecewise)ÚMatrixSymbolc                   C   sÆ   t ttƒt t¡ƒtkst‚t dttƒ t t¡ƒdt ks@t‚t ttƒt t¡ƒt ks^t‚t dttƒ t t¡ƒdt ks‚t‚t ttd ƒƒtd ksžt‚t ttd ƒt t¡ƒtd ksÂt‚d S ©Né   é   )r   r   r   r   ÚpositiveÚAssertionErrorÚnegativeÚreal© r#   r#   úb/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/assumptions/tests/test_refine.pyÚtest_Abs   s    $$r%   c                   C   s  t dt t t¡ƒdkst‚t dt t t¡ƒdks8t‚t dt t t¡ƒdt ksXt‚t ttd ƒƒttƒkstt‚t ttd ƒt t¡ƒttƒks˜t‚t ttd ƒt 	t¡ƒttƒks¼t‚t ttd ƒt 
t¡ƒtksÜt‚t td tddƒ ƒtksút‚t td tddƒ t 	t¡ƒtks"t‚t td tddƒ t 
t¡ƒtksJt‚t tdt ƒt 	t¡ƒdttƒ kstt‚t tdt ƒt 
t¡ƒdttƒ ksžt‚t dtt  t t¡ƒdt ksÄt‚t dtt t  t t¡t t¡@ ƒdt ksøt‚t dtt d  t t¡ƒdt ks"t‚t dtt d  t t¡ƒdtd  ksPt‚t dtd  ƒdtd  ksrt‚t ddt d tj  t t¡ƒdt ks¢t‚t ddt d tj  t t¡ƒdtd  ksÖt‚t ddt d dtj   t t¡ƒdtd  kst‚d S )Néÿÿÿÿr   éþÿÿÿr   é   é   )r   r   r   Zevenr    Zoddr   r   Úcomplexr"   r   r   r   r   r	   ÚHalfÚintegerr#   r#   r#   r$   Ú	test_pow1   s(     $$ ((**&4*."04r-   c                   C   sØ   t ddt d dtj   t t¡ƒdtd  ks6t‚t ddt d dtj   t t¡ƒdt ksht‚t ttƒd t t¡ƒtd ksŒt‚t ttƒd t t¡ƒttƒd ks´t‚t ttƒd ƒttƒd ksÔt‚d S )Nr&   r   é   r   é	   r(   )	r   r   r	   r+   r   r,   r    r   r"   r#   r#   r#   r$   Ú	test_pow2:   s
    62$(r0   c                  C   s¬   t ddd} tttt d |  ƒƒdks,t‚tttt d | tj  ƒƒdksRt‚tttt d | tddƒ  ƒƒtks|t‚tttt d | tddƒ  ƒƒt ks¨t‚d S )	Nr   T)r,   r   r   r&   é   r(   )	r
   r   r   r   r   r    r	   r+   r   ©r   r#   r#   r$   Útest_expD   s
     &*r3   c                   C   sv  t tdtdk fdƒtdk ƒdks$t‚t tdtdk fdƒtdk  ƒdksJt‚t tdtdk fdƒtdk ƒtdtdk fdƒks|t‚t tdtdkfdƒtdkƒdks t‚t tdtdkfdƒtdk ƒdksÆt‚t tdtdkfdƒtdkƒtdtdkfdƒksøt‚t tdtdkfdƒtdkƒdkst‚t tdtdkfdƒtdk ƒdksFt‚t tdtdkfdƒtdkƒtdtdkfdƒkszt‚t tdtdkfdƒtdkƒdks t‚t tdtdkfdƒtdk ƒdksÈt‚t tdtdkfdƒtdkƒtdtdkfdƒksüt‚t tdttdƒfdƒttdƒƒdks&t‚t tdttdƒfdƒtdtƒƒdksPt‚t tdttdƒfdƒttdƒ ƒdks|t‚t tdttdƒfdƒtdtƒ ƒdks¨t‚t tdttdƒfdƒttdƒƒtdttdƒfdƒksât‚t tdttdƒfdƒttdƒƒdkst‚t tdttdƒfdƒttdƒ ƒdks8t‚t tdttdƒfdƒttdƒƒtdttdƒfdƒksrt‚d S )Nr   r   )r(   Tr(   )r   r   r   r    r   r   r   r#   r#   r#   r$   Útest_PiecewiseL   sX    $&ÿ$&ÿ&(ÿ
&(ÿ
ÿ
ÿ
 ÿ
 ÿ
ÿ
ÿ
 ÿ
ÿr4   c                   C   s|  t tttƒt t¡t t¡@ ƒttt ƒks0t‚t tttƒt 	t¡t t¡@ ƒttt ƒks`t‚t tttƒt 	t¡t 	t¡@ ƒttt ƒt
 ks”t‚t tttƒt t¡t 	t¡@ ƒttt ƒt
 ksÈt‚t tttƒt t¡t 	t¡@ ƒt
ksðt‚t tttƒt t¡t t¡@ ƒt
d kst‚t tttƒt 	t¡t t¡@ ƒt
 d ksNt‚t tttƒt t¡t t¡@ ƒtksxt‚d S )Nr   )r   r   r   r   r   r"   r   r   r    r!   r   Úzeror   r#   r#   r#   r$   Ú
test_atan2o   s    0044(.0r6   c                   C   s0  t ttƒt t¡ƒtkst‚t ttƒt t¡ƒtjks:t‚t ttt	 ƒt t¡t t	¡@ ƒtt	 ksht‚t ttt	 ƒt t¡t t	¡@ ƒtks’t‚t ttt	 ƒt t¡t t	¡@ ƒtt	 ksÀt‚t ttt	 ƒt t¡t t	¡@ ƒdksêt‚t ttt	 t
 ƒt t¡t t	¡@ t t
¡@ ƒtt	 t
 ks,t‚d S )Nr   )r   r   r   r   r"   r    Ú	imaginaryr	   ÚZeror   r   r#   r#   r#   r$   Útest_rez   s    .*.*r9   c                   C   s|  t ttƒt t¡ƒt t ks"t‚t ttƒt t¡ƒtj	ks@t‚t ttt
 ƒt t¡t t
¡@ ƒt t tt
  ksxt‚t ttt
 ƒt t¡t t
¡@ ƒt t
 ks¨t‚t ttt
 ƒt t¡t t
¡@ ƒt t t
 ksÜt‚t ttt
 ƒt t¡t t
¡@ ƒdkst‚t tdt ƒt t¡ƒt t ks0t‚t ttt
 t ƒt t¡t t
¡@ t t¡@ ƒt t t
 t ksxt‚d S )Nr   r   )r   r   r   r   r7   r   r    r"   r	   r8   r   r   r#   r#   r#   r$   Útest_im„   s    "804,("ÿÿr:   c                   C   s@  t tdttt   ƒt t¡t t¡@ ƒttd td   ksBt‚t tdttt   ƒt t¡t t¡@ ƒt td td   ks†t‚t tt	tt  ttt
   ƒt t	¡t t¡@ t t¡@ t t
¡@ ƒt	t tt
  ksàt‚t tt	tt  ttt
   ƒt t	¡t t¡@ t t¡@ t t
¡@ ƒt	t
 tt  ks<t‚d S r   )r   r   r   r   r   r   r"   r    r   r   r   r#   r#   r#   r$   Útest_complex   s     (ÿ(ÿ8ÿÿ8ÿÿr;   c                  C   s6  t ddd} tt| ƒt | ¡ƒdks(t‚tt| ƒt | ¡ƒdksDt‚tt| ƒt | ¡ƒdks`t‚tt| ƒdƒt| ƒkszt‚ttt| ƒƒt 	| ¡ƒdksšt‚t ddd} tt| ƒt t
| ƒ¡ƒtjksÈt‚tt| ƒt t
| ƒ¡ƒtj ksìt‚tt| ƒdƒt| ƒkst‚t ddd} tt| ƒt | ¡ƒdks2t‚d S )	Nr   T©r"   r   r&   r   )r7   ©r*   )r
   r   r   r   r   r    r!   r5   r   Znonzeror   r	   ZImaginaryUnitr2   r#   r#   r$   Ú	test_sign›   s     "$r>   c                  C   sH   t ddd} tt| ƒt | ¡ƒdks(t‚tt| ƒt | ¡ƒtksDt‚d S )Nr   Tr=   r   )r
   r   r   r   r   r    r!   r   r2   r#   r#   r$   Útest_arg«   s    r?   c                     s8   G ‡ fdd„dt ƒ‰ ˆ ƒ } d| _| jt| ƒjks4t‚d S )Nc                       s$   e Zd Zdd„ Ze‡ fdd„ƒZdS )ztest_func_args.<locals>.MyClassc                 W   s
   d| _ d S )NÚ ©Ú	my_member)ÚselfÚargsr#   r#   r$   Ú__init__´   s    z(test_func_args.<locals>.MyClass.__init__c                    s   ‡‡ fdd„}|S )Nc                     s   ˆ | Ž }ˆj |_ |S )NrA   )rD   Úobj)ÚMyClassrC   r#   r$   Úmy_func¹   s    z5test_func_args.<locals>.MyClass.func.<locals>.my_funcr#   )rC   rH   ©rG   )rC   r$   Úfunc·   s    z$test_func_args.<locals>.MyClass.funcN)Ú__name__Ú
__module__Ú__qualname__rE   ÚpropertyrJ   r#   rI   r#   r$   rG   ±   s   rG   zA very important value)r   rB   r   r    r2   r#   rI   r$   Útest_func_args°   s    rO   c                   C   sœ   t tdtdk fdƒt t¡ƒdks&t‚t tdtdk fdƒt t¡ƒdksLt‚t tdtdkfdƒt t¡ƒdksrt‚t tdtdkfdƒt t¡ƒdks˜t‚d S )Nr   r   )r   T)r   r   r   r   r   r    r!   r#   r#   r#   r$   Útest_issue_refine_9384Ã   s    &&&rP   c                  C   s&   G dd„ dt ƒ} | ƒ }t|ƒs"t‚d S )Nc                   @   s   e Zd Zdd„ ZdS )z"test_eval_refine.<locals>.MockExprc                 S   s   dS )NTr#   )rC   Zassumptionsr#   r#   r$   Ú_eval_refineÌ   s    z/test_eval_refine.<locals>.MockExpr._eval_refineN)rK   rL   rM   rQ   r#   r#   r#   r$   ÚMockExprË   s   rR   )r   r   r    )rR   Zmock_objr#   r#   r$   Útest_eval_refineÊ   s    rS   c                  C   s¬   t ttt ƒt t¡ƒ} t ttt t ƒt t¡ƒ}| tttƒ ksHt‚|tttt ƒ ks`t‚tddd}t tt|d  t ƒt t¡ƒ}|t|d  ttƒ ks¨t‚d S )NÚy1Tr<   r   )	r   r   r   r   r   r   r   r    r
   )Úexpr1Zexpr2rT   Zexpr3r#   r#   r$   Útest_refine_issue_12724Ò   s     rV   c                  C   s¸   t dddƒ} tddd}tddd}t| d t | ¡ƒ| d ksDt‚t| d t | ¡ƒ| d ksdt‚t| ||f t | ¡ƒ| ||f ksŒt‚t| ||f t | ¡ƒ| ||f ks´t‚d S )	Nr   r(   ÚiT)r   Új)r   r   )r   r   )r   r
   r   r   Z	symmetricr    )r   rW   rX   r#   r#   r$   Útest_matrixelementÜ   s      (rY   N)8Zsympy.assumptions.askr   Zsympy.assumptions.refiner   Zsympy.core.exprr   Zsympy.core.numbersr   r   r   r   Zsympy.core.singletonr	   Zsympy.core.symbolr
   Z$sympy.functions.elementary.complexesr   r   r   r   r   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   Z	sympy.abcr   r   r   r   Zsympy.core.relationalr   r   Z$sympy.functions.elementary.piecewiser   Z"sympy.matrices.expressions.matexprr   r%   r-   r0   r3   r4   r6   r9   r:   r;   r>   r?   rO   rP   rS   rV   rY   r#   r#   r#   r$   Ú<module>   s:   

#

