示例#1
0
def test_run_context_to_proto(pass_out: bool) -> None:
    msg = v2.run_context_pb2.RunContext() if pass_out else None
    out = v2.run_context_to_proto(None, 10, out=msg)
    if pass_out:
        assert out is msg
    assert len(out.parameter_sweeps) == 1
    assert v2.sweep_from_proto(out.parameter_sweeps[0].sweep) == cirq.UnitSweep
    assert out.parameter_sweeps[0].repetitions == 10

    sweep = cirq.Linspace('a', 0, 1, 21)
    msg = v2.run_context_pb2.RunContext() if pass_out else None
    out = v2.run_context_to_proto(sweep, 100, out=msg)
    if pass_out:
        assert out is msg
    assert len(out.parameter_sweeps) == 1
    assert v2.sweep_from_proto(out.parameter_sweeps[0].sweep) == sweep
    assert out.parameter_sweeps[0].repetitions == 100
示例#2
0
文件: engine.py 项目: towynlin/Cirq
 def _serialize_run_context(
     self,
     sweeps: 'cirq.Sweepable',
     repetitions: int,
 ) -> any_pb2.Any:
     if self.proto_version != ProtoVersion.V2:
         raise ValueError(
             f'invalid run context proto version: {self.proto_version}')
     return util.pack_any(v2.run_context_to_proto(sweeps, repetitions))