U
    ZÊ¹j»+  ã                   @   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%   úk/var/www/html/bwave/python/venv/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�s�t‚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s�t‚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s�t‚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s�t‚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"	