o
    oÇh‚"  ã                   @   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J ‚t dttƒ t t¡ƒdt ks J ‚t ttƒt t¡ƒt ks/J ‚t dttƒ t t¡ƒdt ksAJ ‚t ttd ƒƒtd ksOJ ‚t ttd ƒt t¡ƒtd ksaJ ‚d S ©Né   é   )r   r   r   r   ÚpositiveÚnegativeÚreal© r"   r"   úw/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/assumptions/tests/test_refine.pyÚtest_Abs   s   $$(r$   c                   C   s  t dt t t¡ƒdksJ ‚t dt t t¡ƒdksJ ‚t dt t t¡ƒdt ks,J ‚t ttd ƒƒttƒks:J ‚t ttd ƒt t¡ƒttƒksLJ ‚t ttd ƒt t¡ƒttƒks^J ‚t ttd ƒt 	t¡ƒtksnJ ‚t td t
ddƒ ƒtks}J ‚t td t
ddƒ t t¡ƒtksJ ‚t td t
ddƒ t 	t¡ƒtks£J ‚t tdt ƒt t¡ƒdttƒ ks·J ‚t tdt ƒt 	t¡ƒdttƒ ksËJ ‚t dtt  t t¡ƒdt ksÝJ ‚t dtt t  t t¡t t¡@ ƒdt ksöJ ‚t dtt d  t t¡ƒdt ksJ ‚t dtt d  t t¡ƒdtd  ks"J ‚t dtd  ƒdtd  ks3J ‚t ddt d tj  t t¡ƒdt ksKJ ‚t ddt d tj  t t¡ƒdtd  kseJ ‚t ddt d dtj   t t¡ƒdtd  ksJ ‚d S )Néÿÿÿÿr   éþÿÿÿr   é   é   )r   r   r   ÚevenÚoddr   r   Úcomplexr!   r   r   r   r   r	   ÚHalfÚintegerr"   r"   r"   r#   Ú	test_pow1   s(    $$ &&(($2*."04<r.   c                   C   sØ   t ddt d dtj   t t¡ƒdtd  ksJ ‚t ddt d dtj   t t¡ƒdt ks4J ‚t ttƒd t t¡ƒtd ksFJ ‚t ttƒd t t¡ƒttƒd ksZJ ‚t ttƒd ƒttƒd ksjJ ‚d S )Nr%   r   é   r   é	   r'   )r   r   r	   r,   r   r-   r   r!   r"   r"   r"   r#   Ú	test_pow2:   s
   62$($r1   c                  C   s¬   t ddd} tttt d |  ƒƒdksJ ‚tttt d | tj  ƒƒdks)J ‚tttt d | tddƒ  ƒƒtks>J ‚tttt d | tddƒ  ƒƒt ksTJ ‚d S )	Nr   T)r-   r   r   r%   é   r'   )r
   r   r   r   r   r	   r,   r   ©r   r"   r"   r#   Útest_expD   s
    &*0r4   c                   C   sj  t tdtdk fdƒtdk ƒdksJ ‚t tdtdk fdƒtdk  ƒdks%J ‚t tdtdk fdƒtdk ƒtdtdk fdƒks>J ‚t tdtdkfdƒtdkƒdksPJ ‚t tdtdkfdƒtdk ƒdkscJ ‚t tdtdkfdƒtdkƒtdtdkfdƒks|J ‚t tdtdkfdƒtdkƒdksŽJ ‚t tdtdkfdƒtdk ƒdks¡J ‚t tdtdkfdƒtdkƒtdtdkfdƒksºJ ‚t tdtdkfdƒtdkƒdksÌJ ‚t tdtdkfdƒtdk ƒdksßJ ‚t tdtdkfdƒtdkƒtdtdkfdƒksøJ ‚t tdttdƒfdƒttdƒƒdksJ ‚t tdttdƒfdƒtdtƒƒdks"J ‚t tdttdƒfdƒttdƒ ƒdks8J ‚t tdttdƒfdƒtdtƒ ƒdksNJ ‚t tdttdƒfdƒttdƒƒtdttdƒfdƒkskJ ‚t tdttdƒfdƒttdƒƒdks€J ‚t tdttdƒfdƒttdƒ ƒdks–J ‚t tdttdƒfdƒttdƒƒtdttdƒfdƒks³J ‚d S )Nr   r   )r'   Tr'   )r   r   r   r   r   r   r"   r"   r"   r#   Útest_PiecewiseL   sX   $&ÿ$&ÿ$&ÿ$&ÿ
