Example #1
0
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)
Example #2
0
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
Example #3
0
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})
Example #4
0
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,
    )