def test_expval_pauli_qargs(self, qubits):
     """Test expectation_value method for Pauli op"""
     seed = 1020
     op = random_pauli(2, seed=seed)
     state = random_statevector(2**3, seed=seed)
     target = state.expectation_value(op.to_matrix(), qubits)
     expval = state.expectation_value(op, qubits)
     self.assertAlmostEqual(expval, target)
示例#2
0
 def test_evolve_clifford_qargs(self):
     """Test evolve method for random Clifford"""
     cliff = random_clifford(3, seed=10)
     op = Operator(cliff)
     pauli = random_pauli(5, seed=10)
     qargs = [3, 0, 1]
     value = Operator(pauli.evolve(cliff, qargs=qargs))
     target = Operator(pauli).compose(op.adjoint(), qargs=qargs).dot(op, qargs=qargs)
     self.assertEqual(value, target)
示例#3
0
    def test_expval_random(self, num_qubits):
        """Test expectation_value method of random Cliffords"""

        for _ in range(self.samples):
            cliff = random_clifford(num_qubits, seed=self.rng)
            op = random_pauli(num_qubits, seed=self.rng)
            qc = cliff.to_circuit()
            stab = StabilizerState(cliff)
            exp_val = stab.expectation_value(op)
            target = Statevector(qc).expectation_value(op)
            self.assertAlmostEqual(exp_val, target)
示例#4
0
    def test_expval_random_subsystem(self, num_qubits):
        """Test expectation_value method of random Cliffords and a subsystem"""

        for _ in range(self.samples):
            cliff = random_clifford(num_qubits, seed=self.rng)
            op = random_pauli(2, seed=self.rng)
            qargs = np.random.choice(num_qubits, size=2, replace=False)
            qc = cliff.to_circuit()
            stab = StabilizerState(cliff)
            exp_val = stab.expectation_value(op, qargs)
            target = Statevector(qc).expectation_value(op, qargs)
            self.assertAlmostEqual(exp_val, target)
示例#5
0
 def test_init_pauli(self, num_qubits):
     """Test initialization from pauli."""
     pauli = random_pauli(num_qubits, seed=self.rng)
     stab1 = StabilizerState(pauli)
     stab2 = StabilizerState(stab1)
     self.assertEqual(stab1, stab2)