o
    GZŽhJ#  ã                   @   sT   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S )é    ©Úinterval)Úraisesc                  C   sü  t ddƒt ddddkdksJ ‚t ddƒt ddddkdks J ‚t ddƒt ddd dkdks0J ‚t ddƒt dd	ƒkd
ks>J ‚t ddƒt d	dƒkdksLJ ‚t ddƒt dd	ƒkd
ksZJ ‚t dd	ƒt dd	ƒkdkshJ ‚t ddƒt d	dƒkd
ksvJ ‚t ddƒt ddƒkdks„J ‚t ddddt ddƒkdks”J ‚t ddd dt ddƒkdks¤J ‚t ddƒdkdks¯J ‚t ddƒdkdksºJ ‚t ddddt ddƒkdksÊJ ‚t ddd dt ddƒkdksÚJ ‚t ddƒ} t | ƒt ddƒkdksìJ ‚| jdksóJ ‚d| v sùJ ‚d| v sÿJ ‚d| v sJ ‚t ddƒ| v sJ ‚t dd	ƒ| vsJ ‚d| vs!J ‚d| vs(J ‚t tdƒ tdƒƒ}d| v s9J ‚| |v s@J ‚t dtdƒƒ|v sLJ ‚t tdƒ dƒ|v sYJ ‚t ddƒ|v scJ ‚t dddd t dd	ƒkdksuJ ‚ttdd„ ƒ d S )Né   T©Úis_valid©TTF©TF©TNç      ø?é   ©NTr   é   ©FTéûÿÿÿéýÿÿÿ)NNé   é   é
   iúÿÿÿg333333Àg333333@Úinfgšd~ÅQÊgšd~ÅQJéÿÿÿÿéþÿÿÿc                   S   s   t dddƒS )Nr   r   r   r   © r   r   úb/var/www/auris/lib/python3.10/site-packages/sympy/plotting/intervalmath/tests/test_intervalmath.pyÚ<lambda>(   s    ztest_interval.<locals>.<lambda>)r   ÚwidthÚfloatr   Ú
ValueError)ÚinterZinterbr   r   r   Útest_interval   sF      ÿ   

