def test_pre_measure_eng(self, tol): """Test that the pre_measure method operates as expected by initializing the engine correctly""" dev = qml.device("strawberryfields.gbs", wires=4, cutoff_dim=3) prog = Program(4) op1 = GraphEmbed(0.1767767 * np.ones((4, 4)), mean_photon_per_mode=0.25) prog.append(op1, prog.register) dev.prog = prog dev.pre_measure() assert dev.eng.backend_name == "gaussian" assert dev.eng.backend_options == {"cutoff_dim": 3}
def test_pre_measure_state_and_samples(self, tol): """Test that the pre_measure method operates as expected in analytic mode by generating the correct output state and not generating samples""" dev = qml.device("strawberryfields.gbs", wires=4, cutoff_dim=3) prog = Program(4) op1 = GraphEmbed(0.1767767 * np.ones((4, 4)), mean_photon_per_mode=0.25) prog.append(op1, prog.register) dev.prog = prog dev.pre_measure() assert np.allclose(dev.state.displacement(), np.zeros(4)) assert np.allclose(dev.state.cov(), target_cov, atol=tol) assert dev.samples.size == 0
def test_pre_measure_state_and_samples_non_analytic(self, tol): """Test that the pre_measure method operates as expected in non-analytic mode by generating the correct output state and samples of the right shape""" dev = qml.device("strawberryfields.gbs", wires=4, cutoff_dim=3, analytic=False, shots=2) prog = Program(4) op1 = GraphEmbed(0.1767767 * np.ones((4, 4)), mean_photon_per_mode=0.25) op2 = MeasureFock() prog.append(op1, prog.register) prog.append(op2, prog.register) dev.prog = prog dev.pre_measure() assert np.allclose(dev.state.displacement(), np.zeros(4)) assert np.allclose(dev.state.cov(), target_cov, atol=tol) assert dev.samples.shape == (2, 4)