ó
¡¼™\c        	   @   s  d  d l  m Z d  d l m Z d  d l m Z m Z m Z d  d l m	 Z	 d  d l
 m Z m Z d  d l m Z d  d l m Z m Z d  d l m Z d  d	 l m Z m Z m Z d  d
 l 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' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< m= Z= d  d l> m? Z? m@ Z@ mA ZA d  d lB mC ZC d  d lD mE ZE e d ƒ \ ZF ZG ZH ZI e d ƒ \	 ZJ ZK ZL ZM ZN ZO ZP ZQ ZR d „  ZS d „  ZT d „  ZU d „  ZV d „  ZW d „  ZX d „  ZY d „  ZZ d „  Z[ d „  Z\ d „  Z] d „  Z^ d „  Z_ d „  Z` d „  Za d  „  Zb d! „  Zc d" „  Zd d# „  Ze d$ „  Zf d% „  Zg d& „  Zh d' „  Zi d( „  Zj d) „  Zk d* „  Zl d+ „  Zm d, „  Zn d- „  Zo d. „  Zp d/ „  Zq d0 „  Zr d1 „  Zs d2 „  Zt d3 „  Zu d4 „  Zv e@ d5 „  ƒ Zw d6 „  Zx d7 „  Zy d8 „  Zz d9 „  Z{ d: „  Z| d; „  Z} d< „  Z~ d= „  Z d> „  Z€ d? „  Z d@ „  Z‚ dA „  Zƒ dB „  Z„ dC „  Z… dD „  Z† dE „  Z‡ eA dF „  ƒ Zˆ dG „  Z‰ dH S(I   iÿÿÿÿ(   t   Q(   t   oo(   t   Equalityt   Eqt   Ne(   t   S(   t   Dummyt   symbols(   t	   Piecewise(   t   Maxt   Min(   t   sin(   t   EmptySett   Intervalt   Union(   t   simplify(#   t   Andt   Booleant
   Equivalentt   ITEt   Impliest   Nandt   Nort   Nott   Ort   POSformt   SOPformt   Xort   Xnort	   conjunctst	   disjunctst   distribute_or_over_andt   distribute_and_over_ort   eliminate_implicationst   is_nnft   is_cnft   is_dnft   simplify_logict   to_nnft   to_cnft   to_dnft   to_int_reprt   bool_mapt   truet   falset   BooleanAtomt
   is_literalt   term_to_integert   integer_to_termt   truth_tablet
   as_Boolean(   t   raisest   XFAILt   slow(   t   cartes(   t   combinationss   A:Ds   a:e w:zc           C   sä   t  t @t t  t ƒ k s t ‚ t  t Bt t  t ƒ k s> t ‚ t  t @t Bt t t  t ƒ t ƒ k sj t ‚ t  t ?t t  t ƒ k s‰ t ‚ t  t >t t t  ƒ k s¨ t ‚ t  t t  ƒ k sÁ t ‚ t  t At t  t ƒ k sà t ‚ d S(   s)   Test that |, & are overloaded as expectedN(	   t   At   BR   t   AssertionErrorR   t   CR   R   R   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_overloading   s    ,c          C   s1  t  ƒ  t k s t ‚ t  t ƒ t k s- t ‚ t  t ƒ t k sE t ‚ t  t ƒ t k s] t ‚ t  t t ƒ t k sx t ‚ t  t t ƒ t k s“ t ‚ t  t t ƒ t k s® t ‚ t  t t ƒ t k sÉ t ‚ t  t t ƒ t k sä t ‚ t  t t t ƒ t k st ‚ t  t t t ƒ t k s t ‚ t  t t t ƒ t k s>t ‚ t  d t ƒ t k sYt ‚ t t d „  ƒ t t d „  ƒ t  t d k  t d k ƒ t k s t ‚ t d k }  t  |  |  j	 ƒ |  j	 k sÍt ‚ t t
 k t
 t k  t t
 k t
 t k f \ } } } } t  | | | | ƒ t  | | ƒ k s-t ‚ d  S(   Ni   c           S   s   t  d t ƒ S(   Ni   (   R   R8   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   <lambda>7   t    c           S   s   t  t d k  t ƒ S(   Ni   (   R   R8   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   8   R>   (   R   R+   R:   R8   t   Truet   FalseR,   R3   t	   TypeErrort	   canonicalR9   (   t   et   gt   lt   get   le(    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_And)   s(    '!6c          C   s.  t  ƒ  t k s t ‚ t  t ƒ t k s- t ‚ t  t ƒ t k sE t ‚ t  t ƒ t k s] t ‚ t  t t ƒ t k sx t ‚ t  t t ƒ t k s“ t ‚ t  t t ƒ t k s® t ‚ t  t t ƒ t k sÉ t ‚ t  t t ƒ t k sä t ‚ t  t t t ƒ t k st ‚ t  t t t ƒ t k s t ‚ t  t t t ƒ t k s>t ‚ t  d t ƒ t k sYt ‚ t t d „  ƒ t t d „  ƒ t  t d k  t d k ƒ t k s t ‚ t d k }  t  |  |  j	 ƒ |  k sÊt ‚ t t
 k t
 t k  t t
 k t
 t k f \ } } } } t  | | | | ƒ t  | | ƒ k s*t ‚ d  S(   Ni   c           S   s   t  d t ƒ S(   Ni   (   R   R8   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   N   R>   c           S   s   t  t d k  t ƒ S(   Ni   (   R   R8   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   O   R>   (   R   R,   R:   R8   R?   R+   R@   R3   RA   RB   R9   (   RC   RD   RE   RF   RG   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_Or@   s(    '6c          C   sñ  t  ƒ  t k s t ‚ t  t ƒ t k s- t ‚ t  t t ƒ t k sH t ‚ t  t t t ƒ t k sf t ‚ t  t t t t t ƒ t k sŠ t ‚ t  t t t t t ƒ t  t t ƒ k s¸ t ‚ t  t ƒ t k sÐ t ‚ t  t ƒ t k sè t ‚ t  t t ƒ t k st ‚ t  t t ƒ t k st ‚ t  t t ƒ t k s9t ‚ t  t t ƒ t k sUt ‚ t  t t ƒ t k spt ‚ t  t t t ƒ t k sŽt ‚ t  t t t ƒ t k s­t ‚ t  t t t ƒ t k sËt ‚ t t  t t ƒ t  ƒ sét ‚ t  t t t  t	 t
 ƒ ƒ t  t t t	 t
 ƒ k st ‚ t  t t t  t t	 ƒ ƒ t  t t	 ƒ k sOt ‚ t  t d k  t d k t ƒ t  d d t ƒ k o–t  d d t ƒ k n s¡t ‚ t d k }  t  |  |  j ƒ t  d d ƒ k oât  d d ƒ k n sít ‚ d  S(   Ni   i    (   R   R,   R:   R8   R?   R+   R@   R9   t
   isinstanceR;   t   DRB   (   RC   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_XorW   s,    $.60Rc           C   sŒ   t  t d „  ƒ t t ƒ t k s( t ‚ t t ƒ t k s@ t ‚ t d ƒ t k sX t ‚ t d ƒ t k sp t ‚ t d ƒ t k sˆ t ‚ d  S(   Nc           S   s   t  t t ƒ S(   N(   R   R?   R@   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   q   R>   i    i   i   (   R3   RA   R   R?   R,   R:   R@   R+   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_Notp   s    c           C   sE  t  ƒ  t k s t ‚ t  t ƒ t k s. t ‚ t  t ƒ t k sF t ‚ t  t ƒ t k s^ t ‚ t  t t ƒ t k sy t ‚ t  t t ƒ t k s” t ‚ t  t t ƒ t k s¯ t ‚ t  t t ƒ t k sË t ‚ t  t t ƒ t k sæ t ‚ t  t t t ƒ t k st ‚ t  t t t ƒ t k s#t ‚ t  t t t ƒ t k sAt ‚ d  S(   N(   R   R,   R:   R8   R?   R@   R+   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt	   test_Nandy   s    c           C   sD  t  ƒ  t k s t ‚ t  t ƒ t k s. t ‚ t  t ƒ t k sF t ‚ t  t ƒ t k s^ t ‚ t  t t ƒ t k sy t ‚ t  t t ƒ t k s” t ‚ t  t t ƒ t k s¯ t ‚ t  t t ƒ t k sÊ t ‚ t  t t ƒ t k sæ t ‚ t  t t t ƒ t k st ‚ t  t t t ƒ t k s"t ‚ t  t t t ƒ t k s@t ‚ d  S(   N(   R   R+   R:   R8   R?   R,   R@   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_Norˆ   s    c           C   s£  t  ƒ  t k s t ‚ t  t ƒ t k s. t ‚ t  t t ƒ t k sI t ‚ t  t t t ƒ t k sg t ‚ t  t t t t t ƒ t k sŒ t ‚ t  t ƒ t k s¤ t ‚ t  t ƒ t k s¼ t ‚ t  t t ƒ t k s× t ‚ t  t t ƒ t k sò t ‚ t  t t ƒ t k st ‚ t  t t ƒ t k s(t ‚ t  t t ƒ t k sDt ‚ t  t t t ƒ t k sbt ‚ t  t t t ƒ t k s€t ‚ t  t t t ƒ t k sŸt ‚ d  S(   N(   R   R+   R:   R8   R?   R,   R@   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt	   test_Xnor—   s    %c           C   sQ  t  t d „  ƒ t t t ƒ t k s+ t ‚ t t t ƒ t k sF t ‚ t t t ƒ t k sa t ‚ t t t ƒ t k s| t ‚ t d t ƒ t k s— t ‚ t d d ƒ t k s² t ‚ t d d ƒ t k sÍ t ‚ t t	 ?t	 t >k sç t ‚ t d k  t d k ?t d k k st ‚ t d k  t
 d ƒ t k ?t k s7t ‚ t t ?t k sMt ‚ d  S(   Nc           S   s   t  t t t ƒ S(   N(   R   R8   R9   R;   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   ª   R>   i    i   (   R3   t
   ValueErrorR   R?   R+   R:   R@   R,   R8   R9   R   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_Implies©   s    ((c           C   sÝ  t  t t ƒ t  t t ƒ k o5 t  t t t ƒ k n s@ t ‚ t  ƒ  t k sU t ‚ t  t t ƒ t  t ƒ k o{ t k n s† t ‚ t  t t ƒ t  t t ƒ k o¯ t k n sº t ‚ t  t t ƒ t  t t ƒ k oã t k n sî t ‚ t  t t ƒ t k s	t ‚ t  t t ƒ t t ƒ k s*t ‚ t  t t t ƒ t t @k sLt ‚ t  t t t ƒ t t @k spt ‚ t  d t ƒ t k s‹t ‚ t  d t ƒ t t ƒ k s¬t ‚ t  t t  t t	 ƒ ƒ t  t  t t ƒ t	 ƒ k sât ‚ t  t d k  t d k ƒ t k s	t ‚ t  t d k  t d k d ƒ t k s3t ‚ t  t d k  t d k d ƒ t k s]t ‚ t  t d k  t
 d ƒ t k ƒ t  d d ƒ k o¡t  d d ƒ k n s¬t ‚ t  t t t ƒ t t t ƒ ƒ t k sÙt ‚ d  S(   Ni   i    (   R   R8   R9   R:   R+   R?   R@   R,   R   R;   R   R   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_Equivalent¸   s"    @144!"$!6'**Oc           C   s
  t  t t t ƒ ƒ j t t  t ƒ t  t ƒ ƒ ƒ t k s? t ‚ t t t ƒ j t t ?t t ?@ƒ t k so t ‚ t t Bt t B@j t t @t t @Bƒ t k s¦ t ‚ t t ?j t t ?ƒ t	 k sË t ‚ t t t ??j t t
 t ??ƒ t	 k sö t ‚ t t d „  ƒ d  S(   Nc           S   s   t  t @j t  t k ƒ S(   N(   R8   R9   t   equals(    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   Ò   R>   (   R   R   R8   R9   RT   R   R?   R:   R   R@   R;   R3   t   NotImplementedError(    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_equalsÌ   s    ?07%+c       	      sO  d d d g d d d g d d d g d d d g g }  d d d g d d d g d d d g d d d g g } t  t t t g |  ƒ t t t t ƒ t ƒ t t t ƒ t ƒ ƒ k s· t ‚ t t  t t t g | ƒ ƒ t t t t t ƒ t t ƒ ƒ t t t ƒ ƒ ƒ k st ‚ t t t t g |  | ƒ t	 k s6t ‚ t  t t t g |  | ƒ t	 k s^t ‚ t  t
 ƒ  t
 ƒ  t
 ƒ  g |  | ƒ t	 k st ‚ d d d d g d d d d g d d d d g d d d d g d d d d g g ‰  d d d d g d d d d g d d d d g g } t  t t t t g ˆ  | ƒ t t t t ƒ t ƒ t t t ƒ ƒ k s^t ‚ t t t t t g ˆ  | ƒ t t t t ƒ t ƒ t ƒ k s t ‚ d d d d d g ‰  d d d g } t  t t t t g ˆ  | ƒ t t t t ƒ t ƒ t t t ƒ ƒ k st ‚ t t t t t g ˆ  | ƒ t t t t ƒ t ƒ t ƒ k sQt ‚ d d d d d g d d d d d g d d d d g g ‰  d d d d d g d g } t  t t t t g ˆ  | ƒ t t t t ƒ t ƒ t t t ƒ ƒ k sðt ‚ t t t t t g ˆ  | ƒ t t t t ƒ t ƒ t ƒ k s2t ‚ d i d t 6d t 6g ‰  d d d d d g d g } t  t t t t g ˆ  | ƒ t t t t ƒ t ƒ t t t ƒ ƒ k s²t ‚ t t t t t g ˆ  | ƒ t t t t ƒ t ƒ t ƒ k sôt ‚ i d t 6d t 6d g ‰  d d d d g g } d d d g g ‰  t t ‡  f d	 †  ƒ t t ‡  f d
 †  ƒ t t d „  ƒ t t t t t ƒ ƒ } t t t t B@ƒ | k s©t ‚ t t t @t t @Bƒ | k sÍt ‚ t t t t ƒ ƒ t t t ƒ t ƒ k sýt ‚ t t t t ƒ ƒ t t t t ƒ t t t ƒ t t ƒ ƒ ƒ k sEt ‚ t t t t d ƒ t ƒ ƒ t t t d ƒ t ƒ k st ‚ t t t t d ƒ t ƒ ƒ t j k s®t ‚ t t t t d ƒ t ƒ ƒ t t t d ƒ t ƒ k sêt ‚ t t t t t ƒ t ƒ ƒ t t t t ƒ t ƒ k s&t ‚ t t t t t d ƒ t ƒ t t t d ƒ t ƒ ƒ ƒ t t t d ƒ t t t ƒ ƒ k s†t ‚ t t @t @t t @t @B} t t | ƒ } t | ƒ t t @t @k sÖt ‚ t t d „  ƒ t d ƒ \	 } } } } } }	 }
 } } | | @| @| @| @|	 @|
 @| @| @| | @| @| @| @|	 @|
 @| @| @B} t | ƒ | k spt ‚ t  t t g d d g g ƒ } t  t t g d d g g ƒ | k s¸t ‚ t t t g d d g g ƒ | k sât ‚ t t d „  ƒ t  t g d g g d g g ƒ t	 k s	t ‚ t  t g d g g d g g ƒ t	 k sL	t ‚ t  t g g  g  ƒ t k sm	t ‚ t t d „  ƒ t t g d g g d g g ƒ t	 k sª	t ‚ t t g d g g d g g ƒ t	 k s×	t ‚ t t g g  g  ƒ t k sø	t ‚ t t t @t t @Bƒ t t t t t ƒ ƒ k s.
t ‚ t t t t t ƒ ƒ ƒ t k sU
t ‚ t t t t t ƒ ƒ ƒ t k s|
t ‚ t t t t d ƒ t t t ƒ ƒ ƒ t t t d ƒ t t d ƒ ƒ k sÊ
t ‚ t t t d d ƒ t t t ƒ ƒ j ƒ  t t t d ƒ t t d ƒ ƒ k st ‚ t t t d d ƒ t t t ƒ ƒ j ƒ  t t t d ƒ t t t ƒ ƒ k snt ‚ t t t d d ƒ t t t ƒ ƒ j ƒ  t t t d ƒ t t d ƒ ƒ k sÀt ‚ t t t d d ƒ t t t t ƒ t t t d ƒ ƒ j ƒ  t t t d ƒ t t d ƒ t t d ƒ ƒ k s2t ‚ t t t d d ƒ t t d d ƒ ƒ j ƒ  t t d ƒ k svt ‚ t t t d d ƒ t t d d ƒ ƒ j ƒ  t t d ƒ k sºt ‚ t t t d d ƒ t t d d ƒ ƒ j ƒ  t k sõt ‚ t t t d d ƒ t t d d ƒ ƒ j ƒ  t t t d ƒ t t d ƒ ƒ k sKt ‚ d S(   s1   
    Test working of simplification methods.
    i    i   i   i   i   i   i   i   c              s   t  t t t t g ˆ  ƒ S(   N(   R   t   wt   xt   yt   z(    (   t   minterms(    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=     R>   c              s   t  t t t t g ˆ  ƒ S(   N(   R   RW   RX   RY   RZ   (    (   R[   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=     R>   c           S   s   t  t t t t g d g ƒ S(   Nt   abcdefg(   R   RW   RX   RY   RZ   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=     R>   c           S   s   t  t t t B@d d ƒS(   Nt   formt   blabla(   R%   R8   R9   R;   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=     R>   s   a b c d e f g h jc           S   s   t  t g d g g d g g ƒ S(   Ni   (   R   RX   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   )  R>   c           S   s   t  t g d g g d g g ƒ S(   Ni   (   R   RX   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   .  R>   iÿÿÿÿN(   R   RX   RY   RZ   R   R   R   R:   R   R+   R   RW   R3   RQ   RA   R8   R9   R;   R%   R   R   R   R   R,   R   R   R@   R?   R   R   (   t   set1t   set2t	   dontcarest   anst   bRC   t   at   ct   dt   fRD   t   ht   jt   expr(    (   R[   s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_simplificationÕ   s¢    66K<((1<30B0B$0B0B $06<-<<6*"'#(**--!--!6''NRRR<6DD;,c          C   s‹  d d d d g d d d d g d d d d g d d d d g d d d d g g }  t  t t t ƒ ƒ t ƒ t i t t 6f k s… t ‚ t  t t t t t g |  ƒ t	 t t t t g |  ƒ ƒ t
 t t t ƒ t ƒ t t t ƒ t ƒ t ƒ i t t 6t t 6t t 6t t 6f k st ‚ t  t t t t g d d d g g ƒ t t t t g d d d g g ƒ ƒ t k smt ‚ t t t t g d d d g d d d g g ƒ } t t t t g d d d g d d d g g ƒ } t  | | ƒ | i t t 6t t 6f k süt ‚ t  t t t ƒ t t t ƒ ƒ t k s*t ‚ t  t
 t t ƒ t t t ƒ ƒ d k sWt ‚ t  t
 t t ƒ t
 t t t ƒ ƒ d k s‡t ‚ d S(   s,   
    Test working of bool_map function.
    i    i   N(   R*   R   Rd   R:   R   RW   RX   RY   RZ   R   R   R   Rc   Re   R@   R   t   None(   R[   t	   function1t	   function2(    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_bool_mapD  s    <4[$300#.-c           C   s¬   t  t t ƒ t k s t ‚ t  t t t ƒ t k s9 t ‚ t  t t ƒ t k sT t ‚ t  t t t ƒ t k sr t ‚ t t t ƒ t k s t ‚ t t t ƒ t k s¨ t ‚ d S(   sB   Test that mixing symbols with boolean values
    works as expectedN(   R   R8   R?   R:   R@   R,   R   R+   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_bool_symbolY  s    c           C   s\   t  j s t ‚ t t @j s" t ‚ t t Bj s5 t ‚ t j sE t ‚ t t Aj sX t ‚ d  S(   N(   R+   t
   is_BooleanR:   R8   R9   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_is_booleane  s
    c           C   sn  t  t @j t  t ƒ t k s" t ‚ t  t @j t  t ƒ t k sD t ‚ t  t @j t t ƒ t  k sf t ‚ t  t @j t t ƒ t k sˆ t ‚ t  t @j i t t  6t t 6ƒ t k sµ t ‚ t  t Bj t  t ƒ t k s× t ‚ t  t Bj t  t ƒ t k sù t ‚ t  t Bj t t ƒ t k st ‚ t  t Bj t t ƒ t  k s=t ‚ t  t Bj i t t  6t t 6ƒ t k sjt ‚ d  S(   N(   R8   R9   t   subsR?   R:   R@   R,   R+   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt	   test_subsm  s    """"-""""c          C   sS   t  t t d ƒ ƒ \ }  } |  | @| |  @k s5 t ‚ |  | B| |  Bk sO t ‚ d S(   s$   Test for commutativity of And and Ors   A,BN(   t   mapR   R   R:   (   R8   R9   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_commutative€  s    c           C   s&   t  t @t @t  t t @@k s" t ‚ d S(   s   Test for associativity of AndN(   R8   R9   R;   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_and_associativityˆ  s    c           C   s&   t  t Bt Bt  t t BBk s" t ‚ d  S(   N(   R8   R9   R;   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_or_assicativityŽ  s    c          C   s!   t  ƒ  }  |  |  k s t ‚ d  S(   N(   R   R:   (   Rd   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_double_negation’  s    	c           C   sÁ   t  t t t d t ƒƒ t t Bk s, t ‚ t  t t t t ƒ ??ƒ t t t t ƒ t t ƒ ƒ t t ƒ ƒ k sv t ‚ t  t	 t t t t
 ƒ ƒ t t Bt t B@t t
 B@t
 t B@k s½ t ‚ d  S(   Nt   evaluate(   R!   R   R8   R9   R@   R:   R;   R   R   R   RK   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_eliminate_implications™  s
    ,Gc           C   s¨   t  t t @t @ƒ t t t h k s) t ‚ t  t t Bt @ƒ t t Bt h k sS t ‚ t  t ƒ t h k sn t ‚ t  t ƒ t h k s‰ t ‚ t  t ƒ t h k s¤ t ‚ d  S(   N(   R   R8   R9   R;   R:   R?   R@   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_conjuncts¡  s
    )*c           C   s©   t  t t Bt Bƒ t t t h k s) t ‚ t  t t Bt @ƒ t t Bt @h k sT t ‚ t  t ƒ t h k so t ‚ t  t ƒ t h k sŠ t ‚ t  t ƒ t h k s¥ t ‚ d  S(   N(   R   R8   R9   R;   R:   R?   R@   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_disjuncts©  s
    )+c           C   sŽ   t  t t t t ƒ t ƒ ƒ t t t t ƒ t t t ƒ ƒ k sE t ‚ t t t t t t ƒ ƒ ƒ t t t t ƒ t t t ƒ ƒ k sŠ t ‚ d  S(   N(   R    R   R   R8   R9   R;   R:   R   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_distribute±  s    Ec           C   s§  t  t ƒ t k s t ‚ t  t ƒ t k s0 t ‚ t  t ƒ t k sH t ‚ t  t t Bt Bƒ t k si t ‚ t  t t @t @ƒ t k sŠ t ‚ t  t t ?ƒ t t Bk s« t ‚ t  t t t t ƒ ƒ t t Bt t B@t t B@k sæ t ‚ t  t t At Aƒ t t Bt Bt t Bt B@t t Bt B@t t Bt B@k s8t ‚ t  t t t t ƒ ƒ t t Bt t B@k sit ‚ t  t	 t t Bt Bƒ ƒ t t @t @k sšt ‚ t  t	 t t @t @ƒ ƒ t t Bt Bk sËt ‚ t  t	 t t ?ƒ ƒ t t @k sòt ‚ t  t	 t t t t ƒ ƒ ƒ t
 t t t t ƒ t t t t ƒ ƒ k s@t ‚ t  t	 t t At Aƒ ƒ t t Bt Bt t Bt B@t t Bt B@t t Bt B@k s˜t ‚ t  t	 t t t t ƒ ƒ ƒ t t Bt t B@k sÑt ‚ t  t t ?t t ?Aƒ t t @t t @Bk st ‚ t  t t ?t t ?At ƒ t t Bt Bt Bt t @t t @B@k sJt ‚ t t d d ƒ j  ƒ  t k snt ‚ t t d d ƒ j  ƒ  t k s“t ‚ t t d „  ƒ d  S(   Ni   i    c           S   s   t  t d k  d g t ƒ j ƒ  S(   Ni   (   R   R8   R9   R&   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   Ï  R>   (   R&   R+   R:   R,   R8   R9   R   R;   R   R   R   R   R@   R3   RA   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_to_nnf¶  s.    !!!;A111'NA92/$%c        	   C   s&  t  t t Bƒ t t t ƒ t t ƒ ƒ k s2 t ‚ t  t t @t Bƒ t t t t ƒ t t t ƒ ƒ k sm t ‚ t  t t ?ƒ t t Bk sŽ t ‚ t  t t t @?ƒ t t Bt t B@k s¼ t ‚ t  t t t B@t t t B@Bt ƒ t t Bk sð t ‚ t  t t @ƒ t t t ƒ k st ‚ t  t	 t t ƒ ƒ t t t t t ƒ ƒ t t t t ƒ ƒ ƒ k s]t ‚ t  t	 t t t @ƒ ƒ t t Bt t B@t t Bt B@k sžt ‚ t  t	 t t t Bƒ t ƒ t t t t ƒ t ƒ t t t ƒ t ƒ t t t t t ƒ ƒ ƒ k st ‚ t  t d ƒ t d k s"t ‚ d  S(   Ni   (
   R'   R9   R;   R   R   R:   R8   R   R?   R   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_to_cnfÒ  s    2;!.4%H+Kc           C   s°  t  t t Bƒ t t t ƒ t t ƒ ƒ k s2 t ‚ t  t t t B@ƒ t t t t ƒ t t t ƒ ƒ k sm t ‚ t  t t ?ƒ t t Bk sŽ t ‚ t  t t t @?ƒ t t t @Bk s· t ‚ t  t t Bƒ t t Bk s× t ‚ t  t t t ƒ t	 ƒ t t t t ƒ t t t ƒ t t ƒ ƒ ƒ k s"t ‚ t  t t t t @ƒ t	 ƒ t t t t t ƒ t t t ƒ t t ƒ ƒ t t t ƒ t t ƒ ƒ ƒ k sŒt ‚ t  t d ƒ t d k s¬t ‚ d  S(   Ni   (
   R(   R9   R;   R   R   R:   R8   R   R   R?   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_to_dnfâ  s    2;!) 6Qc             sÒ   t  t t d ƒ ƒ \ }  } } ‡  f d †  ‰  ˆ  t |  | B| |  Bg |  | | g ƒ ƒ ˆ  d d g d d g g ƒ k s} t ‚ ˆ  t |  | B| |  Bg |  | | g ƒ ƒ ˆ  d d g d d g g ƒ k sÎ t ‚ d  S(   Ns   x,y,zc            s7   y t  ‡  f d †  |  Dƒ ƒ SWn t k
 r2 |  SXd  S(   Nc         3   s   |  ] } ˆ  | ƒ Vq d  S(   N(    (   t   .0RX   (   t   sorted_recursive(    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pys	   <genexpr>õ  s    (   t   sortedRA   (   t   arg(   Rƒ   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyRƒ   ó  s    i   i   i   iÿÿÿÿ(   Ru   R   R   R)   R:   (   RX   RY   RZ   (    (   Rƒ   s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_to_int_reprð  s    )'*c           C   sH  t  t ƒ t k s t ‚ t  t ƒ t k s0 t ‚ t  t ƒ t k sI t ‚ t  t t @ƒ t k se t ‚ t  t t @t t @Bt t @Bt t @Bt ƒ t k s  t ‚ t  t t Bt t B@ƒ t k sÆ t ‚ t  t t t t ƒ ƒ ƒ t k sí t ‚ t  t t Aƒ t k s	t ‚ t  t t @t t @Bt t @Bt t @Bt ƒ t k sDt ‚ d  S(   N(	   R"   R+   R?   R:   R8   R9   R@   R   R   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_is_nnfÿ  s    ;&'c           C   s½   t  t ƒ t k s t ‚ t  t t Bt Bƒ t k s8 t ‚ t  t t @t @ƒ t k sX t ‚ t  t t Bt @ƒ t k sx t ‚ t  t t @t Bƒ t k s˜ t ‚ t  t t @t Bƒ t k s¹ t ‚ d  S(   N(   R#   RX   R?   R:   RY   RZ   R@   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_is_cnf  s        c           C   s½   t  t ƒ t k s t ‚ t  t t Bt Bƒ t k s8 t ‚ t  t t @t @ƒ t k sX t ‚ t  t t @t Bƒ t k sx t ‚ t  t t Bt @ƒ t k s˜ t ‚ t  t t Bt @ƒ t k s¹ t ‚ d  S(   N(   R$   RX   R?   R:   RY   RZ   R@   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_is_dnf  s        c          C   s'  t  d ƒ \ }  } } t t t t ƒ t k s3 t ‚ t t t t ƒ t k sQ t ‚ t t t t ƒ t k so t ‚ t t t t ƒ t k s t ‚ t t |  | | ƒ t ƒ s® t ‚ t }  t |  | | ƒ | k sÒ t ‚ t }  t |  | | ƒ | k sö t ‚ t } t t |  | ƒ | | ƒ | k s#t ‚ t t	 |  t ƒ t | t ƒ t ƒ t k sSt ‚ t t
 |  | ƒ t t
 ƒ k swt ‚ t t
 | |  ƒ t
 k s•t ‚ t d t
 t ƒ t
 k s³t ‚ t d t
 t ƒ t k sÑt ‚ t t d „  ƒ t t d „  ƒ t t d „  ƒ t t d „  ƒ t d d d ƒ t j k s2t ‚ t t d d d d t ƒt ƒ sYt ‚ t t d	 „  ƒ t t t
 t ƒ t t
 ƒ t t
 t t
 ƒ k sœt ‚ t t t
 t ƒ t t
 ƒ t t
 t t
 ƒ k sÐt ‚ t t t
 t ƒ t t
 ƒ t t
 t t
 ƒ k st ‚ t t t
 t ƒ t t
 ƒ t t
 t t
 ƒ k s7t ‚ t t t j t
 ƒ t t
 ƒ t t
 t t
 ƒ k smt ‚ t t t j t
 ƒ t t
 ƒ t t
 t t
 ƒ k s¤t ‚ t t t j t
 ƒ t t
 ƒ t t
 t t
 ƒ k sÛt ‚ t t t j t
 ƒ t t
 ƒ t t
 t t
 ƒ k st ‚ t t t
 d ƒ t t
 ƒ t
 k s8t ‚ t t t
 d ƒ t t
 ƒ t
 k s_t ‚ t t t
 d ƒ t t
 ƒ t k s†t ‚ t t t
 d ƒ t t
 ƒ t k s­t ‚ t t t
 d ƒ t t ƒ j t
 d ƒ t k sàt ‚ t t t
 d ƒ t t ƒ j t
 d ƒ t k st ‚ t t d
 „  ƒ d  S(   Ns   A:Ci   i    c           S   s   t  d t t ƒ S(   Ni   (   R   RX   RY   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   0  R>   c           S   s   t  d g  t ƒ S(   Ni   (   R   RY   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   1  R>   c           S   s   t  d d t ƒ S(   Ni   (    (   R   RY   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   2  R>   c           S   s   t  d t g  ƒ S(   Ni   (   R   RY   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   3  R>   Rz   c           S   s   t  t d k t t ƒ S(   Ni   (   R   RX   RY   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   7  R>   c           S   s   t  t d k t t t ƒ S(   Ni   (   R   RX   RY   RZ   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   I  R>   (   R   R   R?   R@   R,   R:   R+   RJ   R   R   RX   R   RY   R3   RA   R   R   R   RZ   Rs   RQ   (   R8   R9   R;   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_ITE  sN    !'0$!'34436776''''33c           C   s"  t  t ƒ t k s t ‚ t  t ƒ t k s0 t ‚ t  t ƒ t k sH t ‚ t  t ƒ t k sa t ‚ t  t t t ƒ ƒ t k s‚ t ‚ t  t j t ƒ ƒ t k s£ t ‚ t  t	 t j t ƒ ƒ ƒ t k sÊ t ‚ t  t t t ƒ ƒ t k së t ‚ t  t
 t j t ƒ t j t ƒ ƒ ƒ t k st ‚ d  S(   N(   R.   R?   R:   R@   R8   R   R9   R    t   zeroR   R   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_is_literalL  s    !!'!c           C   sS  t  t @t t  @k o t k n s* t ‚ t t @t t @k oI t k n sT t ‚ t t @t t t ƒ k ss t ‚ t  t Bt t  Bk o’ t  k n s t ‚ t t Bt t Bk o¼ t k n sÇ t ‚ t t Bt t t ƒ k sæ t ‚ t t t ƒ k sÿ t ‚ t  t ?t t  >k ot k n s)t ‚ t t ?t t >k oHt  k n sSt ‚ t t  ?t  t >k ort  k n s}t ‚ t t ?t t >k ot k n s¨t ‚ t t ?t t >k oÐt t t ƒ k n sÛt ‚ t  t At t  Ak oût k n st ‚ t t At t Ak o%t k n s0t ‚ t t At	 t t ƒ k sOt ‚ d  S(   N(
   R?   R8   R:   R@   R9   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_operatorsX  s    *******+3+*c          C   sÚ
  t  t j  k s t ‚ t t j k s* t ‚ t  t k	 s< t ‚ t t k	 sN t ‚ t  sZ t ‚ t sg t ‚ t  t k sy t ‚ t t k s‹ t ‚ t  t k sž t ‚ t t k s± t ‚ t  t k sÄ t ‚ t t  ƒ t t ƒ k sâ t ‚ t t ƒ t t ƒ k s t ‚ t t  t h ƒ t t t h ƒ k o/d k n s:t ‚ t t  t	 ƒ sOt ‚ t t t	 ƒ sdt ‚ t t  t
 ƒ szt ‚ t t t
 ƒ st ‚ t t  ƒ t k s¨t ‚ t t ƒ t k sÀt ‚ t t ƒ t  k sØt ‚ t t ƒ t  k sðt ‚ t  t k st ‚ t t  k st ‚ x•t t t  g t t g ƒ D]x\ }  } t |  | ƒ t k sYt ‚ t | |  ƒ t k stt ‚ t | | ƒ t k st ‚ t |  |  ƒ t  k sªt ‚ t |  t ƒ t k sÅt ‚ t | t ƒ t k sàt ‚ |  t k oõ| t k s'|  | @t k st ‚ | |  @t k s't ‚ n  | t k	 rL| | @t k sLt ‚ n  |  t k	 rq|  |  @t  k sqt ‚ n  t |  | ƒ t  k sŒt ‚ t | |  ƒ t  k s§t ‚ t | | ƒ t k sÂt ‚ t |  |  ƒ t  k sÝt ‚ t |  t ƒ t  k søt ‚ t | t ƒ t k st ‚ |  t k o(| t k sZ|  | Bt  k sAt ‚ | |  Bt  k sZt ‚ n  | t k	 r| | Bt k st ‚ n  |  t k	 r¤|  |  Bt  k s¤t ‚ n  t |  | ƒ t  k s¿t ‚ t | |  ƒ t  k sÚt ‚ t | | ƒ t k sõt ‚ t |  |  ƒ t k st ‚ t |  t ƒ t k s,t ‚ t | t ƒ t k sGt ‚ |  t k o\| t k sŽ|  | At  k sut ‚ | |  At  k sŽt ‚ n  | t k	 r³| | At k s³t ‚ n  |  t k	 rØ|  |  At k sØt ‚ n  t |  | ƒ t  k sót ‚ t | |  ƒ t  k st ‚ t | | ƒ t  k s)t ‚ t |  |  ƒ t k sDt ‚ t |  t ƒ t k s`t ‚ t | t ƒ t  k s{t ‚ t |  | ƒ t k s–t ‚ t | |  ƒ t k s±t ‚ t | | ƒ t  k sÌt ‚ t |  |  ƒ t k sçt ‚ t |  t ƒ t k st ‚ t | t ƒ t k st ‚ t |  | ƒ t k s9t ‚ t | |  ƒ t  k sTt ‚ t | | ƒ t  k sot ‚ t |  |  ƒ t  k sŠt ‚ t |  t ƒ t k s¥t ‚ t | t ƒ t  k sÀt ‚ t t |  ƒ t  k sÛt ‚ t t | ƒ t k s÷t ‚ |  t k o| t k sj|  | ?t k s%t ‚ | |  >t k s;t ‚ | |  ?t  k sQt ‚ |  | >t  k sjt ‚ n  | t k	 r¥| | ?t  k sŒt ‚ | | >t  k s¥t ‚ n  |  t k	 rà|  |  ?t  k sÇt ‚ |  |  >t  k sàt ‚ n  t |  | ƒ t k sût ‚ t | |  ƒ t k s	t ‚ t | | ƒ t  k s1	t ‚ t |  |  ƒ t  k sL	t ‚ t |  t ƒ t k sg	t ‚ t | t ƒ t k sƒ	t ‚ t t |  ƒ t k sž	t ‚ t t | ƒ t k sº	t ‚ t |  |  |  ƒ t  k sØ	t ‚ t |  |  | ƒ t  k sö	t ‚ t |  | |  ƒ t k s
t ‚ t |  | | ƒ t k s2
t ‚ t | |  |  ƒ t  k sP
t ‚ t | |  | ƒ t k sn
t ‚ t | | |  ƒ t  k sŒ
t ‚ t | | | ƒ t k s2t ‚ q2Wt d „  t j  t j f Dƒ ƒ sÖ
t ‚ d  S(   Ni   c         s   s'   |  ] } | j  d  d ƒ | k Vq d S(   i   i   N(   R   (   R‚   t   i(    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pys	   <genexpr>î  s    (   R+   R   R:   R,   R?   R@   t   hasht   lenRJ   R-   t   boolR   R6   R   RX   R   R   R   R   R   R   R   t   all(   t   Tt   F(    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_true_falsek  sà    :("c           C   s  t  t d k t t d k ƒ j ƒ  t d t ƒ k s9 t ‚ t t d k t d k ƒ j ƒ  t d d ƒ k so t ‚ t	 t d k t d k ƒ j ƒ  t t d ƒ t d t ƒ k s³ t ‚ t
 t d k ƒ j ƒ  t t d ƒ k sá t ‚ t
 t t d k t d k  ƒ ƒ j ƒ  t t t d ƒ t d t ƒ ƒ k s0t ‚ t j ƒ  t j k sKt ‚ t j ƒ  t ƒ  k sft ‚ t j ƒ  t j k st ‚ t t	 t d k  t d k ƒ t d k  ƒ j ƒ  t j t d ƒ k sÊt ‚ t t d k  t t ƒ d k  ƒ j ƒ  t d k  j ƒ  k s	t ‚ t t d „  ƒ d  S(   Ni    i   i   iþÿÿÿi   c           S   s   t  t ƒ d k  j ƒ  S(   Ni   (   R   RX   t   as_set(    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   þ  R>   (   R   RY   R@   R–   R   R   R:   R   RX   R   R   R   R+   R   t   UniversalSetR,   R   t   openR   R3   RU   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_bool_as_setñ  s    96D.$+I?c          C   s¸   t  d ƒ \ }  } t |  d k | d k ƒ j ƒ  t d t ƒ t d t ƒ k sU t ‚ t |  d k | d k ƒ j ƒ  t j t j t t d t	 t	 ƒ t t d t	 t	 ƒ k s´ t ‚ d  S(   Ns   x,yi    (
   R   R   R–   R   R   R:   R   R   t   RealsR?   (   RX   RY   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_multivariate_bool_as_set  s    C+c          C   sÛ   t  d d t ƒ}  |  t k |  t k f } t | Œ  } | j t k rz t | j ƒ t | ƒ | j t j	 ƒ k sŒ t
 ‚ n | t k sŒ t
 ‚ t | Œ  } | j t k rÅ t | j ƒ d k s× t
 ‚ n | t k s× t
 ‚ d  S(   NRX   t   reali   (   R   R?   R   R   t   funcR   t   argst   countR   R+   R:   R   (   RX   Rž   t   v(    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_all_or_nothing
  s    4c           C   s.   t  j t  k s t ‚ t j t k s* t ‚ d  S(   N(   R+   RB   R:   R,   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_canonical_atoms  s    c           C   s.   t  j t k s t ‚ t j t  k s* t ‚ d  S(   N(   R+   t   negatedR,   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_negated_atoms  s    c           C   sÇ   t  t d k t t k  ƒ j ƒ  t d t d t ƒk s< t ‚ t  t d k t t k  ƒ j ƒ  t d t ƒ k sr t ‚ t t k  j ƒ  t t t ƒ k sš t ‚ t t k j ƒ  t t t ƒ k sÃ t ‚ d  S(   Ni   t	   left_openi   (   R   RX   R   R–   R   R?   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_issue_8777#  s    <6(c           C   sg   t  t t t k  t d k ƒ t d t k t t k  ƒ ƒ j ƒ  t t d ƒ t d t ƒ k sc t ‚ d  S(   Niþÿÿÿi   (   R   R   R   RX   R–   R   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_issue_8975*  s    =c           C   sI   t  d d d d d d d g ƒ d k s- t ‚ t  d ƒ d k sE t ‚ d  S(   Ni   i    iR   t   0010101000111001i9*  (   R/   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_term_to_integer/  s    -c           C   sµ   t  d ƒ d d d d d d d d d d g
 k s6 t ‚ t  d d ƒ d d d d d d d g k sf t ‚ t  d d ƒ d d d d d d d d d d d d d d d d g k s± t ‚ d  S(   Ni	  i   i    i{   i   iÈ  i   (   R0   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_integer_to_term4  s    60$c           C   s,  t  t t t t ƒ t t g d t ƒƒ t t t t g k sB t ‚ t  t t t Bt t g d t ƒƒ t t t t g k s t ‚ t  t t t ?t t g d t ƒƒ t t t t g k s¼ t ‚ t  t t t t ƒ t t g ƒ ƒ d d g t f d d g t f d d g t f d d g t f g k s(t ‚ d  S(   Nt   inputi    i   (   t   listR1   R   RX   RY   R@   R?   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_truth_table;  s    '""!c             sS  xLt  j t  j f D]8‰ t t ‡ f d †  ƒ t t ‡ f d †  ƒ t t ‡ f d †  ƒ t t ‡ f d †  ƒ x× t  j t  j t g D]À ‰  x· t d ƒ D]© }  t t ‡  ‡ f d †  ƒ t t ‡  ‡ f d †  ƒ t t ‡  ‡ f d †  ƒ t t ‡  ‡ f d	 †  ƒ t t ‡  ‡ f d
 †  ƒ t t ‡  ‡ f d †  ƒ ˆ ˆ  ‰  ‰ qš Wq‡ Wq Wd  S(   Nc              s   ˆ  
S(   N(    (    (   t   t(    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   H  R>   c              s   ˆ  S(   N(    (    (   R®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   I  R>   c              s
   t  ˆ  ƒ S(   N(   t   abs(    (   R®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   J  R>   c              s
   t  ˆ  ƒ S(   N(   t   int(    (   R®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   L  R>   i   c              s   ˆ  ˆ S(   N(    (    (   t   oR®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   P  R>   c              s   ˆ  ˆ S(   N(    (    (   R±   R®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   Q  R>   c              s   ˆ  ˆ S(   N(    (    (   R±   R®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   R  R>   c              s   ˆ  ˆ S(   N(    (    (   R±   R®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   S  R>   c              s   ˆ  ˆ S(   N(    (    (   R±   R®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   T  R>   c              s   ˆ  ˆ S(   N(    (    (   R±   R®   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   U  R>   (	   R   R+   R,   R3   RA   t   Zerot   OneRX   t   range(   t   _(    (   R±   R®   s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_issue_8571F  s    c          C   s­   t  d d t ƒ}  t  d d t ƒ\ } } |  | |  | d | |  | d d k  } | t j k	 sm t ‚ | j ƒ  t j k sˆ t ‚ | d k j ƒ  t j k s© t ‚ d  S(   Nt   nt   negatives   p qt   positivei   i    (   R   R?   R   R,   R:   t   expandR+   (   R·   t   pt   qt   r(    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_expand_relationalY  s    .c           C   s4   t  j j t k s t ‚ t  j j t k s0 t ‚ d  S(   N(   R   R+   t   is_AtomR?   R:   R,   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_issue_12717b  s    c             sã   t  d d t ƒ}  t d „  t t j d |  f Dƒ ƒ s= t ‚ t  d d t ƒ} t d „  t t j d | f Dƒ ƒ sz t ‚ t d	 „  t t d k  f Dƒ ƒ s¢ t ‚ x: d
 t d
 ƒ t d g  f D] ‰  t	 t
 ‡  f d †  ƒ q¿ Wd  S(   Nt   nzt   nonzeroc         s   s$   |  ] } t  | ƒ t j k Vq d  S(   N(   R2   R   R+   (   R‚   RŽ   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pys	   <genexpr>i  s    i   RZ   R‹   c         s   s$   |  ] } t  | ƒ t j k Vq d  S(   N(   R2   R   R,   (   R‚   RŽ   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pys	   <genexpr>k  s    i    c         s   s!   |  ] } t  | ƒ | k Vq d  S(   N(   R2   (   R‚   RŽ   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pys	   <genexpr>l  s    i   c              s
   t  ˆ  ƒ S(   N(   R2   (    (   RŽ   (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyR=   n  R>   (   R   R?   R’   R   R+   R:   R@   R,   RX   R3   RA   (   RÁ   RZ   (    (   RŽ   s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_as_Booleang  s    ++(#c          C   s  t  t d k  t t ƒ j t t t f ƒ k s3 t ‚ xƒ t t f D]u }  |  t d ƒ j t ƒ  k sg t ‚ |  t t	 ƒ j t t g ƒ k sŽ t ‚ |  t t
 ƒ j t t g ƒ k s@ t ‚ q@ Wt j j t ƒ  k sÔ t ‚ t j j t ƒ  k sï t ‚ t j t t g ƒ k st ‚ t t t t t
 ƒ t t d ƒ ƒ j t t t g ƒ k sLt ‚ t j t ƒ j t ƒ  k smt ‚ t j t d k  ƒ j t ƒ  k s”t ‚ t j t ƒ j t t g ƒ k s»t ‚ t j t t t	 ƒ ƒ j t t g ƒ k sët ‚ t j t ƒ j t ƒ  k st ‚ d  S(   Ni   (   R   RX   RY   RZ   t   binary_symbolst   setR:   R   R   R?   R@   R   R+   R,   R   R    t   primet   is_true(   Rg   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_binary_symbolsq  s    3!'+?!''0c           C   sF   t  t t ƒ j t ƒ t d t t t ƒ f d t f ƒ k sB t ‚ d  S(   Ni    i   (	   R   RX   RY   t   diffR   R   R@   R?   R:   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_BooleanFunction_diff‚  s    c       	   C   sU  t  d ƒ \ }  } } } } } } } | | @| @| @| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @| @B| | @| @| @| @B| | @|  @| @| @B| | @|  @| @| @B|  | @| @| @| @| @B} | | @| @| @| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @B| | @| @| @| @B| | @|  @| @| @B|  | @| @| @| @| @B}	 | | B| B| | B| B@| | B| B@| | B| B@| | B| B@| | B| B@| | B| B| B@| | B| B| B@| | B| B| B| B@|  | B| B| B| B| B@| | B| B| B| B| B@| | B| B|  B| B| B| B@}
 t | d ƒ |	 k st ‚ t | d ƒ |
 k s:t ‚ d d d d g d d d d g d d d d g d d d d g d d d d g d d d d g g } d d d d g d d d d g d d d d g d d d d g g } t t t t t g | ƒ t t @t t @t @Bk st ‚ t t t t t g | | ƒ t t @t t @t @Bk sQt ‚ d  S(   Ns   A B C D E F G Ht   dnft   cnfi    i   (   R   R%   R:   R   RW   RX   RY   RZ   (   R8   R9   R;   RK   t   ER”   t   Gt   HR¼   t   soldnft   solcnfR[   Ra   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_issue_14700†  s    $ÿ ×¾#<$B9c          C   sè	  t  d d t ƒ\ }  } } } t  d d t ƒ\ } } t | | k | | k  ƒ j ƒ  t j k sf t ‚ t | | k | | k ƒ j ƒ  t j k s– t ‚ t | | k | | k ƒ j ƒ  t j k sÈ t ‚ t | | k | | k  ƒ j ƒ  t j k sú t ‚ t | | k | | k  ƒ j ƒ  t j k s,t ‚ t | | k | | k ƒ j ƒ  t j k s`t ‚ t | | k | | k ƒ j ƒ  t j k s’t ‚ t | | k | | k  ƒ j ƒ  t j k sÆt ‚ t | | k | | k  ƒ j ƒ  t j k söt ‚ t | | k | | k ƒ j ƒ  t j k s&t ‚ t | | k | | k ƒ j ƒ  t j k sXt ‚ t | | k | | k  ƒ j ƒ  t j k sŠt ‚ t | | k | | k  ƒ j ƒ  t j k s¼t ‚ t | | k | | k ƒ j ƒ  t j k sît ‚ t | | k | | k ƒ j ƒ  t j k s"t ‚ t | | k | | k  ƒ j ƒ  t j k sVt ‚ t | | k  | | k ƒ j ƒ  t j k s†t ‚ t | | k | | k ƒ j ƒ  t j k s¶t ‚ t | | k | | k ƒ j ƒ  t j k sèt ‚ t | | k  | | k ƒ j ƒ  t j k st ‚ t | | k  | | k ƒ j ƒ  t j k sLt ‚ t | | k | | k ƒ j ƒ  t j k s€t ‚ t | | k | | k ƒ j ƒ  t j k s²t ‚ t | | k  | | k ƒ j ƒ  t j k sæt ‚ t | | k  | | k ƒ j ƒ  t j k st ‚ t | | k | | k ƒ j ƒ  t j k sFt ‚ t | | k | | k ƒ j ƒ  t j k sxt ‚ t | | k  | | k ƒ j ƒ  t j k sªt ‚ t | | k  | | k ƒ j ƒ  t j k sÜt ‚ t | | k | | k ƒ j ƒ  t j k st ‚ t | | k | | k ƒ j ƒ  t j k sBt ‚ t | | k  | | k ƒ j ƒ  t j k svt ‚ t | | k |  | k  | | k ƒ j ƒ  t j k s¯t ‚ t | | k | | k  ƒ j ƒ  t j	 k sßt ‚ t | | k t
 | | ƒ ƒ j ƒ  | | k k st ‚ t | | k t
 | | ƒ ƒ j ƒ  t
 | | ƒ k sNt ‚ t t
 | | ƒ | | k |  | k  | | k  ƒ j ƒ  t | | k | t |  | ƒ k ƒ k s®t ‚ t t
 | | ƒ | | k |  | k  | | k | | k  ƒ j ƒ  t t
 | | ƒ | t |  | ƒ k ƒ k st ‚ t t
 | | ƒ | d k d | k  | d k | | k  ƒ j ƒ  t
 | | ƒ | d k B| t d | ƒ k Bk s‹t ‚ t t
 | | ƒ | d k d | k  | d k | | k  ƒ j ƒ  t
 | | ƒ | d k @| d k @| | k @k sýt ‚ t
 | | ƒ t
 | | ƒ @| | k @| | k @j ƒ  t
 | | ƒ t
 | | ƒ @| | k @k s_	t ‚ t t
 | | ƒ t
 | | ƒ ƒ j ƒ  t t
 | d ƒ t
 | d ƒ ƒ k s®	t ‚ t | | k | | k ƒ j ƒ  t | | ƒ k sä	t ‚ d  S(   Ns   w x y zRœ   s   d ei   i   i   i    (   R   R?   R@   R   R   R   R+   R:   R   R,   R   R
   R	   R   R   (   RW   RX   RY   RZ   Rf   RC   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   test_relational_simplification£  sd    0022242400222244002224240022224490693-<0<5<63/Oc    	      C   sÏ  d „  }  t  d d t ƒ\ } } } } t  d d t ƒ\ } } t t | | ƒ | | k | | k  | | k | | k  ƒ t t | | ƒ | d k d | k  | d k | | k  ƒ t t | | ƒ | d k d | k  | d k | | k  ƒ t | | k t | | ƒ ƒ t t t | | ƒ | | k | | k  t | | k | | k  ƒ ƒ t t | | ƒ | d k d | k  | d k | | k  ƒ ƒ t | | ƒ t | | ƒ @| | k @| | k @f } x! | D] } |  | | j ƒ  ƒ q®Wd  S(	   Nc   	      S   s½   |  j  } t | ƒ } t t t t t t | d | ƒ ƒ | | ƒ ƒ ƒ ƒ } xh | D]` } t t | | ƒ ƒ } |  j | ƒ } | j | ƒ } | | k sU t	 d j
 |  | | ƒ ƒ ‚ qU Wd  S(   Ni   sH   Original: {}
and simplified: {}
do not evaluate to the same value for {}(   t   free_symbolsR   R¬   RÅ   R7   R´   t   dictt   zipRs   R:   t   format(	   t   originalt
   simplifiedt   symbR·   t	   valuelistt   valuest   sublistt   originalvaluet   simplifiedvalue(    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt(   test_simplification_numerically_functionÞ  s    	9s   w x y zRœ   s   d ei   i   i   iÿÿÿÿ(   R   R?   R@   R   R   R   R   (	   Rà   RW   RX   RY   RZ   Rf   RC   t   expressionst
   expression(    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt*   test_relational_simplification_numericallyÜ  s    	666?93c       
   C   sP  d d l  m }  d d l m } m } m } |  d ƒ } |  d ƒ } |  d ƒ } | | | g } | ƒ  | ƒ  | ƒ  g } xÒ | D]Ê }	 xÁ |	 D]¹ }
 |
 d } |
 d } t t t t t t	 d	 d
 ƒ ƒ d d ƒ ƒ ƒ ƒ } xh | D]` } t
 t | | ƒ ƒ } | j | ƒ } | j | ƒ } | | k sà t d j | | | ƒ ƒ ‚ qà Wq‹ Wq~ Wd  S(   Niÿÿÿÿ(   t   Wild(   t   simplify_patterns_andt   simplify_patterns_ort   simplify_patterns_xorRd   Rc   Re   i    i   iþÿÿÿi   i   sG   Original: {}
and simplified: {}
do not evaluate to the same value for{}(   t
   sympy.coreRä   t   sympy.logic.boolalgRå   Ræ   Rç   R¬   RÅ   R7   R´   RÕ   RÖ   Rs   R:   R×   (   Rä   Rå   Ræ   Rç   Rd   Rc   Re   RÚ   t   patternlistst   patternlistt   patternRØ   RÙ   RÛ   RÜ   RÝ   RÞ   Rß   (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt3   test_relational_simplification_patterns_numericallyû  s&    

4N(Š   t   sympy.assumptions.askR    t   sympy.core.numbersR   t   sympy.core.relationalR   R   R   t   sympy.core.singletonR   t   sympy.core.symbolR   R   t   sympy.functionsR   t(   sympy.functions.elementary.miscellaneousR	   R
   t(   sympy.functions.elementary.trigonometricR   t   sympy.sets.setsR   R   R   t   sympy.simplify.simplifyR   Ré   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   R0   R1   R2   t   sympy.utilities.pytestR3   R4   R5   t   sympy.utilitiesR6   t	   itertoolsR7   R8   R9   R;   RK   Rd   Rc   Re   Rf   RC   RW   RX   RY   RZ   R<   RH   RI   RL   RM   RN   RO   RP   RR   RS   RV   Rk   Ro   Rp   Rr   Rt   Rv   Rw   Rx   Ry   R{   R|   R}   R~   R   R€   R   R†   R‡   Rˆ   R‰   RŠ   RŒ   R   R•   R™   R›   R¡   R¢   R¤   R¦   R§   R©   Rª   R­   R¶   R¾   RÀ   RÃ   RÈ   RÊ   RÒ   RÓ   Rã   Rí   (    (    (    s=   lib/python2.7/site-packages/sympy/logic/tests/test_boolalg.pyt   <module>   sŒ   Ü	'														o																						/			†															
				9