
    sgJ#                     F    d dl mZ d dlmZ d Zd Zd Zd Zd Zd Z	d	 Z
y
)    interval)raisesc                     t        dd      t        ddd      k(  dk(  sJ t        dd      t        ddd      k(  dk(  sJ t        dd      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	      t        dd	      k7  dk(  sJ t        dd      t        d	d      k7  d
k(  sJ t        dd      t        dd      k7  dk(  sJ t        ddd      t        dd      k7  dk(  sJ t        ddd       t        dd      k7  dk(  sJ t        dd      dk7  dk(  sJ t        dd      dk(  dk(  sJ t        ddd      t        dd      k(  dk(  sJ t        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 sJ | |v sJ t        dt        d            |v sJ t        t        d       d      |v sJ t        dd      |v sJ t        ddd       t        dd	      k(  dk(  sJ t        t        d        y )N   Tis_validTTFTFTN      ?   NTr      FT)NN      
   ig333333g333333@infgd~Qgd~QJc                      t        ddd      S )Nr   r   r   r        f/var/www/html/venv/lib/python3.12/site-packages/sympy/plotting/intervalmath/tests/test_intervalmath.py<lambda>ztest_interval.<locals>.<lambda>(   s    x1a0 r   )r   widthfloatr   
ValueError)interinterbs     r   test_intervalr$      s:   QNhq!d;;LLLQNhq!e<<NNNQNhq!d;;LLLQA.<???QNhq!n,>>>QNhq!n,===QNhq!n,>>>QNhq!n,===QNhr2..<???A&(2r*::}M M MQD)Xb!_<MMMQNaM111QNaL000QE*hq!n<NNNQD)Xa^;LLLROEUOxA.<???;;"::;;::Aq>U"""B?%'''euU|mU5\2F::F??AuU|$...U5\M1%///E4 F***	"b5	))Xa^;N N N
:01r   c                     t        dd      t        dd      z   t        dd      k(  dk(  sJ dt        dd      z   t        dd      k(  dk(  sJ t        dd      dz   t        dd      k(  dk(  sJ dt        dt        d            z   t        dt        d            k(  } | dk(  sJ dt        ddd	      z   }|j                  du sJ dt        ddd 	      z   }|j                  J t        ddd	      t        ddd 	      z   }|j                  du sJ t        dd      t        d
dd 	      z   }|j                  J t        ddd	      dz   }|j                  du sJ y )Nr   r   r   r   r
   r   r   Fr   r   r   r    r	   )compareas     r   test_interval_addr)   +   sk   QNXa^+x1~=,NNNA(1a.0\AAAQNQ(1a.0\AAA8AuU|,,E%L0IIGl"""	HQE**A::	HQD))A::A&!Q)FFA::A"a$77A::A&*A::r   c                     t        dd      t        dd      z
  t        dd      k(  dk(  sJ t        dd      dz
  t        dd      k(  dk(  sJ dt        dd      z
  t        dd      k(  dk(  sJ dt        ddd	      z
  } | j                  du sJ t        dd
d 	      dz
  } | j                  J t        ddd	      t        dd      z
  } | j                  du sJ t        ddd 	      t        dd      z
  } | j                  J y )Nr   r   r   r
   r   r   Fr   r   r   r   r	   r(   s    r   test_interval_subr.   =   s   QNXa^+xA><OOOQNQ(1a.0\AAAA(2q/1lBBB	HQE**A::A%)A::A&!Q7A::A%A6A::r   c                     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(  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      t        dd      k  dk(  sJ t        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k  d	k(  sJ t        dd      t        dd      kD  dk(  sJ t        dd      t        dd      kD  dk(  sJ t        dd      t        dd      kD  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k7  dk(  sJ t        dd      dk7  dk(  sJ t        dd      dkD  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kD  dk(  sJ t        dd      dkD  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 dt        dd      kD  dk(  sJ t        ddd      t        ddd       k  } | dk(  sJ t        ddd       t        ddd      k  } | dk(  sJ t        ddd       t        ddd       k  } | dk(  sJ t        ddd      t        ddd       kD  } | dk(  sJ t        ddd       t        ddd      kD  } | dk(  sJ t        ddd       t        ddd       kD  } | dk(  sJ y )Nr   r   r   r   r
   r   r   r   r   r      Fr   )FF)FNr      g@r   g333333?r   r   r   r   r-   s    r   test_interval_inequalityr2   K   sr   QNXa^+<<<QNXa^+<<<QNXb!_,>>>QNhq!n,===QNhsA..<???QNhq!n,===QNhq#..=@@@A&(2q/9nM M MQD)Xb!_<NNNQNc!l222QNaL000QNaM111QNXa^+<<<QNXa^+<<<QNXc1---???ROq \111ROq ]222ROq \111ROq \111QNQ<///QNQ=000QNQ<///QNQ<///QNQ=000QNhq!n,===QNhq#..<???QNhq!n,>>>QNaL000QNc!l222QNaM111A<///Q'(1a$*GGAQ&!Q)GGAQ&!Q)FFAQ'(2rD*IIAQ&"b5)IIAQ&"b4)HHAr   c                  l   t        dd      t        dd      z  t        dd      k(  dk(  sJ t        dd      t        dd      z  t        dd      k(  } | dk(  sJ t        dd      t        d	d
      z  t        d	d      k(  } | dk(  sJ t        dd
      dz  t        dd      k(  dk(  sJ d
t        dd      z  t        dd      k(  dk(  sJ d
t        ddd      z  } | j                  du sJ d
t        ddd       z  } | j                  J t        ddd      t        ddd       z  } | j                  du sJ y )Nr   r   r   r   2   r
   r   ir   r   r0   r   Fr   r,   r-   s    r   test_interval_mulr5   |   sR   A!R(HQO;M M MQ(1b/)Xc2->>AQ(2q/)Xb!_<AQNQ(1a.0\AAAQ8B?2|CCC	HQE**A::	HQD))A::A&!Q)FFA::r   c                  X   t        ddd      dz  } | t        t        d       t        d      d      k(  sJ t        ddd       dz  } | t        t        d       t        d      d       k(  sJ dt        ddd       z  } | t        t        d       t        d      d       k(  sJ t        dd      dz  }|j                  du sJ t        dd      t        d	d      z  }|j                  J t        dd      t        dd      z  }|j                  J t        d	d      t        d	d      z  }|j                  J t        d	d      t        dd      z  t        d
d      k(  }|dk(  sJ t        dd      t        dd      z  t        dd      k(  }|dk(  sJ t        d	d      t        dd      z  t        d
d      k(  }|dk(  sJ t        dd      t        dd      z  t        dd      k(  }|dk(  sJ t        dd      t        dd      z  t        dd      k(  }|dk(  sJ t        dd      t        dd      z  t        dd      k(  }|dk(  sJ t        d	d      t        dd      z  t        d
d      k(  }|dk(  sJ t        dd      t        dd      z  t        dd      k(  }|dk(  sJ t        d	d      t        dd      z  t        dd      k(  }|dk(  sJ t        dd      t        dd      z  t        d
d      k(  }|dk(  sJ t        d	d      t        dd      z  t        dd      k(  }|dk(  sJ t        dd      t        dd      z  t        dd      k(  }|dk(  sJ t        dd      t        dd      z  t        d
d      k(  }|dk(  sJ t        dd      t        dd      z  t        dd      k(  }|dk(  sJ t        d	d      t        dd      z  t        dd      k(  }|dk(  sJ t        dd      t        dd      z  t        dd      k(  }|dk(  sJ t        ddd      dz  }|j                  du sJ y )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(   s     r   test_interval_divr;      sr   
1a%
(1
,C(E%L=%,GGGG
1a$
'!
+C(E%L=%,FFFF
hq!d+
+C(E%L=%,FFFFAA::a8B?*A::A!Q'A::Q(2q/)A::Q(3**htS.AAAA#q))Xc3-??AQ(3**htS.AAAua 00HT54IIAa8C++xS/AAAa8C++xS/AAATXc1--$1EEATXc1--$1EEAQ(2t,,s0CCAA"d++xc/BBAQ(2t,,c0BBAuT 22huc6JJAa8B--$1FFAa8B--$1FFATXb$//8D#3FFATXb$//8D#3FFAQ'!+A::r   c                      t        t        dd             t        t        ddd             t        t        dd             t        t        dd             t        t        dd             y	)
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+   r7   r   r9   r8   N)hashr   r   r   r   test_hashabler>      sP     	!Q!Q	&'"d	"d	$	r   N)sympy.plotting.intervalmathr   sympy.testing.pytestr   r$   r)   r.   r2   r5   r;   r>   r   r   r   <module>rA      s1    0 '#2L$.b,4lr   