def test_add(self): """Test add method.""" # Random input test state rho_init = DensityMatrix(self.rand_rho(2)) stine1, stine2 = self.rand_matrix(16, 2), self.rand_matrix(16, 2) # Random Single-Stinespring maps chan1 = Stinespring(stine1, input_dims=2, output_dims=4) chan2 = Stinespring(stine2, input_dims=2, output_dims=4) rho_targ = (rho_init @ chan1) + (rho_init @ chan2) chan = chan1.add(chan2) self.assertEqual(rho_init.evolve(chan), rho_targ) chan = chan1 + chan2 self.assertEqual(rho_init.evolve(chan), rho_targ) # Random Single-Stinespring maps chan = Stinespring((stine1, stine2)) rho_targ = 2 * (rho_init @ chan) chan = chan.add(chan) self.assertEqual(rho_init.evolve(chan), rho_targ)
def test_add(self): """Test add method.""" # Random input test state rho = self.rand_rho(2) stine1, stine2 = self.rand_matrix(16, 2), self.rand_matrix(16, 2) # Random Single-Stinespring maps chan1 = Stinespring(stine1, input_dim=2, output_dim=4) chan2 = Stinespring(stine2, input_dim=2, output_dim=4) targ = chan1._evolve(rho) + chan2._evolve(rho) chan = chan1.add(chan2) self.assertAllClose(chan._evolve(rho), targ) chan = chan1 + chan2 self.assertAllClose(chan._evolve(rho), targ) # Random Single-Stinespring maps chan = Stinespring((stine1, stine2)) targ = 2 * chan._evolve(rho) chan = chan.add(chan) self.assertAllClose(chan._evolve(rho), targ)