def test_with_nested_iterable(): assert QubitSet([0, 1, [2, 3]]) == tuple([Qubit(0), Qubit(1), Qubit(2), Qubit(3)])
def test_with_qubit_set(): qubits = QubitSet([0, 1]) assert QubitSet([qubits, [2, 3]]) == tuple([Qubit(0), Qubit(1), Qubit(2), Qubit(3)])
def test_map_happy_case(): mapping = {Qubit(0): Qubit(11), Qubit(1): Qubit(5)} qubits = QubitSet([0, 1]) mapped_qubits = qubits.map(mapping) assert mapped_qubits == QubitSet([11, 5])
def test_with_single(): assert QubitSet(0) == tuple([Qubit(0)])
def test_with_iterable(): assert QubitSet([0, 1]) == tuple([Qubit(0), Qubit(1)])
def test_init_with_sequence(): target = [0, Qubit(1)] instr = Instruction(Gate.CNot(), target) assert instr.target == QubitSet([0, 1])
def qubits(): return QubitSet([0, Qubit(1)])
def test_new_with_int(): qubit = 0 qubit_new = Qubit.new(qubit) assert qubit_new == qubit assert qubit_new is not qubit
def test_init_with_qubit(): target = Qubit(0) instr = Instruction(Gate.H(), target) assert instr.target == QubitSet(0)
def test_index_gte_zero(): Qubit(0) Qubit(5)
def test_new_with_qubit(): qubit = Qubit(0) qubit_new = Qubit.new(qubit) assert qubit_new == qubit assert qubit_new is qubit
def test_index_non_int(): Qubit("not a number")
def test_index_lt_zero(): Qubit(-1)
def qubit(): return Qubit(5)
def test_index_gte_zero(qubit_index): Qubit(qubit_index)
def test_index_non_int(qubit_arg): Qubit(qubit_arg)