Skip to content

Commit fa05508

Browse files
committed
TST: Py operators of Function
1 parent bd190ed commit fa05508

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

tests/common_bdd.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,59 @@ def test_function(self):
5858
assert false.var is None, false.var
5959
true = bdd.true
6060
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+
61114

62115
def test_function_properties(self):
63116
bdd = self.DD()

tests/sylvan_test.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,5 +238,24 @@ def equal_list_contents(x, y):
238238
assert u in x, (u, x, y)
239239

240240

241+
def test_py_operators():
242+
bdd = _sylvan.BDD()
243+
bdd.declare('x', 'y')
244+
x = bdd.var('x')
245+
y = bdd.var('y')
246+
u = ~ x
247+
u_ = bdd.add_expr('~ x')
248+
assert u == u_, (u, u_)
249+
u = x & y
250+
u_ = bdd.add_expr(r'x /\ y')
251+
assert u == u_, (u, u_)
252+
u = x | y
253+
u_ = bdd.add_expr(r'x \/ y')
254+
assert u == u_, (u, u_)
255+
u = x ^ y
256+
u_ = bdd.add_expr('x # y')
257+
assert u == u_, (u, u_)
258+
259+
241260
if __name__ == '__main__':
242261
test_pick_iter()

0 commit comments

Comments
 (0)