def test_append_gate_4(self, qudit_index: int) -> None: circuit = Circuit(4) circuit.append_gate(CNOTGate(), [0, 1]) circuit.append_gate(CNOTGate(), [1, 2]) circuit.append_gate(CNOTGate(), [2, 3]) circuit.append_gate(CNOTGate(), [0, 1]) circuit.append_gate(CNOTGate(), [1, 2]) circuit.append_gate(CNOTGate(), [2, 3]) circuit.append_gate(CNOTGate(), [0, 1]) circuit.append_gate(CNOTGate(), [1, 2]) circuit.append_gate(CNOTGate(), [2, 3]) circuit.pop_qudit(qudit_index) assert circuit.get_size() == 3 assert len(circuit.get_radixes()) == 3 assert circuit.get_radixes().count(2) == 3 assert circuit.get_num_operations() == 6 assert circuit[0, 0].gate == CNOTGate() assert circuit[0, 0].location == (0, 1) assert circuit[1, 1].gate == CNOTGate() assert circuit[1, 1].location == (1, 2) assert circuit[2, 0].gate == CNOTGate() assert circuit[2, 0].location == (0, 1) assert circuit[3, 1].gate == CNOTGate() assert circuit[3, 1].location == (1, 2) assert circuit[4, 0].gate == CNOTGate() assert circuit[4, 0].location == (0, 1) assert circuit[5, 1].gate == CNOTGate() assert circuit[5, 1].location == (1, 2)
def test_index_invalid3(self) -> None: circuit = Circuit(4, [2, 2, 3, 3]) try: circuit.pop_qudit(5) except IndexError: return except BaseException: assert False, 'Unexpected Exception.'
def test_type_invalid_2(self, not_an_int: Any) -> None: circuit = Circuit(4, [2, 2, 3, 3]) try: circuit.pop_qudit(not_an_int) except TypeError: return except BaseException: assert False, 'Unexpected Exception.'
def test_type_valid_2(self, an_int: int) -> None: circuit = Circuit(4, [2, 2, 3, 3]) try: circuit.pop_qudit(an_int) except TypeError: assert False, 'Unexpected TypeError.' except BaseException: return
def test_index_invalid_empty(self) -> None: circuit = Circuit(1) assert circuit.get_size() == 1 try: circuit.pop_qudit(0) except ValueError: return except BaseException: assert False, 'Unexpected Exception.'
def test_multi_gate_1( self, qudit_index: int, gen_random_utry_np: Any, ) -> None: circuit = Circuit(4) three_qubit_gate = ConstantUnitaryGate(gen_random_utry_np(8)) circuit.append_gate(three_qubit_gate, [1, 2, 3]) circuit.append_gate(three_qubit_gate, [0, 2, 3]) circuit.append_gate(three_qubit_gate, [0, 1, 3]) circuit.append_gate(three_qubit_gate, [0, 1, 2]) circuit.pop_qudit(qudit_index) assert circuit.get_size() == 3 assert len(circuit.get_radixes()) == 3 assert circuit.get_radixes().count(2) == 3 assert circuit.get_num_operations() == 1 assert circuit.get_num_cycles() == 1 assert circuit[0, 0].gate == three_qubit_gate assert circuit[0, 0].location == (0, 1, 2) assert circuit[0, 1].gate == three_qubit_gate assert circuit[0, 1].location == (0, 1, 2) assert circuit[0, 2].gate == three_qubit_gate assert circuit[0, 2].location == (0, 1, 2)