示例#1
0
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]]
示例#2
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)
示例#3
0
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])
示例#4
0
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)
示例#5
0
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()
示例#6
0
def test_processor_sampler_processor_property():
    processor = mock.Mock()
    sampler = cg.ProcessorSampler(processor=processor)
    assert sampler.processor is processor