def test_int_dims(self, dim): """Test random_quantum_channel is valid with dims {dim}.""" value = random_quantum_channel(dim) self.assertIsInstance(value, Stinespring) self.assertTrue(value.is_cptp()) self.assertEqual(np.product(value.input_dims()), dim) self.assertEqual(np.product(value.output_dims()), dim)
def test_rank(self, rank): """Test random_quantum_channel with fixed rank {rank}""" choi = Choi(random_quantum_channel(2, rank=rank)) # Get number of non-zero eigenvalues evals = np.linalg.eigvals(choi.data).round(8) value = len(evals[evals > 0]) self.assertEqual(value, rank)
def test_tuple_dims(self, dims): """Test random_quantum_channel is valid with dims {dims}.""" value = random_quantum_channel(dims) self.assertIsInstance(value, Stinespring) self.assertTrue(value.is_cptp()) self.assertEqual(value.input_dims(), dims) self.assertEqual(value.output_dims(), dims)
def test_fixed_seed(self): """Test fixing seed fixes output""" seed = 1532 value1 = random_quantum_channel(4, seed=seed) value2 = random_quantum_channel(4, seed=seed) self.assertEqual(value1, value2)