U
    ZÊ¹jJ#  ã                   @   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/bwave/python/venv/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