U
    ˜9%eJ#  ã                   @   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 t‚t ddƒt ddddkdks@t‚t ddƒt ddd dkdks`t‚t ddƒt dd	ƒkd
ks|t‚t ddƒt d	dƒkdks˜t‚t ddƒt dd	ƒkd
ks´t‚t dd	ƒt dd	ƒkdksÐt‚t ddƒt d	dƒkd
ksìt‚t ddƒt ddƒkdks
t‚t ddddt ddƒkdks,t‚t ddd dt ddƒkdksNt‚t ddƒdkdksft‚t ddƒdkdks~t‚t ddddt ddƒkdks t‚t ddd dt ddƒkdksÂt‚t ddƒ} t | ƒt ddƒkdksèt‚| jdksøt‚d| kst‚d| kst‚d| ks"t‚t ddƒ| ks6t‚t dd	ƒ| ksJt‚d| ksXt‚d| ksft‚t tdƒ tdƒƒ}d| ksˆt‚| |ks–t‚t dtdƒƒ|ks®t‚t tdƒ dƒ|ksÈt‚t ddƒ|ksÜt‚t dddd t dd	ƒkdks t‚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   úr/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/plotting/intervalmath/tests/test_intervalmath.pyÚ<lambda>(   ó    ztest_interval.<locals>.<lambda>)r   ÚAssertionErrorÚwidthÚfloatr   Ú
ValueError)ZinterZinterbr   r   r   Útest_interval   sJ        ÿ
"""
 ÿ
r    c                  C   sJ  t ddƒt ddƒ t ddƒkdks&t‚dt ddƒ t ddƒkdksFt‚t ddƒd t ddƒkdksft‚dt dtdƒƒ t dtdƒƒk} | dks’t‚dt dddd	 }|jdks²t‚dt ddd d	 }|jd ksÒt‚t dddd	t ddd d	 }|jdksüt‚t ddƒt d
dd d	 }|jd ks$t‚t dddd	d }|jdksFt‚d S )Nr   r   r   r   r   r   r   Fr   r   )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&t‚t ddƒd t ddƒkdksFt‚dt ddƒ t ddƒkdksft‚dt dddd	 } | jdks†t‚t dd
d d	d } | jd ks¦t‚t dddd	t ddƒ } | jdksÌt‚t ddd d	t ddƒ } | jd ksòt‚d S )Nr   r   r   éüÿÿÿr   r   r   Fr   r   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t‚t ddƒt ddƒk dks8t‚t ddƒt ddƒk d	ksTt‚t ddƒt ddƒkdkspt‚t ddƒt d
dƒkdksŒt‚t ddƒt ddƒkdks¨t‚t ddƒt dd
ƒkd	ksÄt‚t ddddt ddƒkdksät‚t ddd dt ddƒkdkst‚t ddƒd
kdkst‚t ddƒdkdks6t‚t ddƒdkd	ksNt‚t ddƒt ddƒkdkslt‚t ddƒt ddƒkdksŠt‚t ddƒt ddƒkd	ks¨t‚t ddƒdkdksÀt‚t ddƒdkd	ksØt‚t ddƒdkdksðt‚t ddƒdkdkst‚t ddƒdkdks t‚t ddƒdk d	ks8t‚t ddƒdk dksPt‚t ddƒdkdksht‚t ddƒdkd	ks€t‚t ddƒt ddƒkdksžt‚t ddƒt dd
ƒkdks¼t‚t ddƒt ddƒkd	ksÚt‚t ddƒdkdksòt‚t ddƒdkdks
t‚t ddƒdkd	ks"t‚dt ddƒkdks:t‚t ddddt ddd dk } | dksdt‚t ddd dt ddddk } | dksŽt‚t ddd dt ddd dk } | dks¸t‚t ddddt ddd dk} | dksât‚t ddd dt ddddk} | dkst‚t ddd dt ddd dk} | dks6t‚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   r   Útest_interval_inequalityK   sZ     ÿ"r*   c                  C   s*  t ddƒt ddƒ t ddƒkdks&t‚t ddƒt ddƒ t ddƒk} | dksPt‚t ddƒt d	d
ƒ t d	dƒk} | dkszt‚t dd
ƒd t ddƒkdksšt‚d
t ddƒ t ddƒkdksºt‚d
t dddd } | jdksÚt‚d
t ddd d } | jd ksút‚t ddddt ddd d } | jdks&t‚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s2t‚t ddd dd } | t tdƒ tdƒd dksdt‚dt ddd d } | t tdƒ tdƒd dks–t‚t ddƒd }|jdks²t‚t ddƒt d	dƒ }|jd ksÔt‚t ddƒt ddƒ }|jd ksöt‚t d	dƒt d	dƒ }|jd kst‚t d	dƒt ddƒ t d
dƒk}|dksFt‚t ddƒt ddƒ t ddƒk}|dksrt‚t d	dƒt ddƒ t d
dƒk}|dksžt‚t ddƒt ddƒ t ddƒk}|dksÊt‚t ddƒt ddƒ t ddƒk}|dksöt‚t ddƒt ddƒ t ddƒk}|dks"t‚t d	dƒt ddƒ t d
dƒk}|dksNt‚t ddƒt ddƒ t ddƒk}|dkszt‚t d	dƒt ddƒ t ddƒk}|dks¦t‚t ddƒt ddƒ t d
dƒk}|dksÒt‚t d	dƒt ddƒ t ddƒk}|dksþt‚t ddƒt ddƒ t ddƒk}|dks*t‚t ddƒt ddƒ t d
dƒk}|dksVt‚t ddƒt ddƒ t ddƒk}|dks‚t‚t d	dƒt ddƒ t ddƒk}|dks®t‚t ddƒt ddƒ t ddƒk}|dksÚt‚t ddddd }|jdksüt‚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   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