o
    oÇh»+  ã                   @   s,  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 d dlmZmZ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 d dl m!Z! e	dddZ"eZ#dd„ Z$dd„ Z%dd„ Z&dd„ Z'dd„ Z(edd„ ƒZ)dd„ Z*dd„ Z+dd „ Z,d!d"„ Z-d#d$„ Z.d%d&„ Z/d'S )(é    )ÚEÚRationalÚooÚpiÚzoo)ÚS)ÚSymbol)ÚexpÚlog)ÚMaxÚMinÚsqrt)ÚcosÚsinÚtan)ÚAccumBounds)ÚAddÚMulÚPow)Ú	unchanged)ÚraisesÚXFAIL)ÚxÚaT©Úrealc                      sÖ  t ddƒjdks
J ‚t ddƒjtju sJ ‚t ddƒjtddƒks"J ‚t ddƒjdks,J ‚t ddƒtju s6J ‚t ddƒd t ddƒksDJ ‚dt ddƒ t ddƒksRJ ‚t ddƒt ddƒ t ddƒkscJ ‚t ddƒ t ddƒkspJ ‚t ddƒd t d	dƒks~J ‚dt ddƒ t dd	ƒksŒJ ‚t ddƒt ddƒ t d	dƒksJ ‚tt ddƒ t	t ddƒtƒks®J ‚t
t ddƒ t dt
 dt
 ƒksÀJ ‚t ddƒt t	t ddƒt ƒksÒJ ‚t t dƒt t t tƒksâJ ‚t dtƒt tu síJ ‚t dtƒt t t tƒksüJ ‚t t dtƒ t u s
J ‚t t dƒt t u sJ ‚t dtƒt t t tƒks(J ‚t t dƒt  t t tƒks:J ‚tt dtƒ t t tƒksJJ ‚t t dtƒ t u sXJ ‚t ddƒd t tjdƒkshJ ‚dt ddƒ t tddƒdƒkszJ ‚dt ddƒ t t tƒksŠJ ‚tt ddƒƒt ddƒks™J ‚tt ddƒƒt ddƒks¨J ‚tt ddƒƒt d	dƒks·J ‚tt ddƒƒt d	dƒksÆJ ‚td
ƒ‰ tt‡ fdd„ƒ ttdd„ ƒ tddd‰tt‡fdd„ƒ d S )Né   é   )r   r   é   Té   éþÿÿÿéÿÿÿÿr   Úcc                      s
   t dˆ ƒS )Nr   ©ÚB© ©r"   r%   ú€/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/calculus/tests/test_accumulationbounds.pyÚ<lambda>;   ó   
 z"test_AccumBounds.<locals>.<lambda>c                   S   s
   t ddƒS )Nr   r!   r#   r%   r%   r%   r'   r(   <   r)   Úrr   c                      s   t ˆ ˆ d ƒS )Nr   r#   r%   )r*   r%   r'   r(   >   ó    )r$   ÚargsÚdeltar   ÚOneÚmidr   Úis_realr   r   r   r   ÚHalfÚabsr   r   Ú
