U
    Ç-e»+  ã                   @   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t‚t ddƒjtjks*t‚t ddƒjtddƒksDt‚t ddƒjdksXt‚t ddƒtjkslt‚t ddƒd t ddƒksˆt‚dt ddƒ t ddƒks¤t‚t ddƒt ddƒ t ddƒksÆt‚t ddƒ t ddƒksàt‚t ddƒd t d	dƒksüt‚dt ddƒ t dd	ƒkst‚t ddƒt ddƒ t d	dƒks>t‚t	t ddƒ t
t ddƒt	ƒksbt‚tt ddƒ t dt dt ƒksˆt‚t ddƒt	 t
t ddƒt	 ƒks®t‚t t dƒt t t tƒksÐt‚t dtƒt tksèt‚t dtƒt t t tƒkst‚t t dtƒ t ks$t‚t t dƒt t ks@t‚t dtƒt t t tƒks`t‚t t dƒt  t t tƒks„t‚tt dtƒ t t tƒks¤t‚t t dtƒ t ksÀt‚t ddƒd t tjdƒksàt‚dt ddƒ t tddƒdƒkst‚dt ddƒ t t tƒks$t‚tt ddƒƒt ddƒksBt‚tt ddƒƒt ddƒks`t‚tt ddƒƒt d	dƒks~t‚tt ddƒƒt d	dƒksœt‚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%   úm/var/www/html/Darija-Ai-Train/env/lib/python3.8/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)   )r$   ÚargsÚAssertionErrorÚdeltar   ZOneÚmidr   Zis_realr   r   r   r   ÚHalfÚabsr   r   Ú
ValueErrorr%   r%   )r"   r*   r'   Útest_AccumBounds   sH    "$$&&"  $  $ r2   c                  C   s˜  t ddƒd t ddƒkst‚dt ddƒ t ddƒks8t‚t ddƒt ddƒ t ddƒksZt‚t ddƒt dtƒ t dtƒks|t‚t t tƒt t tƒ } }| | t t tƒks®t‚||  t t tƒksÆt‚t dtƒt ddƒ } }| | t t dƒksôt‚||  t t dƒkst‚t ddƒd dks&t‚t dtƒd t dtƒksDt‚t t dƒd t t dƒksft‚t t tƒd t t tƒksˆt‚t ddƒt tt ddƒtd	d
ks°t‚t ddƒt t dtƒksÎt‚t ddƒt t t dƒksît‚t ddƒt  t t dƒkst‚t ddƒt  t dtƒks0t‚t ddƒt t t tƒksPt‚t ddƒt  t t tƒksrt‚t t tƒt t t tƒks”t‚d S )Nr   r   é   r   é   r   éýÿÿÿr    F©Úevaluater!   )r$   r,   r   r   r   r   )Úlr*   r%   r%   r'   Útest_AccumBounds_mulA   s,    """"( "  "r9   c                   C   s0  t ddƒt ddƒ t tddƒdƒks(t‚t ddƒt ddƒ t t tƒksLt‚t ddƒt ddƒ t tjtƒkspt‚t ddƒt ddƒ t t tƒks”t‚t d	dƒt dd	ƒ t t tƒks¸t‚t ddƒt ddƒ t t tdd	ƒƒksât‚t d	dƒt ddƒ t t tddƒƒkst‚t d	dƒt ddƒ t td	dƒtƒks8t‚t ddƒt ddƒ t dtƒks\t‚t ddƒt ddƒ t t dƒks‚t‚t dd	ƒt dd	ƒ t t tƒks¨t‚dt dd	ƒ t t tƒksÈt‚dt dd	ƒ t tjtƒksèt‚dt dd	ƒ t t tdd	ƒƒkst‚dt t dƒ t t dƒks0t‚dt ddƒ t t dƒksPt‚dt t dƒ t dtƒkspt‚dt t dƒ t ddƒkst‚t dd	ƒt tt dd	ƒdt d
dks¼t‚t dd	ƒd t dd	ƒt ksÞt‚t dtƒt t dtƒksüt‚t dtƒt  t t dƒkst‚t t dƒt t t dƒks@t‚t t dƒt  t dtƒksbt‚t t tƒt t t tƒks„t‚t t tƒt  t t tƒks¨t‚t dtƒt t dtƒksÆt‚t dtƒt  t t dƒksèt‚t t dƒt t t dƒks
t‚t t dƒt  t dtƒks,t‚d S )Nr!   r   r3   r   r    r5   éüÿÿÿr   r   Fr6   )	r$   r   r,   r   r   r/   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sNt‚|t| ƒ tt tƒksjt‚||  | tt tƒt| d | d ƒ ks˜t‚|| | tt tƒks´t‚d S )Nr*   Tr   r!   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s0t‚ttddƒƒtdtƒksLt‚ttt tƒƒtdtƒksjt‚ttddƒƒttdƒtdƒƒksŽt‚d S )Nr   r   r!   r3   r   r   r4   )r   Úsubsr$   r,   r	   r   r   r
   r%   r%   r%   r'   Útest_AccumBounds_func   s    0r@   c                  C   st   t ddd} td|  d|  ƒtddƒ td|  d|  d ƒksBt‚t dddd}tddƒ| td| dƒkspt‚d S )NÚnnT©Únonnegativer   r   Úi)ÚintegerÚnegative)r   r$   r,   )rA   rD   r%   r%   r'   Útest_AccumBounds_powf—   s    6rG   c                  C   s¼  t ddƒd t ddƒkst‚t ddƒd t ddƒks8t‚t ddƒd t ddƒksTt‚t ddƒd t ddƒkspt‚t ddƒd dks†t‚t ddƒtddƒ t ddtdƒ ƒks°t‚t ddƒtj t dtdƒƒksÒt‚td	d
