def test_run_engine_program(): engine = mock.Mock() sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp', gate_set=cg.XMON) program = mock.Mock(spec=cg.EngineProgram) params = [cirq.ParamResolver({'a': 1})] sampler.run_sweep(program, params, 5) program.run_sweep.assert_called_with(params=params, processor_ids=['tmp'], repetitions=5) engine.run_sweep.assert_not_called()
def test_run_circuit(circuit): engine = mock.Mock() sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp') params = [cirq.ParamResolver({'a': 1})] sampler.run_sweep(circuit, params, 5) engine.run_sweep.assert_called_with(params=params, processor_ids=['tmp'], program=circuit, repetitions=5)
def test_run_circuit(circuit): engine = mock.Mock() with cirq.testing.assert_deprecated( 'Use cirq_google.ProcessorSampler instead.', deadline='v0.16'): sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp') params = [cirq.ParamResolver({'a': 1})] sampler.run_sweep(circuit, params, 5) engine.run_sweep.assert_called_with(params=params, processor_ids=['tmp'], program=circuit, repetitions=5)
def test_run_batch_bad_number_of_repetitions(): engine = mock.Mock() sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp') a = cirq.LineQubit(0) circuit1 = cirq.Circuit(cirq.X(a)) circuit2 = cirq.Circuit(cirq.Y(a)) params1 = [cirq.ParamResolver({'t': 1})] params2 = [cirq.ParamResolver({'t': 2})] circuits = [circuit1, circuit2] params_list = [params1, params2] with pytest.raises(ValueError, match='2 and 3'): sampler.run_batch(circuits, params_list, [5, 5, 5])
def test_run_batch_bad_number_of_repetitions(): engine = mock.Mock() with cirq.testing.assert_deprecated( 'Use cirq_google.ProcessorSampler instead.', deadline='v0.16'): sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp') a = cirq.LineQubit(0) circuit1 = cirq.Circuit(cirq.X(a)) circuit2 = cirq.Circuit(cirq.Y(a)) params1 = [cirq.ParamResolver({'t': 1})] params2 = [cirq.ParamResolver({'t': 2})] circuits = [circuit1, circuit2] params_list = [params1, params2] with pytest.raises(ValueError, match='2 and 3'): sampler.run_batch(circuits, params_list, [5, 5, 5])
def test_run_batch_identical_repetitions(): engine = mock.Mock() sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp') a = cirq.LineQubit(0) circuit1 = cirq.Circuit(cirq.X(a)) circuit2 = cirq.Circuit(cirq.Y(a)) params1 = [cirq.ParamResolver({'t': 1})] params2 = [cirq.ParamResolver({'t': 2})] circuits = [circuit1, circuit2] params_list = [params1, params2] sampler.run_batch(circuits, params_list, [5, 5]) engine.run_batch.assert_called_with(params_list=params_list, processor_ids=['tmp'], programs=circuits, repetitions=5)
def test_run_batch_identical_repetitions(): engine = mock.Mock() with cirq.testing.assert_deprecated( 'Use cirq_google.ProcessorSampler instead.', deadline='v0.16'): sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp') a = cirq.LineQubit(0) circuit1 = cirq.Circuit(cirq.X(a)) circuit2 = cirq.Circuit(cirq.Y(a)) params1 = [cirq.ParamResolver({'t': 1})] params2 = [cirq.ParamResolver({'t': 2})] circuits = [circuit1, circuit2] params_list = [params1, params2] sampler.run_batch(circuits, params_list, [5, 5]) engine.run_batch.assert_called_with(params_list=params_list, processor_ids=['tmp'], programs=circuits, repetitions=5)
def test_run_batch_differing_repetitions(): engine = mock.Mock() job = mock.Mock() job.results.return_value = [] engine.run_sweep.return_value = job sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp', gate_set=cg.XMON) a = cirq.LineQubit(0) circuit1 = cirq.Circuit(cirq.X(a)) circuit2 = cirq.Circuit(cirq.Y(a)) params1 = [cirq.ParamResolver({'t': 1})] params2 = [cirq.ParamResolver({'t': 2})] circuits = [circuit1, circuit2] params_list = [params1, params2] repetitions = [1, 2] sampler.run_batch(circuits, params_list, repetitions) engine.run_sweep.assert_called_with( gate_set=cg.XMON, params=params2, processor_ids=['tmp'], program=circuit2, repetitions=2 ) engine.run_batch.assert_not_called()
def test_run_batch_differing_repetitions(): engine = mock.Mock() job = mock.Mock() job.results.return_value = [] engine.run_sweep.return_value = job with cirq.testing.assert_deprecated( 'Use cirq_google.ProcessorSampler instead.', deadline='v0.16'): sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp') a = cirq.LineQubit(0) circuit1 = cirq.Circuit(cirq.X(a)) circuit2 = cirq.Circuit(cirq.Y(a)) params1 = [cirq.ParamResolver({'t': 1})] params2 = [cirq.ParamResolver({'t': 2})] circuits = [circuit1, circuit2] params_list = [params1, params2] repetitions = [1, 2] sampler.run_batch(circuits, params_list, repetitions) engine.run_sweep.assert_called_with(params=params2, processor_ids=['tmp'], program=circuit2, repetitions=2) engine.run_batch.assert_not_called()
def test_engine_sampler_engine_property(): engine = mock.Mock() sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp', gate_set=cg.XMON) assert sampler.engine is engine
def test_engine_sampler_engine_property(): engine = mock.Mock() with cirq.testing.assert_deprecated( 'Use cirq_google.ProcessorSampler instead.', deadline='v0.16'): sampler = cg.QuantumEngineSampler(engine=engine, processor_id='tmp') assert sampler.engine is engine