ValueErrorr%   r%   )r"   r*   r'   Útest_AccumBounds   sH   """$$  $  $ r4   c                  C   s†  t ddƒd t ddƒksJ ‚dt ddƒ t ddƒksJ ‚t ddƒt ddƒ t ddƒks-J ‚t ddƒt dtƒ t dtƒks>J ‚t t tƒt t tƒ} }| | t t tƒksWJ ‚||  t t tƒkscJ ‚t dtƒt ddƒ} }| | t t dƒkszJ ‚||  t t dƒks†J ‚t ddƒd dks‘J ‚t dtƒd t dtƒksŸJ ‚t t dƒd t t dƒks¯J ‚t t tƒd t t tƒks¿J ‚t ddƒt tt ddƒtd	d
ksÒJ ‚t ddƒt t dtƒksàJ ‚t ddƒt t t dƒksïJ ‚t ddƒt  t t dƒksÿJ ‚t ddƒt  t dtƒksJ ‚t ddƒt t t tƒksJ ‚t ddƒt  t t tƒks0J ‚t t tƒt t t tƒksAJ ‚d S )Nr   r   é   r   é   r   éýÿÿÿr    F©Úevaluater!   )r$   r   r   r   r   )Úlr*   r%   r%   r'   Útest_AccumBounds_mulA   s,   ""  &   "&r;   c                   C   s   t ddƒt ddƒ t tddƒdƒksJ ‚t ddƒt ddƒ t t tƒks&J ‚t ddƒt ddƒ t tjtƒks8J ‚t ddƒt ddƒ t t tƒksJJ ‚t d	dƒt dd	ƒ t t tƒks\J ‚t ddƒt ddƒ t t tdd	ƒƒksqJ ‚t d	dƒt ddƒ t t tddƒƒks†J ‚t d	dƒt ddƒ t td	dƒtƒksšJ ‚t ddƒt ddƒ t dtƒks«J ‚t ddƒt ddƒ t t dƒks½J ‚t dd	ƒt dd	ƒ t t tƒksÏJ ‚dt dd	ƒ t t tƒksÞJ ‚dt dd	ƒ t tjtƒksíJ ‚dt dd	ƒ t t tdd	ƒƒksÿJ ‚dt t dƒ t t dƒksJ ‚dt ddƒ t t dƒks J ‚dt t dƒ t dtƒks0J ‚dt t dƒ t ddƒks@J ‚t dd	ƒt tt dd	ƒdt d
dksVJ ‚t dd	ƒd t dd	ƒt ksgJ ‚t dtƒt t dtƒksvJ ‚t dtƒt  t t dƒks‡J ‚t t dƒt t t dƒks˜J ‚t t dƒt  t dtƒks©J ‚t t tƒt t t tƒksºJ ‚t t tƒt  t t tƒksÌJ ‚t dtƒt t dtƒksÛJ ‚t dtƒt  t t dƒksìJ ‚t t dƒt t t dƒksýJ ‚t t dƒt  t dtƒksJ ‚d S )Nr!   r   r5   r   r    r7   éüÿÿÿr   r   Fr8   )r$   r   r   r   r1   r   r   r   r%   r%   r%   r'   Útest_AccumBounds_div\   s<   ($$$$**("$$$"   ,"""""$""&r=   c                  C   s¸   t ddd} tddƒ}tdtƒ}tt tƒ}|t| ƒ tdt| ƒ tƒks'J ‚|t| ƒ tt tƒks5J ‚||  | tt tƒt| d | d ƒ ksLJ ‚|| | tt tƒksZJ ‚d S )Nr*   Tr   r!   r   é   )r   r$   r   r   )r*   r   r"   Úbr%   r%   r'   Útest_issue_18795…   s   

". r@   c                   C   s’   t d dt   d  t tddƒ¡tddƒksJ ‚ttddƒƒtdtƒks&J ‚ttt tƒƒtdtƒks5J ‚ttddƒƒttdƒtdƒƒksGJ ‚d S )Nr   r   r!   r5   r   r   r6   )r   Úsubsr$   r	   r   r   r
   r%   r%   r%   r'   Útest_AccumBounds_func   s   0(rB   c                  C   st   t ddd} td|  d|  ƒtddƒ td|  d|  d ƒks!J ‚t dddd}tddƒ| td| dƒks8J ‚d S )NÚnnT©Únonnegativer   r   Úi)ÚintegerÚnegative)r   r$   )rC   rF   r%   r%   r'   Útest_AccumBounds_powf—   s   6$rI   c                  C   s²  t ddƒd t ddƒksJ ‚t ddƒd t ddƒksJ ‚t ddƒd t ddƒks*J ‚t ddƒd t ddƒks8J ‚t ddƒd dksCJ ‚t ddƒtddƒ t ddtdƒ ƒksXJ ‚t ddƒtj t dtdƒƒksiJ ‚td	d
