def test_with_local_processor(): sampler = cg.ProcessorSampler(processor=cg.engine.SimulatedLocalProcessor( processor_id='my-fancy-processor')) r = sampler.run(cirq.Circuit(cirq.measure(cirq.LineQubit(0), key='z'))) assert isinstance(r, cg.EngineResult) assert r.job_id == 'projects/fake_project/processors/my-fancy-processor/job/2' assert r.measurements['z'] == [[0]]
def test_run_circuit(circuit): processor = mock.Mock() sampler = cg.ProcessorSampler(processor=processor) params = [cirq.ParamResolver({'a': 1})] sampler.run_sweep(circuit, params, 5) processor.run_sweep.assert_called_with(params=params, program=circuit, repetitions=5)
def test_run_batch_bad_number_of_repetitions(): processor = mock.Mock() sampler = cg.ProcessorSampler(processor=processor) 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(): processor = mock.Mock() sampler = cg.ProcessorSampler(processor=processor) 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]) processor.run_batch.assert_called_with(params_list=params_list, programs=circuits, repetitions=5)
def test_run_batch_differing_repetitions(): processor = mock.Mock() job = mock.Mock() job.results.return_value = [] processor.run_sweep.return_value = job sampler = cg.ProcessorSampler(processor=processor) 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) processor.run_sweep.assert_called_with(params=params2, program=circuit2, repetitions=2) processor.run_batch.assert_not_called()
def test_processor_sampler_processor_property(): processor = mock.Mock() sampler = cg.ProcessorSampler(processor=processor) assert sampler.processor is processor