def setup_run_circuit_with_result_(client, result): client().create_program.return_value = ( 'prog', qtypes.QuantumProgram(name='projects/proj/programs/prog')) client().create_job.return_value = ( 'job-id', qtypes.QuantumJob(name='projects/proj/programs/prog/jobs/job-id', execution_status={'state': 'READY'})) client().get_job.return_value = qtypes.QuantumJob( execution_status={'state': 'SUCCESS'}) client().get_job_results.return_value = qtypes.QuantumResult(result=result)
def test_job_results(client_constructor): grpc_client = setup_mock_(client_constructor) result = qtypes.QuantumResult( parent='projects/proj/programs/prog/jobs/job0') grpc_client.get_quantum_result.return_value = result client = EngineClient() assert client.get_job_results('proj', 'prog', 'job0') == result assert grpc_client.get_quantum_result.call_args[0] == ( 'projects/proj/programs/prog/jobs/job0', )
def test_results(get_job_results): qjob = qtypes.QuantumJob(execution_status=qtypes.ExecutionStatus( state=qtypes.ExecutionStatus.State.SUCCESS)) results = qtypes.QuantumResult(result=_to_any( Merge( """ sweep_results: [{ repetitions: 4, parameterized_results: [{ params: { assignments: { key: 'a' value: 1 } }, measurement_results: { key: 'q' qubit_measurement_results: [{ qubit: { id: '1_1' } results: '\006' }] } },{ params: { assignments: { key: 'a' value: 2 } }, measurement_results: { key: 'q' qubit_measurement_results: [{ qubit: { id: '1_1' } results: '\005' }] } }] }] """, v2.result_pb2.Result()))) get_job_results.return_value = results job = cg.EngineJob('a', 'b', 'steve', EngineContext(), _job=qjob) data = job.results() assert str(data[0]) == 'q=0110' assert str(data[1]) == 'q=1010' get_job_results.assert_called_once_with('a', 'b', 'steve')
def test_calibration_defaults(get_job_results): qjob = qtypes.QuantumJob(execution_status=qtypes.ExecutionStatus( state=qtypes.ExecutionStatus.State.SUCCESS)) result = v2.calibration_pb2.FocusedCalibrationResult() result.results.add() get_job_results.return_value = qtypes.QuantumResult(result=_to_any(result)) job = cg.EngineJob('a', 'b', 'steve', EngineContext(), _job=qjob) data = job.calibration_results() get_job_results.assert_called_once_with('a', 'b', 'steve') assert len(data) == 1 assert data[0].code == v2.calibration_pb2.CALIBRATION_RESULT_UNSPECIFIED assert data[0].error_message is None assert data[0].token is None assert data[0].valid_until is None assert len(data[0].metrics) == 0
def setup_run_circuit_with_result_(client_constructor, result): client = mock.Mock() client_constructor.return_value = client client.create_quantum_program.return_value = qtypes.QuantumProgram( name='projects/project-id/programs/test') client.create_quantum_job.return_value = qtypes.QuantumJob( name='projects/project-id/programs/test/jobs/test', execution_status={'state': 'READY'}) client.get_quantum_job.return_value = qtypes.QuantumJob( name='projects/project-id/programs/test/jobs/test', execution_status={'state': 'SUCCESS'}) client.get_quantum_result.return_value = qtypes.QuantumResult( result=result) return client
def test_run_delegation(create_job, get_results): create_job.return_value = ( 'steve', qtypes.QuantumJob( name='projects/a/programs/b/jobs/steve', execution_status=qtypes.ExecutionStatus( state=qtypes.ExecutionStatus.State.SUCCESS), ), ) get_results.return_value = qtypes.QuantumResult(result=_to_any( Merge( """sweep_results: [{ repetitions: 4, parameterized_results: [{ params: { assignments: { key: 'a' value: 1 } }, measurement_results: { key: 'q' qubit_measurement_results: [{ qubit: { id: '1_1' } results: '\006' }] } }] }] """, v2.result_pb2.Result(), ))) program = cg.EngineProgram('a', 'b', EngineContext()) param_resolver = cirq.ParamResolver({}) results = program.run(job_id='steve', repetitions=10, param_resolver=param_resolver, processor_ids=['mine']) assert results == cirq.Result( params=cirq.ParamResolver({'a': 1.0}), measurements={ 'q': np.array([[False], [True], [True], [False]], dtype=np.bool) }, )
RESULTS = qtypes.QuantumResult(result=_to_any( Merge( """ sweep_results: [{ repetitions: 4, parameterized_results: [{ params: { assignments: { key: 'a' value: 1 } }, measurement_results: { key: 'q' qubit_measurement_results: [{ qubit: { id: '1_1' } results: '\006' }] } },{ params: { assignments: { key: 'a' value: 2 } }, measurement_results: { key: 'q' qubit_measurement_results: [{ qubit: { id: '1_1' } results: '\005' }] } }] }] """, v2.result_pb2.Result())))
RESULTS = qtypes.QuantumResult(result=_to_any( Merge( """ sweep_results: [{ repetitions: 4, parameterized_results: [{ params: { assignments: { key: 'a' value: 1 } }, measurement_results: { key: 'q' qubit_measurement_results: [{ qubit: { id: '1_1' } results: '\006' }] } },{ params: { assignments: { key: 'a' value: 2 } }, measurement_results: { key: 'q' qubit_measurement_results: [{ qubit: { id: '1_1' } results: '\005' }] } }] }] """, v2.result_pb2.Result())))