def test_not_global_seed(self, method): """Test fixing seed is locally scoped ({method} method).""" seed = 314159 test_cases = 100 random_density_matrix(2, method=method, seed=seed) rng_before = np.random.randint(1000, size=test_cases) random_density_matrix(2, method=method, seed=seed) rng_after = np.random.randint(1000, size=test_cases) self.assertFalse(np.all(rng_before == rng_after))
def test_density_matrix(self): """ Test that a random state with set seed will not affect later results. """ seed = 314159 test_cases = 100 random_density_matrix(4, seed=seed) rng_before = [np.random.randint(1000) for _ in range(test_cases)] random_density_matrix(4, seed=seed) rng_after = [np.random.randint(1000) for _ in range(test_cases)] array_equality = all( [rng_before[i] == rng_after[i] for i in range(test_cases)]) self.assertFalse(array_equality)
def test_expval_pauli_qargs(self, qubits): """Test expectation_value method for Pauli op""" seed = 1020 op = random_pauli(2, seed=seed) state = random_density_matrix(2**3, seed=seed) target = state.expectation_value(op.to_matrix(), qubits) expval = state.expectation_value(op, qubits) self.assertAlmostEqual(expval, target)
def test_expval_pauli_c_contiguous(self, pauli): """Test expectation_value method for Pauli op""" seed = 1020 op = Pauli(pauli) rho = random_density_matrix(2**op.num_qubits, seed=seed) rho._data = np.reshape(rho.data.flatten(order="C"), rho.data.shape, order="C") target = rho.expectation_value(op.to_matrix()) expval = rho.expectation_value(op) self.assertAlmostEqual(expval, target)
def random_density_matrix(length, rank=None, method='Hilbert-Schmidt', seed=None): """Deprecated in 0.8+ """ warnings.warn( 'The random_density_matrix() function in qiskit.tools.qi has been ' 'deprecated and will be removed in the future. Instead use ' 'the function in qiskit.quantum_info.random', DeprecationWarning) return random.random_density_matrix(length, rank, method, seed)
def test_fixed_seed(self, method): """Test fixing seed fixes output ({method} method)""" seed = 1532 value1 = random_density_matrix(4, method=method, seed=seed) value2 = random_density_matrix(4, method=method, seed=seed) self.assertEqual(value1, value2)
def test_int_dims(self, dim, method): """Test random_density_matrix {method} method is valid with dims {dim}.""" value = random_density_matrix(dim, method=method) self.assertIsInstance(value, DensityMatrix) self.assertTrue(value.is_valid()) self.assertEqual(np.product(value.dims()), dim)
def test_tuple_dims(self, dims, method): """Test random_density_matrix {method} method is valid with dims {dims}.""" value = random_density_matrix(dims, method=method) self.assertIsInstance(value, DensityMatrix) self.assertTrue(value.is_valid()) self.assertEqual(value.dims(), dims)
def test_random_density_matrix(self): random_hs_matrix = random_density_matrix(2, seed=42) self.assertEqual((2, 2), random_hs_matrix.shape) random_bures_matrix = random_density_matrix(2, method='Bures', seed=40) self.assertEqual((2, 2), random_bures_matrix.shape)