ó
¡¼™\c           @   s?  d  d l  m Z d  d l m Z m Z m Z m Z m Z d  d l m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z e d d ƒ Z e d ƒ \ Z Z e d ƒ Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d S(   iÿÿÿÿ(   t   SetExpr(   t   Intervalt	   FiniteSett   Intersectiont   ImageSett   Union(   t   Exprt   Sett   expt   logt   cost   Symbolt   Mint   Maxt   St   oot   symbolst   Lambdat   Dummyi    i   s   a, xt   dc          C   sF   t  t d d ƒ ƒ }  t |  j t ƒ s- t ‚ t |  t ƒ sB t ‚ d  S(   Ni    i   (   R    R   t
   isinstancet   setR   t   AssertionErrorR   (   t   se(    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_setexpr   s    c          C   sè   t  t d d ƒ ƒ j t d d ƒ k s- t ‚ t d d t ƒt d d t ƒ}  } d \ }  } xƒ t t g D]u } | t  t |  | ƒ ƒ ƒ } | j } t t | |  ƒ | | ƒ ƒ t	 | |  ƒ | | ƒ ƒ ƒ } | | k sk t ‚ qk Wd  S(   Ni    i   t   at   realt   bi   (   i   i   (
   R    R   R   R   R   t   TrueR   R	   R   R   (   R   R   t   ft   input_set   outputt   expected(    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_scalar_funcs   s    -%	9c           C   sf   t  t d d ƒ ƒ d j t d d ƒ k s1 t ‚ t  t d d ƒ ƒ d j t d d ƒ k sb t ‚ d  S(   Ni    i   i   (   R    R   R   R   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_Add_Mul   s    1c           C   s5   t  t d d ƒ ƒ d j t d d ƒ k s1 t ‚ d  S(   Ni    i   i   (   R    R   R   R   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_Pow"   s    c           C   sK   t  t t d d ƒ ƒ d d ƒ j t t  d ƒ t  d ƒ ƒ k sG t ‚ d  S(   Ni    i   i   i   (   R   R    R   R   R   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_compound&   s    #c           C   s„   t  t d d ƒ ƒ t  t d d ƒ ƒ j t d d ƒ k s@ t ‚ t  t d d ƒ ƒ t  t d d ƒ ƒ j t d d ƒ k s€ t ‚ d  S(   Ni   i   i
   i   i   i   i(   (   R    R   R   R   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_Interval_Interval+   s    ((c           C   s™   t  t d d d ƒ ƒ t  t d d ƒ ƒ j t d d d d ƒ k sI t ‚ t  t d d d ƒ ƒ t  t d d ƒ ƒ j t d d d d d ƒ k s• t ‚ d  S(   Ni   i   i   i   i   i   (   R    R   R   R   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_FiniteSet_FiniteSet2   s    ++c           C   sD   t  t d d ƒ ƒ t  t d d ƒ ƒ j t d d ƒ k s@ t ‚ d  S(   Ni   i   i    i
   i   (   R    R   R   R   R   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_Interval_FiniteSet9   s    (c           C   sZ   t  t d d ƒ ƒ t  t d d ƒ ƒ t  t d d d ƒ ƒ j t d d ƒ k sV t ‚ d  S(	   Ni    i   i   i   i
   i   i   i   (   R    R   R   R   R   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_Many_Sets>   s    %c          C   sS   t  t d d ƒ ƒ }  t  t d d ƒ ƒ } |  | j t d d d ƒ k sO t ‚ d  S(   Ni    i   i   (   R    R   R   R   (   R   R   (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt$   test_same_setexprs_are_not_identicalD   s    c          C   sû  t  t d d ƒ ƒ }  t  t j d d ƒ ƒ } t  t j d d ƒ ƒ } t  t j d d ƒ ƒ } t  t d d ƒ ƒ } t  t j d d ƒ ƒ } t  t j d d ƒ ƒ } t  t j d d ƒ ƒ } t  t d d ƒ ƒ } |  |  t  t d d ƒ ƒ k sô t ‚ |  |  t  t d d ƒ ƒ k st ‚ |  |  t  t d d ƒ ƒ k s>t ‚ |  |  t  t t j d ƒ ƒ k sft ‚ |  d t  t d d ƒ ƒ k s‹t ‚ |  d t  t d d ƒ ƒ k s°t ‚ | | t  t j d d ƒ ƒ k sØt ‚ | | t  t j d d ƒ ƒ k s t ‚ | | t  t j d d ƒ ƒ k s(t ‚ | | t  t j t j d ƒ ƒ k sSt ‚ | | t  t j d d ƒ ƒ k s{t ‚ | | t  t j d d ƒ ƒ k s£t ‚ | | t  t j d d ƒ ƒ k sËt ‚ | | t  t j t j d ƒ ƒ k söt ‚ | |  t  t j d d ƒ ƒ k st ‚ | |  t  t j d d ƒ ƒ k sFt ‚ | |  t  t j d d ƒ ƒ k snt ‚ | |  t  t j t j d ƒ ƒ k s™t ‚ | | t  t j d d ƒ ƒ k sÁt ‚ | | t  t j d d ƒ ƒ k sét ‚ | | t  t j d d ƒ ƒ k st ‚ | | t  t j t j d ƒ ƒ k s<t ‚ | d t  t j d d ƒ ƒ k sdt ‚ | d t  t j d d ƒ ƒ k sŒt ‚ | | t  t j d d ƒ ƒ k s´t ‚ | | t  t j d d ƒ ƒ k sÜt ‚ | | t  t j d d ƒ ƒ k st ‚ | | t  t j t j d ƒ ƒ k s/t ‚ | |  t  t j d d ƒ ƒ k sWt ‚ | |  t  t j d d ƒ ƒ k st ‚ | |  t  t j d d ƒ ƒ k s§t ‚ | |  t  t j t j d ƒ ƒ k sÒt ‚ | | t  t j d d ƒ ƒ k sút ‚ | | t  t j d d ƒ ƒ k s"t ‚ | | t  t j d d ƒ ƒ k sJt ‚ | | t  t j t j d ƒ ƒ k sut ‚ | d t  t j d d ƒ ƒ k st ‚ | d t  t j d d ƒ ƒ k sÅt ‚ | | t  t j d d ƒ ƒ k sít ‚ | | t  t j d d ƒ ƒ k st ‚ | | t  t j d d ƒ ƒ k s=t ‚ | | t  t j t j d ƒ ƒ k sht ‚ | | t  t j d d ƒ ƒ k st ‚ | | t  t j d d ƒ ƒ k s¸t ‚ | | t  t j d d ƒ ƒ k sàt ‚ | | t  t j t j d ƒ ƒ k st ‚ | |  t  t j d d ƒ ƒ k s3t ‚ | |  t  t j d d ƒ ƒ k s[t ‚ | |  t  t j d d ƒ ƒ k sƒt ‚ | |  t  t j t j d ƒ ƒ k s®t ‚ | d t  t j d d ƒ ƒ k sÖt ‚ | d t  t j d d ƒ ƒ k sþt ‚ | | t  t d	 d
 ƒ ƒ k s#	t ‚ | | t  t d d ƒ ƒ k sH	t ‚ | | t  t d d ƒ ƒ k sm	t ‚ | | t  t j t t ƒ ƒ k s–	t ‚ | | t  t j d	 d
 ƒ ƒ k s¾	t ‚ | | t  t j d d ƒ ƒ k sæ	t ‚ | | t  t j d d ƒ ƒ k s
t ‚ | | t  t j t t ƒ ƒ k s7
t ‚ | | t  t j d	 d
 ƒ ƒ k s_
t ‚ | | t  t j d d ƒ ƒ k s‡
t ‚ | | t  t d d ƒ ƒ k s¬
t ‚ | | t  t j t t ƒ ƒ k sÕ
t ‚ | | t  t j d	 d
 ƒ ƒ k sý
t ‚ | | t  t j d d ƒ ƒ k s%t ‚ | | t  t j d d ƒ ƒ k sMt ‚ | | t  t j t t ƒ ƒ k svt ‚ | d t  t d d ƒ ƒ k s›t ‚ | d t  t d d ƒ ƒ k sÀt ‚ t  t d d ƒ ƒ }	 t  t j d d ƒ ƒ }
 t  t j d d ƒ ƒ } |	 |
 t  t j d d ƒ ƒ k s-t ‚ |	 |	 t  t d d ƒ ƒ k sRt ‚ |
 |	 t  t j d d ƒ ƒ k szt ‚ |	 | t  t d d ƒ ƒ k sŸt ‚ |
 | t  t j d d ƒ ƒ k sÇt ‚ |	 |
 t  t j t t ƒ ƒ k sðt ‚ |  |
 t  t j t t ƒ ƒ k st ‚ | d t  t d d ƒ ƒ k s>t ‚ | d t  t d d ƒ ƒ k sct ‚ | |  t  t d d ƒ ƒ k sˆt ‚ | |  t  t d	 d ƒ ƒ k s­t ‚ | |  t  t d	 d
 ƒ ƒ k sÒt ‚ | |  t  t d d ƒ ƒ k s÷t ‚ d  S(   Ni   i   iþÿÿÿi   iýÿÿÿi   iÿÿÿÿi   iüÿÿÿi   iûÿÿÿi   iúÿÿÿi	   i    iøÿÿÿi   iåÿÿÿ(	   R    R   t   Lopent   Ropent   openR   R   t   HalfR   (   t   i12cct   i12lot   i12rot   i12ot   n23cct   n23lot   n23rot   n23ot   n3n2cct   n32cct   n32lot   n32ro(    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_Interval_arithmeticM   s¾    %%%(%%(((+(((+(((+(((+(((((+(((+(((+(((((+(((+(((+((%%%)((()((%)((()%%(%(%())%%%%%c          C   sÜ   t  d ƒ \ }  } } } t |  | ƒ } t | | ƒ } t | | ƒ } t | ƒ } t | ƒ j t t t |  t |  ƒ ƒ | ƒ t t |  t |  ƒ ƒ | ƒ ƒ k s¥ t ‚ t	 | ƒ j t t |  t	 |  ƒ ƒ | ƒ k sØ t ‚ d  S(   Ns   x y z w(
   R   R   R   R    R   R   R   R   R   R
   (   t   xt   yt   zt   wt   set1t   set2t   interR   (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_SetExpr_Intersection¹   s    *c           C   s¸  t  t d d ƒ ƒ t  t d d ƒ ƒ t  t t t ƒ ƒ k sD t ‚ t  t d d ƒ ƒ t  t d d ƒ ƒ t  t t t ƒ ƒ k sˆ t ‚ t  t d d ƒ ƒ t  t d d ƒ ƒ t  t t t d ƒ d ƒ ƒ k s× t ‚ t  t d d ƒ ƒ t  t d d ƒ ƒ t  t t t d ƒ d ƒ ƒ k s&t ‚ t  t d d ƒ ƒ t  t d d ƒ ƒ t  t t d ƒ d t ƒ ƒ k sst ‚ t  t d d ƒ ƒ t  t d d ƒ ƒ t  t t t ƒ ƒ k s·t ‚ d t  t d d ƒ ƒ t  t t t d ƒ t t j t ƒ ƒ ƒ k st ‚ d t  t d d ƒ ƒ t  t t d ƒ d t ƒ ƒ k s?t ‚ d t  t d d ƒ ƒ t  t t t d ƒ d ƒ ƒ k st ‚ d t  t d d ƒ ƒ t  t t d ƒ ƒ k s´t ‚ d  S(	   Niýÿÿÿiþÿÿÿi   i   i   i    i   iÿÿÿÿ(   R    R   R   R   R   R   R-   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_SetExpr_Interval_divÅ   s    DDOOMDJ>@c           C   sF  t  t d d ƒ ƒ d t  t d d ƒ ƒ k s4 t ‚ t  t d d ƒ ƒ d t  t d d ƒ ƒ k sh t ‚ t  t d d ƒ ƒ d t  t d d ƒ ƒ k sœ t ‚ t  t d d ƒ ƒ d t  t d d ƒ ƒ k sÐ t ‚ t  t d d ƒ ƒ d t  t d ƒ ƒ k st ‚ t  t d d ƒ ƒ d	 t  t t j d
 d ƒ ƒ k s<t ‚ t  t d d ƒ ƒ d	 t  t d t ƒ ƒ k spt ‚ t  t d d ƒ ƒ d	 t  t t j d t ƒ ƒ k s«t ‚ t  t d d ƒ ƒ d t  t t t d ƒ t t d ƒ d t ƒ ƒ ƒ k süt ‚ t  t d d	 ƒ ƒ d t  t t d ƒ d t j d ƒ ƒ k sBt ‚ t  t d d	 ƒ ƒ d	 t  t t j d t j d ƒ ƒ k s„t ‚ t  t t d ƒ ƒ d	 t  t j d t ƒ ƒ k s¼t ‚ t  t d	 d ƒ ƒ d	 t  t t j d t ƒ ƒ k s÷t ‚ t  t t j d t j d ƒ ƒ t t  t d ƒ ƒ k s6t ‚ t  t d t j d ƒ ƒ t t  t d ƒ ƒ k snt ‚ t  t t j d d ƒ ƒ t t  t d t ƒ ƒ k s©t ‚ t  t d d ƒ ƒ t t  t d t ƒ ƒ k sÝt ‚ t  t d d ƒ ƒ t t  t t ƒ ƒ k st ‚ t  t d d ƒ ƒ t t  t d t ƒ ƒ k sBt ‚ t  t t j d d ƒ ƒ t t  t d t ƒ ƒ k s}t ‚ t  t t j d t j d ƒ ƒ t t  t d ƒ ƒ k s¾t ‚ t  t d t j d ƒ ƒ t t  t t t ƒ ƒ k sût ‚ t  t d d	 ƒ ƒ t t  t t t ƒ ƒ k s0t ‚ t  t d	 d ƒ ƒ t t  t t t ƒ ƒ k set ‚ t  t d	 t j d ƒ ƒ t t  t t t ƒ ƒ k s¢t ‚ t  t t j d t j d ƒ ƒ t t  t d ƒ ƒ k sât ‚ t  t t j d d ƒ ƒ t t  t d t ƒ ƒ k st ‚ t  t t d ƒ d d ƒ ƒ t t  t d t ƒ ƒ k s]t ‚ t  t d d ƒ ƒ t t  t t t ƒ ƒ k s’t ‚ t  t d t j d ƒ ƒ t t  t t t ƒ ƒ k sÎt ‚ t  t d d ƒ ƒ t t  t t t ƒ ƒ k st ‚ t  t d	 t j d ƒ ƒ t t  t t t ƒ ƒ k s?t ‚ t  t d d ƒ ƒ t	 j
 t  t t t t t	 ƒ t d d ƒ ƒ ƒ ƒ sŒt ‚ t  t d d ƒ ƒ t t  t d ƒ ƒ k s¾t ‚ t  t d d ƒ ƒ t t  t d t ƒ ƒ k sót ‚ t  t d d ƒ ƒ t j
 t  t t t t t ƒ t d d ƒ ƒ ƒ ƒ sBt ‚ d  S(   Ni    i   i   iÿÿÿÿi   i   i   i   iþÿÿÿi   iýÿÿÿi   i	   (   R    R   R   R   R   t   OneR   R   R,   R;   t   dummy_eqR   R   t   _d(    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   test_SetExpr_Interval_powê   sH    44441;4;QFB8;?8;414;A=55=@<?5<5<M25N((   t   sympy.sets.setexprR    t
   sympy.setsR   R   R   R   R   t   sympyR   R   R   R	   R
   R   R   R   R   R   R   R   R   t   IR   R;   RF   R   R!   R"   R#   R$   R%   R&   R'   R(   R)   R:   RB   RC   RG   (    (    (    s<   lib/python2.7/site-packages/sympy/sets/tests/test_setexpr.pyt   <module>   s&   (X												l		%