def test_not_equal(self): x = Bool("x") y = Bool("y") z = x != y v = x != True w = True != x self.assertEqual(z.value, "(not (= x y))") self.assertEqual(v.value, "(not (= x true))") self.assertEqual(w.value, "(not (= x true))")
def test_xor(self): x = Bool("x") y = Bool("y") z = x ^ y v = x ^ True w = True ^ x self.assertEqual(z.value, "(xor x y)") self.assertEqual(v.value, "(xor x true)") self.assertEqual(w.value, "(xor true x)")
def test_equal(self): x = Bool("x") y = Bool("y") z = x == y v = x == True w = True == x self.assertEqual(z.value, "(= x y)") self.assertEqual(v.value, "(= x true)") self.assertEqual(w.value, "(= x true)")
def test_or(self): x = Bool("x") y = Bool("y") z = x | y v = x | True w = True | x self.assertEqual(z.value, "(or x y)") self.assertEqual(v.value, "(or x true)") self.assertEqual(w.value, "(or true x)")
def test_and(self): x = Bool("x") y = Bool("y") z = x & y v = x & True w = True & x self.assertEqual(z.value, "(and x y)") self.assertEqual(v.value, "(and x true)") self.assertEqual(w.value, "(and true x)")
def test_ite(self): b = Bool("b") x = BitVec(32, "x") y = BitVec(32, "y") z = BitVec(32, "z") v = ite(32, x == 0, y, z) w = ite(32, b, y, z) self.assertEqual(v.value, "(ite (= x #x00000000) y z)") self.assertEqual(w.value, "(ite b y z)")
def test_invert(self): x = Bool("x") z = ~x self.assertEqual(z.value, "(not x)")
def test_declaration(self): x = Bool("x") self.assertEqual(x.declaration, "(declare-fun x () Bool)")