d} ttt | dƒtjƒs{J ‚tdd
d}t ||d ƒtj t t|ƒt|d ƒƒks˜J ‚t ||d ƒ| t || |d | ƒks®J ‚ttt ||d ƒtƒs»J ‚tdd
d}t ddƒ| t t	dd| ƒt
dd| ƒƒksÙJ ‚tdd
d
d}t ddƒ| t dd| ƒksðJ ‚t ddƒ| t d| dƒksJ ‚t ddƒd t tddƒdƒksJ ‚t ddƒd t dtƒks"J ‚t ddƒd t tddƒtƒks4J ‚t ddƒd t t tddƒ ƒksHJ ‚t ddƒd t tddƒtƒksZJ ‚t ddƒd t t tƒksjJ ‚t ddƒd t tddƒtddƒƒksJ ‚t ddƒd t tddƒtddƒƒks”J ‚t dtƒtj t dtƒks¤J ‚t t dƒd t dtƒks´J ‚t ddƒd t tddƒtƒksÆJ ‚t tddƒtjƒt tju s×J ‚t dtjƒt tju såJ ‚t tjdƒt t dtƒksõJ ‚t ddƒt t dtƒksJ ‚t ddƒt tu sJ ‚t ddƒt t dtƒksJ ‚t tjdƒt t dtƒks/J ‚t tddƒtddƒƒt tju sBJ ‚t dtddƒƒt tju sRJ ‚t ddƒt tu s^J ‚t ddƒt tju skJ ‚t dtddƒƒt tju s{J ‚t tddƒtjƒt tju sŒJ ‚t tddƒdƒt t dtƒksžJ ‚t tddƒdƒt t dtƒks°J ‚t ddƒt t t tƒksÀJ ‚t dtjƒt t t tƒksÑJ ‚t ddƒt t t tƒksáJ ‚t dtjƒt t t tƒksòJ ‚t ddƒt tt ddƒtddksJ ‚t ddƒt  tju sJ ‚t ddƒt  t dtƒks$J ‚t ddƒt  t t tƒks5J ‚ttƒtdt ƒ  tt dtd ƒ¡tt t tƒt ddƒƒksWJ ‚d S )Nr   r   r5   r!   r   r   é   r   ÚnegT)rH   rC   rD   rF   )rG   )rG   rE   r    é   r7   é   é	   Fr8   )r$   r   r   r   r1   r   r   r   r   r   r   r   ÚZeroÚNaNr   r   r   rA   r   )rK   rC   rF   r%   r%   r'   Útest_AccumBounds_powŸ   sn   *".,0 "$$($ **  $"  &  "$$ " "( "$ÿrQ   c                  C   s(  dt tttj ƒ } |  td¡t ddƒksJ ‚|  td¡dks!J ‚|  td¡}|jr6|jdt dtj ƒfks8J ‚dt ttd ƒ dksEJ ‚tjt ddƒ t tdƒd dƒksXJ ‚dt ddƒ t tdƒd dƒksjJ ‚t ddƒt tdƒd dƒ t ddƒksJ ‚t ddƒt ddƒ t ddƒksJ ‚t ddƒt ddƒ t tdƒd	 tdƒd ƒks©J ‚t ddƒt ddƒ t tdƒd	 d
ƒks¾J ‚ttt ddƒt ddƒƒsÌJ ‚t dtdƒd ƒt dt	ƒ t dtdƒd ƒksåJ ‚t ddƒt dt	ƒ t dt	ƒksöJ ‚t ddƒt dt	ƒ t dt	ƒksJ ‚t dt	ƒt dt	ƒ t dt	ƒksJ ‚t tdƒd dƒt dt	ƒ t dt	ƒks0J ‚t tdƒd dƒt t	 dƒ t dt	ƒksGJ ‚t tdƒd dƒt t	 t	ƒ t dt	ƒks^J ‚t tdƒd dƒt dt	ƒ t dt	ƒkstJ ‚t tdƒd dƒt t	 dƒ t dt	ƒks‹J ‚t tdƒd dƒt t	 t	ƒ t dt	ƒks¢J ‚t tdƒd t	ƒt dt	ƒ t dt	ƒks¸J ‚t tdƒd t	ƒt t	 dƒ t dt	ƒksÏJ ‚t tdƒd t	ƒt t	 t	ƒ t dt	ƒksæJ ‚t ddƒt dt	ƒ t dt	ƒksøJ ‚t ddƒt t	 dƒ t dt	ƒksJ ‚t ddƒt t	 t	ƒ t dt	ƒksJ ‚t dt	ƒt dt	ƒ t dt	ƒks0J ‚t dt	ƒt t	 dƒ t dt	ƒksCJ ‚t dt	ƒt t	 t	ƒ t dt	ƒksVJ ‚t dt	ƒt dt	ƒ t dt	ƒkshJ ‚t dt	ƒt t	 dƒ t dtdƒd ƒksJ ‚t dt	ƒt t	 t	ƒ t dt	ƒks’J ‚d S )Nr   r   r!   r    r   r5   r   r7   rM   rN   )
r$   r   r   r1   rA   Úis_Powr,   r   r   r   )ÚzÚpr%   r%   r'   Útest_AccumBounds_exponentß   sF   "&$*"2*2"$$,..,..,..$&&$&&$.*rU   c                      sH  t ddƒdk tjksJ ‚t ddƒdk tjksJ ‚t ddƒdk jdks$J ‚t ddƒdkjdks0J ‚t ddƒdktjks<J ‚t ddƒdktjksHJ ‚t ddƒdkjdksTJ ‚t ddƒdkjd	ks`J ‚t ddƒt dd
ƒk tjksoJ ‚t ddƒt ddƒk jdks~J ‚t ddƒt ddƒk tjksJ ‚t ddƒt dd
ƒktjksœJ ‚t ddƒt ddƒktjks«J ‚t ddƒt dd
ƒktjksºJ ‚t ddƒt ddƒktjksÉJ ‚t ddƒt dd
ƒktjksØJ ‚t ddƒt ddƒktjksçJ ‚ttƒdk tt¡t ddƒdkksúJ ‚t	dƒ‰ t
t‡ fdd„ƒ t
t‡ fdd„ƒ t
t‡ fdd„ƒ t
t‡ fdd„ƒ d S )Nr   r   r5   r!   r   ú<z<=ú>z>=r6   r    r   r"   c                      s   t ddƒˆ k S ©Nr   r   r#   r%   r&   r%   r'   r(   ,  r+   z-test_comparison_AccumBounds.<locals>.<lambda>c                      s   t ddƒˆ kS rX   r#   r%   r&   r%   r'   r(   -  r+   c                      s   t ddƒˆ kS rX   r#   r%   r&   r%   r'   r(   .  r+   c                      s   t ddƒˆ kS rX   r#   r%   r&   r%   r'   r(   /  r+   )r$   r   ÚtrueÚfalseÚrel_opr   r   rA   r   r   r   Ú	TypeErrorr%   r%   r&   r'   Útest_comparison_AccumBounds  s.   &r]   c                  C   sæ   dt ddƒv tjksJ ‚ttdd„ ƒ dt ddƒv sJ ‚ttdd„ ƒ t t dtƒv tjks0J ‚tt t dƒv tjks=J ‚tdt ddƒƒtt ddƒdƒ  krTdksWJ ‚ J ‚dd l} |  dt ddƒt	g¡D ]
}t|Ž dkspJ ‚qfd S )Nr   r   c                   S   s   t tddƒv S )Nr   r   )r   r$   r%   r%   r%   r'   r(   4  r+   z+test_contains_AccumBounds.<locals>.<lambda>r   r!   c                   S   s&   t dƒd tdƒd  d tddƒv S )Nr   r   r!   r   )r   r   r$   r%   r%   r%   r'   r(   6  s   &)
r$   r   rY   r   r\   r   r   Ú	itertoolsÚpermutationsr   )r^   Úpermr%   r%   r'   Útest_contains_AccumBounds2  s   4ÿra   c                   C   sÂ   t ddƒ t ddƒ¡t ddƒksJ ‚t ddƒ t ddƒ¡t ddƒks$J ‚t ddƒ t ddƒ¡t ddƒks6J ‚t ddƒ t ddƒ¡t ddƒksHJ ‚t ddƒ t ddƒ¡tjksXJ ‚ttdd„ ƒ d S )	Nr   r   r   r   r5   r!   c                   S   ó   t ddƒ d¡S ©Nr   r   r   )r$   Úintersectionr%   r%   r%   r'   r(   H  ó    z/test_intersection_AccumBounds.<locals>.<lambda>)r$   rd   r   ÚEmptySetr   r\   r%   r%   r%   r'   Útest_intersection_AccumBoundsB  s   $$$$ rg   c                   C   s¢   t ddƒ t ddƒ¡t ddƒksJ ‚t ddƒ t ddƒ¡t ddƒks$J ‚t ddƒ t ddƒ¡t ddƒks6J ‚t ddƒ t ddƒ¡t ddƒksHJ ‚ttdd„ ƒ d S )	Nr   r   r   r   r5   r!   c                   S   rb   rc   )r$   Úunionr%   r%   r%   r'   r(   P  re   z(test_union_AccumBounds.<locals>.<lambda>)r$   rh   r   r\   r%   r%   r%   r'   Útest_union_AccumBoundsK  s
   $$$$ri   N)0Úsympy.core.numbersr   r   r   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   Ú&sympy.functions.elementary.exponentialr	   r
   Ú(sympy.functions.elementary.miscellaneousr   r   r   Ú(sympy.functions.elementary.trigonometricr   r   r   Ú!sympy.calculus.accumulationboundsr   Ú
sympy.corer   r   r   Úsympy.core.exprr   Úsympy.testing.pytestr   r   Ú	sympy.abcr   r   r$   r4   r;   r=   r@   rB   rI   rQ   rU   r]   ra   rg   ri   r%   r%   r%   r'   Ú<module>   s4    0)
@1"	