@@ -58,6 +58,59 @@ def test_function(self):
58
58
assert false .var is None , false .var
59
59
true = bdd .true
60
60
assert true .var is None , true .var
61
+ not_x_ = bdd .add_expr ('~ x' )
62
+ assert not_x == not_x_ , (
63
+ not_x , not_x_ )
64
+ # y
65
+ bdd .add_var ('y' )
66
+ y = bdd .var ('y' )
67
+ # x & y
68
+ x_and_y = x & y
69
+ negated = x_and_y .negated
70
+ assert not negated , negated
71
+ var = x_and_y .var
72
+ assert var == 'x' , var
73
+ low = x_and_y .low
74
+ assert low == bdd .false , low .var
75
+ y_ = x_and_y .high
76
+ assert y == y_ , y_ .var
77
+ x_and_y_ = bdd .add_expr (r'x /\ y' )
78
+ assert x_and_y == x_and_y_ , (
79
+ x_and_y , x_and_y_ )
80
+ # x | y
81
+ x_or_y = x | y
82
+ negated = x_or_y .negated
83
+ assert not negated , negated
84
+ var = x_or_y .var
85
+ assert var == 'x' , var
86
+ low = x_or_y .low
87
+ assert low == y , low .var
88
+ high = x_or_y .high
89
+ assert high == bdd .true , high .var
90
+ x_or_y_ = bdd .add_expr (r'x \/ y' )
91
+ assert x_or_y == x_or_y_ , (
92
+ x_or_y , x_or_y_ )
93
+ # x ^ y
94
+ x_xor_y = x ^ y
95
+ negated = x_xor_y .negated
96
+ assert negated , negated
97
+ var = x_xor_y .var
98
+ assert var == 'x' , var
99
+ high = x_xor_y .high
100
+ assert high == y , high .var
101
+ neg_y = x_xor_y .low
102
+ negated = neg_y .negated
103
+ assert negated , negated
104
+ var = neg_y .var
105
+ assert var == 'y' , var
106
+ low = neg_y .low
107
+ assert low == bdd .false , low .var
108
+ high = neg_y .high
109
+ assert high == bdd .true , high .var
110
+ x_xor_y_ = bdd .add_expr ('x ^ y' )
111
+ assert x_xor_y == x_xor_y_ , (
112
+ x_xor_y , x_xor_y_ )
113
+
61
114
62
115
def test_function_properties (self ):
63
116
bdd = self .DD ()
0 commit comments