def test_engine_result_from_result(): res = cg.EngineResult( job_id='my_job_id', job_finished_time=_DT, params=None, measurements={'a': np.array([[0, 0], [1, 1]]), 'b': np.array([[0, 0, 0], [1, 1, 1]])}, ) res2 = MyResult() assert res == cg.EngineResult.from_result(res2, job_id='my_job_id', job_finished_time=_DT)
def test_engine_result_eq(): res1 = cg.EngineResult( job_id='my_job_id', job_finished_time=_DT, params=None, measurements={'a': np.array([[0, 0], [1, 1]]), 'b': np.array([[0, 0, 0], [1, 1, 1]])}, ) res2 = cg.EngineResult( job_id='my_job_id', job_finished_time=_DT, params=None, measurements={'a': np.array([[0, 0], [1, 1]]), 'b': np.array([[0, 0, 0], [1, 1, 1]])}, ) assert res1 == res2 res3 = cg.EngineResult( job_id='my_other_job_id', job_finished_time=_DT, params=None, measurements={'a': np.array([[0, 0], [1, 1]]), 'b': np.array([[0, 0, 0], [1, 1, 1]])}, ) assert res1 != res3
def test_engine_result(): res = cg.EngineResult( job_id='my_job_id', job_finished_time=_DT, params=None, measurements={'a': np.array([[0, 0], [1, 1]]), 'b': np.array([[0, 0, 0], [1, 1, 1]])}, ) assert res.job_id == 'my_job_id' assert res.job_finished_time <= datetime.datetime.now(tz=datetime.timezone.utc) assert res.measurements['a'].shape == (2, 2) cirq.testing.assert_equivalent_repr(res, global_vals={'cirq_google': cg})
def test_run_delegation(create_job, get_results): dt = datetime.datetime.now(tz=datetime.timezone.utc) create_job.return_value = ( 'steve', quantum.QuantumJob( name='projects/a/programs/b/jobs/steve', execution_status=quantum.ExecutionStatus(state=quantum.ExecutionStatus.State.SUCCESS), update_time=dt, ), ) get_results.return_value = quantum.QuantumResult( result=util.pack_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 == cg.EngineResult( params=cirq.ParamResolver({'a': 1.0}), measurements={'q': np.array([[False], [True], [True], [False]], dtype=bool)}, job_id='steve', job_finished_time=dt, )