コード例 #1
0
 def test_type_invalid_2(self, not_an_int: Any) -> None:
     circuit = Circuit(4, [2, 2, 3, 3])
     try:
         circuit.point(not_an_int)
     except TypeError:
         return
     except BaseException:
         assert False, 'Unexpected Exception.'
コード例 #2
0
 def test_type_valid_4(self) -> None:
     circuit = Circuit(4, [2, 2, 3, 3])
     try:
         circuit.point(Operation(HGate(), [0]))
     except TypeError:
         assert False, 'Unexpected TypeError.'
     except BaseException:
         return
コード例 #3
0
 def test_type_valid_1(self) -> None:
     circuit = Circuit(1)
     try:
         circuit.point(HGate())
     except TypeError:
         assert False, 'Unexpected TypeError.'
     except BaseException:
         return
コード例 #4
0
    def test_invalid_value_2(self) -> None:
        circuit = Circuit(2)
        circuit.append_gate(HGate(), [0])
        circuit.append_gate(CNOTGate(), [0, 1])

        try:
            circuit.point(XGate())
        except ValueError:
            return

        assert False, 'Should not have reached here.'
コード例 #5
0
    def test_example(self) -> None:
        circuit = Circuit(1)

        opH = Operation(HGate(), [0])
        circuit.append(opH)
        assert circuit.point(opH).__repr__(
        ) == 'CircuitPoint(cycle=0, qudit=0)'

        opX = Operation(XGate(), [0])
        circuit.append(opX)
        assert circuit.point(opX).__repr__(
        ) == 'CircuitPoint(cycle=1, qudit=0)'
コード例 #6
0
    def test_correctness_1(self, r6_qudit_circuit: Circuit) -> None:
        for x in range(r6_qudit_circuit.get_num_cycles()):
            for y in range(r6_qudit_circuit.get_size()):
                op = r6_qudit_circuit._circuit[x][y]

                if op is not None:
                    point = r6_qudit_circuit.point(op, (x, y))
                    assert r6_qudit_circuit.get_operation(point) is op
                    point = r6_qudit_circuit.point(op, (x, y), (x, y))
                    assert r6_qudit_circuit.get_operation(point) is op

                    point = r6_qudit_circuit.point(op.gate, (x, y))
                    assert r6_qudit_circuit.get_operation(point) is op
                    point = r6_qudit_circuit.point(op.gate, (x, y), (x, y))
                    assert r6_qudit_circuit.get_operation(point) is op
コード例 #7
0
 def test_return_type(self) -> None:
     circuit = Circuit(5)
     for i in range(5):
         circuit.append_gate(HGate(), [0])
         circuit.append_gate(HGate(), [1])
         circuit.append_gate(HGate(), [2])
         circuit.append_gate(HGate(), [3])
         circuit.append_gate(HGate(), [4])
     assert isinstance(circuit.point(HGate()), CircuitPoint)
コード例 #8
0
    def test_correctness_2(self) -> None:
        circuit = Circuit(2)
        circuit.append_gate(HGate(), [0])
        circuit.append_gate(CNOTGate(), [0, 1])
        assert circuit.point(HGate()) == (0, 0)
        assert circuit.point(CNOTGate()) == (1, 0)
        assert circuit.point(Operation(HGate(), [0])) == (0, 0)
        assert circuit.point(Operation(CNOTGate(), [0, 1])) == (1, 0)

        try:
            circuit.point(Operation(CNOTGate(), [1, 0]))
        except ValueError:
            return
        assert False, 'Should not have reached here.'