def test_De_Morgan():
    (A, B, C) = list(map(Boolean, symbols('A,B,C')))
    assert ((~ (A & B)) == ((~ A) | (~ B)))
    assert ((~ (A | B)) == ((~ A) & (~ B)))
    assert ((~ ((A | B) | C)) == (((~ A) & (~ B)) & (~ C)))
def test_De_Morgan():
    (A, B, C) = list(map(Boolean, symbols('A,B,C')))
    assert ((~ (A & B)) == ((~ A) | (~ B)))
    assert ((~ (A | B)) == ((~ A) & (~ B)))
    assert ((~ ((A | B) | C)) == (((~ A) & (~ B)) & (~ C)))