d} ttt | dƒtjƒsöt‚tdd
d}t ||d ƒtj t t|ƒt|d ƒƒks2t‚t ||d ƒ| t || |d | ƒks`t‚ttt ||d ƒt	ƒs|t‚tdd
d}t ddƒ| t t
dd| ƒtdd| ƒƒksºt‚tdd
d
d}t ddƒ| t dd| ƒksêt‚t ddƒ| t d| dƒkst‚t ddƒd t tddƒdƒks0t‚t ddƒd t dtƒksNt‚t ddƒd t tddƒtƒksrt‚t ddƒd t t tddƒ ƒksšt‚t ddƒd t tddƒtƒks¾t‚t ddƒd t t tƒksÞt‚t ddƒd t tddƒtddƒƒkst‚t ddƒd t tddƒtddƒƒks2t‚t dtƒtj t dtƒksRt‚t t dƒd t dtƒksrt‚t ddƒd t tddƒtƒks–t‚t tddƒtjƒt tjks¸t‚t dtjƒt tjksÔt‚t tjdƒt t dtƒksôt‚t ddƒt t dtƒkst‚t ddƒt tks*t‚t ddƒt t dtƒksHt‚t tjdƒt t dtƒksht‚t tddƒtddƒƒt tjksŽt‚t dtddƒƒt tjks®t‚t ddƒt tksÆt‚t ddƒt tjksàt‚t dtddƒƒt tjks t‚t tddƒtjƒt tjks"t‚t tddƒdƒt t dtƒksFt‚t tddƒdƒt t dtƒksjt‚t ddƒt t t tƒksŠt‚t dtjƒt t t tƒks¬t‚t ddƒt t t tƒksÌt‚t dtjƒt t t tƒksît‚t ddƒt	 tt ddƒt	ddkst‚t ddƒt  tjks2t‚t ddƒt  t dtƒksRt‚t ddƒt  t t tƒkstt‚tt	ƒtdt	 ƒ  t	t dtd ƒ¡tt t tƒt ddƒƒks¸t‚d S )Nr   r   r3   r!   r   r   é   r   ÚnegT)rF   rA   rB   rD   )rE   )rE   rC   r    é   r5   é   é	   Fr6   )r$   r,   r   r   r   r/   r   r   r   r   r   r   r   ZZeroÚNaNr   r   r   r?   r   )rI   rA   rD   r%   r%   r'   Útest_AccumBounds_powŸ   sn    *"0.2""$$($ **  $"  &  "$$ " "( "$ÿrN   c                  C   s4  dt tttj ƒ } |  td¡t ddƒks.t‚|  td¡dksBt‚|  td¡}|jrl|jdt dtj ƒfkspt‚dt ttd ƒ dksŠt‚tjt ddƒ t tdƒd dƒks°t‚dt ddƒ t tdƒd dƒksÔt‚t ddƒt tdƒd dƒ t ddƒksþt‚t ddƒt ddƒ t ddƒks"t‚t ddƒt ddƒ t tdƒd	 tdƒd ƒksVt‚t ddƒt ddƒ t tdƒd	 d
ƒks‚t‚tt	t ddƒt ddƒƒs t‚t dtdƒd ƒt dt
ƒ t dtdƒd ƒksÔt‚t ddƒt dt
ƒ t dt
ƒksøt‚t ddƒt dt
ƒ t dt
ƒkst‚t dt
ƒt dt
ƒ t dt
ƒks@t‚t tdƒd dƒt dt
ƒ t dt
ƒkslt‚t tdƒd dƒt t
 dƒ t dt
ƒksšt‚t tdƒd dƒt t
 t
ƒ t dt
ƒksÈt‚t tdƒd dƒt dt
ƒ t dt
ƒksôt‚t tdƒd dƒt t
 dƒ t dt
ƒks"t‚t tdƒd dƒt t
 t
ƒ t dt
ƒksPt‚t tdƒd t
ƒt dt
ƒ t dt
ƒks|t‚t tdƒd t
ƒt t
 dƒ t dt
ƒksªt‚t tdƒd t
ƒt t
 t
ƒ t dt
ƒksØt‚t ddƒt dt
ƒ t dt
ƒksüt‚t ddƒt t
 dƒ t dt
ƒks"t‚t ddƒt t
 t
ƒ t dt
ƒksHt‚t dt
ƒt dt
ƒ t dt
ƒkslt‚t dt
ƒt t
 dƒ t dt
ƒks’t‚t d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 t
 dƒ t dtdƒd ƒks
t‚t dt
ƒt t
 t
ƒ t dt
ƒks0t‚d S )Nr   r   r!   r    r   r3   r   r5   rK   rL   )r$   r   r   r/   r?   r,   Zis_Powr+   r   r   r   )ÚzÚpr%   r%   r'   Útest_AccumBounds_exponentß   sF    "&$*$4,4$$$,..,..,..$&&$&&$.rQ   c                      sX  t ddƒdk tjkst‚t ddƒdk tjks0t‚t ddƒdk jdksHt‚t ddƒdkjdks`t‚t ddƒdktjksxt‚t ddƒdktjkst‚t ddƒdkjdks¨t‚t ddƒdkjd	ksÀt‚t ddƒt dd
ƒk tjksÞt‚t ddƒt ddƒk jdksüt‚t ddƒt ddƒk tjkst‚t ddƒt dd
ƒktjks<t‚t ddƒt ddƒktjks\t‚t ddƒt dd
ƒktjks|t‚t ddƒt ddƒktjksœt‚t ddƒt dd
ƒktjks¼t‚t ddƒt ddƒktjksÜt‚ttƒdk tt	¡t ddƒdkkst‚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   r3   r!   r   ú<z<=ú>z>=r4   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 rT   r#   r%   r&   r%   r'   r(   -  r)   c                      s   t ddƒˆ kS rT   r#   r%   r&   r%   r'   r(   .  r)   c                      s   t ddƒˆ kS rT   r#   r%   r&   r%   r'   r(   /  r)   )r$   r   Útruer,   ÚfalseZrel_opr   r   r?   r   r   r   Ú	TypeErrorr%   r%   r&   r'   Útest_comparison_AccumBounds  s.           (rX   c                  C   sä   dt ddƒktjkst‚ttdd„ ƒ dt ddƒks8t‚ttdd„ ƒ t t dtƒktjks`t‚tt t dƒktjkszt‚tdt ddƒƒtt ddƒdƒ  kr¦dks¬n t‚dd l} |  	dt ddƒt
g¡D ]}t|Ž dksÊt‚qÊd S )Nr   r   c                   S   s   t tddƒk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ƒkS )Nr   r   r!   r   )r   r   r$   r%   r%   r%   r'   r(   6  s    )r$   r   rU   r,   r   rW   r   r   Ú	itertoolsÚpermutationsr   )rY   Úpermr%   r%   r'   Útest_contains_AccumBounds2  s    2r\   c                   C   sÂ   t ddƒ t ddƒ¡t ddƒks$t‚t ddƒ t ddƒ¡t ddƒksHt‚t ddƒ t ddƒ¡t ddƒkslt‚t ddƒ t ddƒ¡t ddƒkst‚t ddƒ t ddƒ¡tjks°t‚ttdd„ ƒ d S )	Nr   r   r   r   r3   r!   c                   S   s   t ddƒ d¡S ©Nr   r   r   )r$   Úintersectionr%   r%   r%   r'   r(   H  r)   z/test_intersection_AccumBounds.<locals>.<lambda>)r$   r^   r,   r   ZEmptySetr   rW   r%   r%   r%   r'   Útest_intersection_AccumBoundsB  s    $$$$ r_   c                   C   s¢   t ddƒ t ddƒ¡t ddƒks$t‚t ddƒ t ddƒ¡t ddƒksHt‚t ddƒ t ddƒ¡t ddƒkslt‚t ddƒ t ddƒ¡t ddƒkst‚ttdd„ ƒ d S )	Nr   r   r   r   r3   r!   c                   S   s   t ddƒ d¡S r]   )r$   Úunionr%   r%   r%   r'   r(   P  r)   z(test_union_AccumBounds.<locals>.<lambda>)r$   r`   r,   r   rW   r%   r%   r%   r'   Útest_union_AccumBoundsK  s
    $$$$ra   N)0Zsympy.core.numbersr   r   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z&sympy.functions.elementary.exponentialr	   r
   Z(sympy.functions.elementary.miscellaneousr   r   r   Z(sympy.functions.elementary.trigonometricr   r   r   Z!sympy.calculus.accumulationboundsr   Z
sympy.corer   r   r   Zsympy.core.exprr   Zsympy.testing.pytestr   r   Z	sympy.abcr   r   r$   r2   r9   r;   r>   r@   rG   rN   rQ   rX   r\   r_   ra   r%   r%   r%   r'   Ú<module>   s2   0)
@1"	