示例#1
0
    def test_0element(self):
        a = ConstDom("")
        z = a.zero()
        self.assertEqual(str(z), "{ ZERO }")

        a = ConstDom("r1 = 3")
        #Test that zero is annihilator for extend, i.e.
        # a x Z = Z = Z x a
        b = a.extend(z)
        self.assertEqual(str(b), str(z))
        b = z.extend(a)
        self.assertEqual(str(b), str(z))

        #Test that zero is neutral for combine
        #Test with manual deref
        b = a.combine(z.__deref__())
        self.assertEqual(str(b), str(a))
        #Test with auto deref
        b = a.combine(z)
        self.assertEqual(str(b), str(a))
示例#2
0
    def test_0element(self):
        a = ConstDom("")
        z = a.zero()
        self.assertEqual(str(z), 
            "{ ZERO }")

        a = ConstDom("r1 = 3")
        #Test that zero is annihilator for extend, i.e.
        # a x Z = Z = Z x a
        b = a.extend(z)
        self.assertEqual(str(b), str(z))
        b = z.extend(a)
        self.assertEqual(str(b), str(z))

        #Test that zero is neutral for combine
        #Test with manual deref
        b = a.combine(z.__deref__())
        self.assertEqual(str(b), str(a))
        #Test with auto deref
        b = a.combine(z)
        self.assertEqual(str(b), str(a))
示例#3
0
    def test_combine(self):
        a = ConstDom("r1 = 5")
        b = ConstDom("r1 = 7")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = top ; }")

        a = ConstDom("r1 = 5")
        b = ConstDom("")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = top ; }")

        a = ConstDom("r1 = 5")
        b = ConstDom("r1 = 5")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = 5 ; }")
        
        a = ConstDom("r1 = 5; r2 = 7")
        b = ConstDom("r1 = 5; r2 = 8")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = 5 ; r2 = top ; }")
        
        a = ConstDom("r1 = 7; r2 = 5")
        b = ConstDom("r1 = 8; r2 = 5")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = top ; r2 = 5 ; }")
        
        a = ConstDom("r1 = 7; r2 = 5")
        b = ConstDom("r1 = 8; r2 = 4")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = top ; r2 = top ; }")
示例#4
0
    def test_combine(self):
        a = ConstDom("r1 = 5")
        b = ConstDom("r1 = 7")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = top ; }")

        a = ConstDom("r1 = 5")
        b = ConstDom("")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = top ; }")

        a = ConstDom("r1 = 5")
        b = ConstDom("r1 = 5")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = 5 ; }")

        a = ConstDom("r1 = 5; r2 = 7")
        b = ConstDom("r1 = 5; r2 = 8")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = 5 ; r2 = top ; }")

        a = ConstDom("r1 = 7; r2 = 5")
        b = ConstDom("r1 = 8; r2 = 5")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = top ; r2 = 5 ; }")

        a = ConstDom("r1 = 7; r2 = 5")
        b = ConstDom("r1 = 8; r2 = 4")
        c = a.combine(b)
        self.assertEqual(str(c), "{ r1 = top ; r2 = top ; }")