コード例 #1
0
    def test_permute(self, permutation, expected_pauli):
        """Test the permute method."""
        pauli_sum = PauliSumOp(SparsePauliOp.from_list([("XYZ", 1)]))
        expected = PauliSumOp(SparsePauliOp.from_list([(expected_pauli, 1)]))
        permuted = pauli_sum.permute(permutation)

        with self.subTest(msg="test permutated object"):
            self.assertEqual(permuted, expected)

        with self.subTest(msg="test original object is unchanged"):
            original = PauliSumOp(SparsePauliOp.from_list([("XYZ", 1)]))
            self.assertEqual(pauli_sum, original)
コード例 #2
0
    def test_permute(self):
        """permute test"""
        pauli_sum = PauliSumOp(SparsePauliOp((X ^ Y ^ Z).primitive))
        expected = PauliSumOp(SparsePauliOp((X ^ I ^ Y ^ Z ^ I).primitive))

        self.assertEqual(pauli_sum.permute([1, 2, 4]), expected)

        pauli_sum = PauliSumOp(SparsePauliOp((X ^ Y ^ Z).primitive))
        expected = PauliSumOp(SparsePauliOp((Z ^ Y ^ X).primitive))
        self.assertEqual(pauli_sum.permute([2, 1, 0]), expected)

        with self.assertRaises(OpflowError):
            pauli_sum.permute([1, 2, 1])

        with self.assertRaises(OpflowError):
            pauli_sum.permute([1, 2, -1])
コード例 #3
0
    def test_permute(self):
        """ permute test """
        pauli_sum = PauliSumOp(SparsePauliOp((X ^ Y ^ Z).primitive))
        expected = PauliSumOp(SparsePauliOp((X ^ I ^ Y ^ Z ^ I).primitive))

        self.assertEqual(pauli_sum.permute([1, 2, 4]), expected)
コード例 #4
0
    def test_permute_invalid(self, permutation):
        """Test the permute method raises an error on invalid permutations."""
        pauli_sum = PauliSumOp(SparsePauliOp((X ^ Y ^ Z).primitive))

        with self.assertRaises(OpflowError):
            pauli_sum.permute(permutation)