def test_get_initial_state(backend): c = Circuit(2) final_state = c.get_initial_state() target_state = np.zeros(4) target_state[0] = 1 K.assert_allclose(final_state, target_state) with pytest.raises(ValueError): state = c.get_initial_state(np.zeros(2**3)) with pytest.raises(ValueError): final_state = c.get_initial_state(np.zeros((2, 2))) with pytest.raises(ValueError): final_state = c.get_initial_state(np.zeros((2, 2, 2))) with pytest.raises(TypeError): final_state = c.get_initial_state(0) c = Circuit(2) c.check_initial_state_shape = False with pytest.raises(TypeError): final_state = c.get_initial_state(0)
def test_bad_initial_state(backend, accelerators): """Check that errors are raised when bad initial state is passed.""" original_backend = qibo.get_backend() qibo.set_backend(backend) import tensorflow as tf c = Circuit(2, accelerators) c.add([gates.H(0), gates.H(1)]) with pytest.raises(ValueError): final_state = c(initial_state=np.zeros(2**3)) with pytest.raises(ValueError): final_state = c(initial_state=np.zeros((2, 2))) with pytest.raises(ValueError): final_state = c(initial_state=np.zeros((2, 2, 2))) with pytest.raises(TypeError): final_state = c(initial_state=0) c = Circuit(2, accelerators) c.check_initial_state_shape = False with pytest.raises(TypeError): final_state = c(initial_state=0) qibo.set_backend(original_backend)