def test_flip_bits_equality_and_hash():
    gate1 = _gates.FlipBits([1, 0, 0, 1])
    gate2 = _gates.FlipBits([1, 0, 0, 1])
    gate3 = _gates.FlipBits([0, 1, 0, 1])
    assert gate1 == gate2
    assert hash(gate1) == hash(gate2)
    assert gate1 != gate3
    assert gate1 != _gates.X
def test_error_on_tuple_input():
    with pytest.raises(ValueError):
        _gates.FlipBits(2) | (None, None)
def test_flip_bits_str():
    gate1 = _gates.FlipBits([0, 0, 1])
    assert str(gate1) == "FlipBits(4)"