def test_ite(): ordering = {'x': 0, 'y': 1} g = BDD(ordering) # x ix = ordering['x'] x = g.find_or_add(ix, -1, 1) h = ref_var(ix) compare(x, g, h) # y iy = ordering['y'] y = g.find_or_add(iy, -1, 1) h = ref_var(iy) compare(y, g, h) # x and y u = g.ite(x, y, -1) h = ref_x_and_y() compare(u, g, h) # x or y u = g.ite(x, 1, y) h = ref_x_or_y() compare(u, g, h) # negation assert g.ite(x, -1, 1) == -x, g._succ assert g.ite(-x, -1, 1) == x, g._succ