ÿ
ÿ 
ÿ 
ÿ
ÿ
ÿ 
ÿÿr5   c                   C   sv  t tttƒt t¡t t¡@ ƒttt ƒksJ ‚t tttƒt t¡t t¡@ ƒttt ƒks0J ‚t tttƒt t¡t t¡@ ƒttt ƒt	 ksJJ ‚t tttƒt t¡t t¡@ ƒttt ƒt	 ksdJ ‚t tttƒt 
t¡t t¡@ ƒt	ksxJ ‚t tttƒt t¡t 
t¡@ ƒt	d ksŽJ ‚t tttƒt t¡t 
t¡@ ƒt	 d ks¥J ‚t tttƒt 
t¡t 
t¡@ ƒtu s¹J ‚d S )Nr   )r   r   r   r   r   r!   r   r   r    r   Úzeror   r"   r"   r"   r#   Ú
test_atan2o   s   0044(,.,r7   c                   C   s.  t ttƒt t¡ƒtksJ ‚t ttƒt t¡ƒtju sJ ‚t ttt ƒt t¡t t¡@ ƒtt ks4J ‚t ttt ƒt t¡t t¡@ ƒtksIJ ‚t ttt ƒt t¡t t¡@ ƒtt ks`J ‚t ttt ƒt t¡t t¡@ ƒdksuJ ‚t ttt t	 ƒt t¡t t¡@ t t	¡@ ƒtt t	 ks•J ‚d S )Nr   )
r   r   r   r   r!   Ú	imaginaryr	   ÚZeror   r   r"   r"   r"   r#   Útest_rez   s   .*.*Dr:   c                   C   sv  t ttƒt t¡ƒt t ksJ ‚t ttƒt t¡ƒtju s J ‚t ttt	 ƒt t¡t t	¡@ ƒt t tt	  ks<J ‚t ttt	 ƒt t¡t t	¡@ ƒt t	 ksTJ ‚t ttt	 ƒt t¡t t	¡@ ƒt t t	 ksnJ ‚t ttt	 ƒt t¡t t	¡@ ƒdksƒJ ‚t tdt ƒt t¡ƒt t ks–J ‚t ttt	 t
 ƒt t¡t t	¡@ t t
¡@ ƒt t t	 t
 ks¹J ‚d S )Nr   r   )r   r   r   r   r8   r   r!   r	   r9   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s!J ‚t tdttt   ƒt t¡t t¡@ ƒt td td   ksCJ ‚t tttt  ttt	   ƒt t¡t t¡@ t t¡@ t t	¡@ ƒtt tt	  kspJ ‚t tttt  ttt	   ƒt t¡t t¡@ t t¡@ t t	¡@ ƒtt	 tt  ksJ ‚d S r   )
r   r   r   r   r   r   r!   r   r   r   r"   r"   r"   r#   Útest_complex   s    (ÿ(ÿ8ÿÿ8ÿÿr<   c                  C   s2  t ddd} tt| ƒt | ¡ƒdksJ ‚tt| ƒt | ¡ƒdks"J ‚tt| ƒt | ¡ƒdks0J ‚tt| ƒdƒt| ƒks=J ‚ttt| ƒƒt | ¡ƒdksMJ ‚t ddd} tt| ƒt t	| ƒ¡ƒt
jksdJ ‚tt| ƒt t	| ƒ¡ƒt
j ksvJ ‚tt| ƒdƒt| ƒksƒJ ‚t ddd} tt| ƒt | ¡ƒdks—J ‚d S )	Nr   T©r!   r   r%   r   )r8   ©r+   )r
   r   r   r   r   r    r6   r   Únonzeror   r	   ÚImaginaryUnitr3   r"   r"   r#   Ú	test_sign›   s    "$ rA   c                  C   sH   t ddd} tt| ƒt | ¡ƒdksJ ‚tt| ƒt | ¡ƒtks"J ‚d S )Nr   Tr>   r   )r
   r   r   r   r   r    r   r3   r"   r"   r#   Útest_arg«   s    rB   c                     s8   G ‡ fdd„dt ƒ‰ ˆ ƒ } d| _| jt| ƒjksJ ‚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 )NrD   )rG   Úobj)ÚMyClassrF   r"   r#   Úmy_func¹   s   z5test_func_args.<locals>.MyClass.func.<locals>.my_funcr"   )rF   rK   ©rJ   )rF   r#   Úfunc·   s   z$test_func_args.<locals>.MyClass.funcN)Ú__name__Ú
__module__Ú__qualname__rH   ÚpropertyrM   r"   rL   r"   r#   rJ   ±   s    rJ   zA very important value)r   rE   r   r3   r"   rL   r#   Útest_func_args°   s   rR   c                   C   sœ   t tdtdk fdƒt t¡ƒdksJ ‚t tdtdk fdƒt t¡ƒdks&J ‚t tdtdkfdƒt t¡ƒdks9J ‚t tdtdkfdƒt t¡ƒdksLJ ‚d S )Nr   r   )r   T)r   r   r   r   r   r    r"   r"   r"   r#   Útest_issue_refine_9384Ã   s   &&&*rS   c                  C   s&   G dd„ dt ƒ} | ƒ }t|ƒsJ ‚d S )Nc                   @   s   e Zd Zdd„ ZdS )z"test_eval_refine.<locals>.MockExprc                 S   s   dS )NTr"   )rF   Úassumptionsr"   r"   r#   Ú_eval_refineÌ   s   z/test_eval_refine.<locals>.MockExpr._eval_refineN)rN   rO   rP   rU   r"   r"   r"   r#   ÚMockExprË   s    rV   )r   r   )rV   Úmock_objr"   r"   r#   Útest_eval_refineÊ   s   rX   c                  C   s¬   t ttt ƒt t¡ƒ} t ttt t ƒt t¡ƒ}| tttƒ ks$J ‚|tttt ƒ ks0J ‚tddd}t tt|d  t ƒt t¡ƒ}|t|d  ttƒ ksTJ ‚d S )NÚy1Tr=   r   )r   r   r   r   r   r   r   r
   )Úexpr1Úexpr2rY   Úexpr3r"   r"   r#   Útest_refine_issue_12724Ò   s     r]   c                  C   s¸   t dddƒ} tddd}tddd}t| d t | ¡ƒ| d ks"J ‚t| d t | ¡ƒ| d ks2J ‚t| ||f t | ¡ƒ| ||f ksFJ ‚t| ||f t | ¡ƒ| ||f ksZJ ‚d S )	Nr   r'   ÚiT)r   Új)r   r   )r   r   )r   r
   r   r   Ú	symmetric)r   r^   r_   r"   r"   r#   Útest_matrixelementÜ   s     (,ra   N)8Úsympy.assumptions.askr   Úsympy.assumptions.refiner   Úsympy.core.exprr   Úsympy.core.numbersr   r   r   r   Úsympy.core.singletonr	   Úsympy.core.symbolr
   Ú$sympy.functions.elementary.complexesr   r   r   r   r   Ú&sympy.functions.elementary.exponentialr   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   r   Ú	sympy.abcr   r   r   r   Úsympy.core.relationalr   r   Ú$sympy.functions.elementary.piecewiser   Ú"sympy.matrices.expressions.matexprr   r$   r.   r1   r4   r5   r7   r:   r;   r<   rA   rB   rR   rS   rX   r]   ra   r"   r"   r"   r#   Ú<module>   s<    

#

