コード例 #1
0
 def test_previous_instruction_in_scope_failures(self):
     """Test the failure paths of the peek and pop methods for retrieving the most recent
     instruction in a scope."""
     test = QuantumCircuit(1, 1)
     with self.assertRaisesRegex(CircuitError, r"This circuit contains no instructions\."):
         test._peek_previous_instruction_in_scope()
     with self.assertRaisesRegex(CircuitError, r"This circuit contains no instructions\."):
         test._pop_previous_instruction_in_scope()
     with test.for_loop(range(2)):
         with self.assertRaisesRegex(CircuitError, r"This scope contains no instructions\."):
             test._peek_previous_instruction_in_scope()
         with self.assertRaisesRegex(CircuitError, r"This scope contains no instructions\."):
             test._pop_previous_instruction_in_scope()
コード例 #2
0
    def test_pop_previous_instruction_removes_parameters(self):
        """Test that the private "pop instruction" method removes parameters from the parameter
        table if that instruction is the only instance."""
        x, y = Parameter("x"), Parameter("y")
        test = QuantumCircuit(1, 1)
        test.rx(y, 0)
        last_instructions = test.u(x, y, 0, 0)
        self.assertEqual({x, y}, set(test.parameters))

        instruction = test._pop_previous_instruction_in_scope()
        self.assertEqual(list(last_instructions), [instruction])
        self.assertEqual({y}, set(test.parameters))