a
    kº”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sDJ ‚t ddƒjdksXJ ‚t ddƒtju slJ ‚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dƒksàJ ‚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t ddƒ t	t ddƒtƒksbJ ‚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s¤J ‚t t dtƒ t u sÀJ ‚t ddƒd t tjdƒksàJ ‚dt ddƒ t tddƒdƒksJ ‚dt ddƒ t t tƒks$J ‚tt ddƒƒt ddƒksBJ ‚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%   úZ/var/www/auris/lib/python3.9/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Údeltar   ZOneZmidr   Zis_realr   r   r   r   ÚHalfÚabsr   r   Ú
ValueErrorr%   r%   )r"   r*   r'   Útest_AccumBounds   sH    "$$&&"  $  $ r0   c                  C   s˜  t ddƒd t ddƒksJ ‚dt ddƒ t ddƒks8J ‚t ddƒt ddƒ t ddƒksZJ ‚t ddƒt dtƒ t dtƒks|J ‚t t tƒt t tƒ } }| | t t tƒks®J ‚||  t t tƒksÆJ ‚t dtƒt ddƒ } }| | t t dƒksôJ ‚||  t t dƒksJ ‚t ddƒd dks&J ‚t dtƒd t dtƒksDJ ‚t t dƒd t t dƒksfJ ‚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s0J ‚t ddƒt t t tƒksPJ ‚t ddƒt  t t tƒksrJ ‚t t tƒt t t tƒks”J ‚d S )Nr   r   é   r   é   r   éýÿÿÿr    F©Úevaluater!   )r$   r   r   r   r   )Úlr*   r%   r%   r'   Útest_AccumBounds_mulA   s,    """"( "  "r7   c                   C   s0  t ddƒt ddƒ t tddƒdƒks(J ‚t ddƒt ddƒ t t tƒksLJ ‚t ddƒt ddƒ t tjtƒkspJ ‚t ddƒt ddƒ t t tƒks”J ‚t d	dƒt dd	ƒ t t tƒks¸J ‚t ddƒt ddƒ t t tdd	ƒƒksâJ ‚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s8J ‚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s0J ‚dt ddƒ t t dƒksPJ ‚dt t dƒ t dtƒkspJ ‚dt t dƒ t ddƒksJ ‚t dd	ƒt tt dd	ƒdt d
dks¼J ‚t dd	ƒd t dd	ƒ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sbJ ‚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   r1   r   r    r3   éüÿÿÿr   r   Fr4   )r$   r   r   r   r-   r   r   r   r%   r%   r%   r'   Útest_AccumBounds_div\   s<    ($$$$*,*$&&  &"   ,"""""$""r9   c                  C   s¸   t ddd} tddƒ}tdtƒ}tt tƒ}|t| ƒ tdt| ƒ tƒksNJ ‚|t| ƒ tt tƒksjJ ‚||  | tt tƒt| d | d ƒ ks˜J ‚|| | tt tƒks´J ‚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s0J ‚ttddƒƒtdtƒksLJ ‚ttt tƒƒtdtƒksjJ ‚ttddƒƒttdƒtdƒƒksŽJ ‚d S )Nr   r   r!   r1   r   r   r2   )r   Úsubsr$   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sBJ ‚t dddd}tddƒ| td| dƒkspJ ‚d S )NÚnnT©Únonnegativer   r   Úi)ÚintegerÚnegative)r   r$   )r?   rB   r%   r%   r'   Útest_AccumBounds_powf—   s    6rE   c                  C   s¼  t ddƒd t ddƒksJ ‚t ddƒd t ddƒks8J ‚t ddƒd t ddƒksTJ ‚t ddƒd t ddƒkspJ ‚t ddƒd dks†J ‚t ddƒtddƒ t ddtdƒ ƒks°J ‚t ddƒtj t dtdƒƒksÒJ ‚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s2J ‚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s0J ‚t ddƒd t dtƒksNJ ‚t ddƒd t tddƒtƒksrJ ‚t ddƒd t t tddƒ ƒksšJ ‚t ddƒd t tddƒtƒks¾J ‚t ddƒd t t tƒksÞJ ‚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s2J ‚t dtƒtj t dtƒksRJ ‚t t dƒd t dtƒksrJ ‚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sHJ ‚t tjdƒt t dtƒkshJ ‚t tddƒtddƒƒt tju sŽJ ‚t dtddƒƒt tju s®J ‚t ddƒt tu sÆJ ‚t ddƒt tju sàJ ‚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sFJ ‚t tddƒdƒt t dtƒksjJ ‚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 s2J ‚t ddƒt  t dtƒksRJ ‚t ddƒt  t t tƒkstJ ‚ttƒtdt ƒ  tt dtd ƒ¡tt t tƒt ddƒƒks¸J ‚d S )Nr   r   r1   r!   r   r   é   r   ÚnegT)rD   r?   r@   rB   )rC   )rC   rA   r    é   r3   é   é	   Fr4   )r$   r   r   r   r-   r   r   r   r   r   r   r   ZZeroÚNaNr   r   r   r=   r   )rG   r?   rB   r%   r%   r'   Útest_AccumBounds_powŸ   sn    *"0.2""$$($ **  $"  &  "$$ " "( "$ÿrL   c                  C   s4  dt tttj ƒ } |  td¡t ddƒks.J ‚|  td¡dksBJ ‚|  td¡}|jrl|jdt dtj ƒfkspJ ‚dt ttd ƒ dksŠJ ‚tjt ddƒ t tdƒd dƒks°J ‚dt ddƒ t tdƒd dƒksÔJ ‚t ddƒt tdƒ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 tdƒd	 tdƒd ƒksVJ ‚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slJ ‚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 dƒt dt	ƒ t dt	ƒksôJ ‚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sPJ ‚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sHJ ‚t dt	ƒt dt	ƒ t dt	ƒkslJ ‚t dt	ƒt t	 dƒ t dt	ƒks’J ‚t d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 t	 dƒ t dtdƒd ƒks
J ‚t dt	ƒt t	 t	ƒ t dt	ƒks0J ‚d S )Nr   r   r!   r    r   r1   r   r3   rI   rJ   )
r$   r   r   r-   r=   Zis_Powr+   r   r   r   )ÚzÚpr%   r%   r'   Útest_AccumBounds_exponentß   sF    "&$*$4,4$$$,..,..,..$&&$&&$.rO   c                      sX  t ddƒdk tjksJ ‚t ddƒdk tjks0J ‚t ddƒdk jdksHJ ‚t ddƒdkjdks`J ‚t ddƒdktjksxJ ‚t ddƒdktjksJ ‚t ddƒdkjdks¨J ‚t ddƒdkjd	ksÀJ ‚t ddƒt dd
ƒk tjksÞJ ‚t ddƒt ddƒk jd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 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   r1   r!   r   ú<z<=ú>z>=r2   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 rR   r#   r%   r&   r%   r'   r(   -  r)   c                      s   t ddƒˆ kS rR   r#   r%   r&   r%   r'   r(   .  r)   c                      s   t ddƒˆ kS rR   r#   r%   r&   r%   r'   r(   /  r)   )r$   r   ÚtrueÚfalseZrel_opr   r   r=   r   r   r   Ú	TypeErrorr%   r%   r&   r'   Útest_comparison_AccumBounds  s.           (rV   c                  C   sä   dt ddƒv tjksJ ‚ttdd„ ƒ dt ddƒv s8J ‚ttdd„ ƒ t t dtƒv tjks`J ‚tt t dƒv tjkszJ ‚tdt ddƒƒtt ddƒdƒ  kr¦dks¬n J ‚dd l} |  dt ddƒt	g¡D ]}t|Ž dksÊJ ‚qÊd 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   rS   r   rU   r   r   Ú	itertoolsÚpermutationsr   )rW   Úpermr%   r%   r'   Útest_contains_AccumBounds2  s    2rZ   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sHJ ‚t ddƒ t ddƒ¡t ddƒkslJ ‚t ddƒ t ddƒ¡t ddƒksJ ‚t ddƒ t ddƒ¡tjks°J ‚ttdd„ ƒ d S )	Nr   r   r   r   r1   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   ZEmptySetr   rU   r%   r%   r%   r'   Útest_intersection_AccumBoundsB  s    $$$$ r]   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sHJ ‚t ddƒ t ddƒ¡t ddƒkslJ ‚t ddƒ t ddƒ¡t ddƒksJ ‚ttdd„ ƒ d S )	Nr   r   r   r   r1   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   rU   r%   r%   r%   r'   Útest_union_AccumBoundsK  s
    $$$$r_   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$   r0   r7   r9   r<   r>   rE   rL   rO   rV   rZ   r]   r_   r%   r%   r%   r'   Ú<module>   s2   0)
@1"	