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
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))