def test_unate(): # c' * (a' + b') f = -c * (-a + -b) assert f.is_neg_unate([a, b, c]) assert f.is_neg_unate([a, b]) assert f.is_neg_unate([a, c]) assert f.is_neg_unate([b, c]) assert f.is_neg_unate(a) assert f.is_neg_unate(b) assert f.is_neg_unate(c) assert f.is_neg_unate() f = c * (a + b) assert f.is_pos_unate([a, b, c]) assert f.is_pos_unate([a, b]) assert f.is_pos_unate([a, c]) assert f.is_pos_unate([b, c]) assert f.is_pos_unate(a) assert f.is_pos_unate(b) assert f.is_pos_unate(c) assert f.is_pos_unate() f = Xor(a, b, c) assert f.is_binate([a, b, c]) assert f.is_binate([a, b]) assert f.is_binate([a, c]) assert f.is_binate([b, c]) assert f.is_binate(a) assert f.is_binate(b) assert f.is_binate(c)
def test_unate(): f = ~c & (~a | ~b) assert f.is_neg_unate([a, b, c]) assert f.is_neg_unate([a, b]) assert f.is_neg_unate([a, c]) assert f.is_neg_unate([b, c]) assert f.is_neg_unate(a) assert f.is_neg_unate(b) assert f.is_neg_unate(c) assert f.is_neg_unate() f = c & (a | b) assert f.is_pos_unate([a, b, c]) assert f.is_pos_unate([a, b]) assert f.is_pos_unate([a, c]) assert f.is_pos_unate([b, c]) assert f.is_pos_unate(a) assert f.is_pos_unate(b) assert f.is_pos_unate(c) assert f.is_pos_unate() f = Xor(a, b, c) assert f.is_binate([a, b, c]) assert f.is_binate([a, b]) assert f.is_binate([a, c]) assert f.is_binate([b, c]) assert f.is_binate(a) assert f.is_binate(b) assert f.is_binate(c)