def test_copied_circuit_execution(backend, accelerators, deep): """Check that circuit copy execution is equivalent to original circuit.""" theta = 0.1234 c1 = Circuit(4, accelerators) c1.add([gates.X(0), gates.X(1), gates.CU1(0, 1, theta)]) c1.add([gates.H(2), gates.H(3), gates.CU1(2, 3, theta)]) if not deep and accelerators is not None: with pytest.raises(ValueError): c2 = c1.copy(deep) else: c2 = c1.copy(deep) K.assert_allclose(c2(), c1())
def test_circuit_copy(backend, accelerators, deep): """Check that circuit copy execution is equivalent to original circuit.""" original_backend = qibo.get_backend() qibo.set_backend(backend) theta = 0.1234 c1 = Circuit(2, accelerators) c1.add([gates.X(0), gates.X(1), gates.CZPow(0, 1, theta)]) if not deep and accelerators is not None: with pytest.raises(ValueError): c2 = c1.copy(deep) else: c2 = c1.copy(deep) target_state = c1.execute().numpy() final_state = c2.execute().numpy() np.testing.assert_allclose(final_state, target_state) qibo.set_backend(original_backend)