ÿr   c                  C   sF  t ddƒt ddƒ t ddƒkdksJ ‚dt ddƒ t ddƒkdks#J ‚t ddƒd t ddƒkdks3J ‚dt dtdƒƒ t dtdƒƒk} | dksIJ ‚dt dddd	 }|jdu sYJ ‚dt ddd d	 }|jd u siJ ‚t dddd	t ddd d	 }|jdu s~J ‚t ddƒt d
dd d	 }|jd u s‘J ‚t dddd	d }|jdu s¡J ‚d S )Nr   r   r   r   r   r   r   Fr   r   ©r   r   r   )ÚcompareÚar   r   r   Útest_interval_add+   s   &   r#   c                  C   sö   t ddƒt ddƒ t ddƒkdksJ ‚t ddƒd t ddƒkdks#J ‚dt ddƒ t ddƒkdks3J ‚dt dddd	 } | jdu sCJ ‚t dd
d d	d } | jd u sSJ ‚t dddd	t ddƒ } | jdu sfJ ‚t ddd d	t ddƒ } | jd u syJ ‚d S )Nr   r   r   éüÿÿÿr   r   r   Fr   r   r   ©r   r   ©r"   r   r   r   Útest_interval_sub=   s   &  r'   c                  C   s$  t ddƒt ddƒk dksJ ‚t ddƒt ddƒk dksJ ‚t ddƒt ddƒk d	ks*J ‚t ddƒt ddƒkdks8J ‚t ddƒt d
dƒkdksFJ ‚t ddƒt ddƒkdksTJ ‚t ddƒt dd
ƒkd	ksbJ ‚t ddddt ddƒkdksrJ ‚t ddd dt ddƒkdks‚J ‚t ddƒd
kdksJ ‚t ddƒdkdks˜J ‚t ddƒdkd	ks£J ‚t ddƒt ddƒkdks±J ‚t ddƒt ddƒkdks¿J ‚t ddƒt ddƒkd	ksÍJ ‚t ddƒdkdksØJ ‚t ddƒdkd	ksãJ ‚t ddƒdkdksîJ ‚t ddƒdkdksùJ ‚t ddƒdkdksJ ‚t ddƒdk d	ksJ ‚t ddƒdk dksJ ‚t ddƒdkdks)J ‚t ddƒdkd	ks5J ‚t ddƒt ddƒkdksDJ ‚t ddƒt dd
ƒkdksSJ ‚t ddƒt ddƒkd	ksbJ ‚t ddƒdkdksnJ ‚t ddƒdkdkszJ ‚t ddƒdkd	ks†J ‚dt ddƒkdks’J ‚t ddddt ddd dk } | dks§J ‚t ddd dt ddddk } | dks¼J ‚t ddd dt ddd dk } | dksÑJ ‚t ddddt ddd dk} | dksæJ ‚t ddd dt ddddk} | dksûJ ‚t ddd dt ddd dk} | dksJ ‚d S )Nr   r   r   r   r   r   r   r   r   r   é   Fr   )FF)FNr   é   gÍÌÌÌÌÌ@r   g333333ó?r	   r
   r   r   r&   r   r   r   Útest_interval_inequalityK   sX   ÿ r*   c                  C   s(  t ddƒt ddƒ t ddƒkdksJ ‚t ddƒt ddƒ t ddƒk} | dks(J ‚t ddƒt d	d
ƒ t d	dƒk} | dks=J ‚t dd
ƒd t ddƒkdksMJ ‚d
t ddƒ t ddƒkdks]J ‚d
t dddd } | jdu smJ ‚d
t ddd d } | jd u s}J ‚t ddddt ddd d } | jdu s’J ‚d S )Nr   r   r   r   é2   r   r   iöÿÿÿr   r   r(   r   Fr   r%   r&   r   r   r   Útest_interval_mul|   s   ÿ  r,   c                  C   sô  t ddddd } | t tdƒ tdƒddksJ ‚t ddd dd } | t tdƒ tdƒd dks2J ‚dt ddd d } | t tdƒ tdƒd dksKJ ‚t ddƒd }|jdu sYJ ‚t ddƒt d	dƒ }|jd u sjJ ‚t ddƒt ddƒ }|jd u s{J ‚t d	dƒt d	dƒ }|jd u sŒJ ‚t d	dƒt ddƒ t d
dƒk}|dks¡J ‚t ddƒt ddƒ t ddƒk}|dks¶J ‚t d	dƒt ddƒ t d
dƒk}|dksËJ ‚t ddƒt ddƒ t ddƒk}|dksàJ ‚t ddƒt ddƒ t ddƒk}|dksõJ ‚t ddƒt ddƒ t ddƒk}|dksJ ‚t d	dƒt ddƒ t d
dƒk}|dks!J ‚t ddƒt ddƒ t ddƒk}|dks7J ‚t d	dƒt ddƒ t ddƒk}|dksMJ ‚t ddƒt ddƒ t d
dƒk}|dkscJ ‚t d	dƒt ddƒ t ddƒk}|dksyJ ‚t ddƒt ddƒ t ddƒk}|dksJ ‚t ddƒt ddƒ t d
dƒk}|dks¥J ‚t ddƒt ddƒ t ddƒk}|dks»J ‚t d	dƒt ddƒ t ddƒk}|dksÑJ ‚t ddƒt ddƒ t ddƒk}|dksçJ ‚t ddddd }|jdu søJ ‚d S )Nr   r   Fr   r   r   r   g      à?r   g       Àg      @r   g        g       @ç      à¿g      Ð¿g      ð¿r   ç       @r$   g       Àr   g      Àg      À?g      ð?ç      Ð?r   r   r    )Údivr"   r   r   r   Útest_interval_div’   s`      r1   c                   C   sN   t tddƒƒ t tddddƒ t tddƒƒ t tddƒƒ t tddƒƒ d	S )
a  
    test that interval objects are hashable.
    this is required in order to be able to put them into the cache, which
    appears to be necessary for plotting in py3k. For details, see:

    https://github.com/sympy/sympy/pull/2101
    https://github.com/sympy/sympy/issues/6533
    r   Tr   r$   r-   r   r/   r.   N)Úhashr   r   r   r   r   Útest_hashableÈ   s
   	r3   N)Zsympy.plotting.intervalmathr   Zsympy.testing.pytestr   r   r#   r'   r*   r,   r1   r3   r   r   r   r   Ú<module>   s    &16