def test_create_blackbird_program(aws_session, arn, blackbird_program):
    aws_session.create_quantum_task.return_value = arn
    shots = 21
    AwsQuantumTask.create(aws_session, XANADU_ARN, blackbird_program,
                          S3_TARGET, shots)

    _assert_create_quantum_task_called_with(
        aws_session,
        XANADU_ARN,
        blackbird_program.json(),
        S3_TARGET,
        shots,
    )
def test_create_openqasm_program(aws_session, arn, openqasm_program):
    aws_session.create_quantum_task.return_value = arn
    shots = 21
    AwsQuantumTask.create(aws_session, SIMULATOR_ARN, openqasm_program,
                          S3_TARGET, shots)

    _assert_create_quantum_task_called_with(
        aws_session,
        SIMULATOR_ARN,
        openqasm_program.json(),
        S3_TARGET,
        shots,
    )
示例#3
0
def test_create_with_tags(device_arn, device_parameters_class, aws_session,
                          circuit):
    mocked_task_arn = "task-arn-tags"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    shots = 53
    tags = {"state": "washington"}

    task = AwsQuantumTask.create(aws_session,
                                 device_arn,
                                 circuit,
                                 S3_TARGET,
                                 shots,
                                 tags=tags)
    assert task == AwsQuantumTask(mocked_task_arn, aws_session,
                                  GateModelQuantumTaskResult.from_string)
    _assert_create_quantum_task_called_with(
        aws_session,
        device_arn,
        circuit,
        S3_TARGET,
        shots,
        device_parameters_class(paradigmParameters=GateModelParameters(
            qubitCount=circuit.qubit_count)),
        tags,
    )
示例#4
0
def test_from_circuit_with_disabled_rewiring(device_arn,
                                             device_parameters_class,
                                             aws_session, circuit):
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    shots = 53

    task = AwsQuantumTask.create(aws_session,
                                 device_arn,
                                 circuit,
                                 S3_TARGET,
                                 shots,
                                 disable_qubit_rewiring=True)
    assert task == AwsQuantumTask(mocked_task_arn, aws_session,
                                  GateModelQuantumTaskResult.from_string)

    _assert_create_quantum_task_called_with(
        aws_session,
        device_arn,
        circuit,
        S3_TARGET,
        shots,
        device_parameters_class(paradigmParameters=GateModelParameters(
            qubitCount=circuit.qubit_count, disableQubitRewiring=True)),
    )
def test_no_program_inputs(aws_session):
    openqasm_program = OpenQasmProgram(
        source="""
        qubit q;
        h q;
        """,
        inputs={"x": 1},
    )
    aws_session.create_quantum_task.return_value = arn
    shots = 21
    only_for_local_sim = (
        "OpenQASM Program inputs are only currently supported in the LocalSimulator."
    )
    with pytest.raises(ValueError, match=only_for_local_sim):
        AwsQuantumTask.create(aws_session, SIMULATOR_ARN, openqasm_program,
                              S3_TARGET, shots)
def test_from_circuit_with_verbatim(device_arn, device_parameters_class,
                                    disable_qubit_rewiring, aws_session):
    circ = Circuit().add_verbatim_box(Circuit().h(0))
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    shots = 1337

    task = AwsQuantumTask.create(
        aws_session,
        device_arn,
        circ,
        S3_TARGET,
        shots,
        disable_qubit_rewiring=disable_qubit_rewiring,
    )
    assert task == AwsQuantumTask(mocked_task_arn, aws_session)

    serialization_properties = OpenQASMSerializationProperties(
        qubit_reference_type=QubitReferenceType.PHYSICAL)

    _assert_create_quantum_task_called_with(
        aws_session,
        device_arn,
        circ.to_ir(
            ir_type=IRType.OPENQASM,
            serialization_properties=serialization_properties,
        ).json(),
        S3_TARGET,
        shots,
        device_parameters_class(paradigmParameters=GateModelParameters(
            qubitCount=circ.qubit_count,
            disableQubitRewiring=disable_qubit_rewiring)),
    )
def test_from_circuit_with_disabled_rewiring(device_arn,
                                             device_parameters_class,
                                             aws_session, circuit):
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    shots = 53

    task = AwsQuantumTask.create(aws_session,
                                 device_arn,
                                 circuit,
                                 S3_TARGET,
                                 shots,
                                 disable_qubit_rewiring=True)
    assert task == AwsQuantumTask(mocked_task_arn, aws_session)

    _assert_create_quantum_task_called_with(
        aws_session,
        device_arn,
        circuit.to_ir(
            ir_type=IRType.OPENQASM,
            serialization_properties=OpenQASMSerializationProperties(
                QubitReferenceType.PHYSICAL),
        ).json(),
        S3_TARGET,
        shots,
        device_parameters_class(paradigmParameters=GateModelParameters(
            qubitCount=circuit.qubit_count, disableQubitRewiring=True)),
    )
示例#8
0
def test_from_circuit_with_verbatim(device_arn, device_parameters_class,
                                    aws_session):
    circ = Circuit().add_verbatim_box(Circuit().h(0))
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    shots = 1337

    task = AwsQuantumTask.create(
        aws_session,
        device_arn,
        circ,
        S3_TARGET,
        shots,
        disable_qubit_rewiring=True,
    )
    assert task == AwsQuantumTask(mocked_task_arn, aws_session)

    _assert_create_quantum_task_called_with(
        aws_session,
        device_arn,
        circ,
        S3_TARGET,
        shots,
        device_parameters_class(paradigmParameters=GateModelParameters(
            qubitCount=circ.qubit_count, disableQubitRewiring=True)),
    )
示例#9
0
def parameterized_quantum_task(aws_session, s3_destination_folder):
    theta = FreeParameter("theta")
    circ = Circuit().ry(angle=theta, target=0)
    return AwsQuantumTask.create(
        device_arn="arn:aws:braket:::device/quantum-simulator/amazon/sv1",
        aws_session=aws_session,
        poll_timeout_seconds=2,
        task_specification=circ,
        shots=10,
        s3_destination_folder=s3_destination_folder,
    )
示例#10
0
def test_from_annealing(device_parameters, aws_session, arn, problem):
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    task = AwsQuantumTask.create(
        aws_session, arn, problem, S3_TARGET, 1000, device_parameters=device_parameters
    )
    assert task == AwsQuantumTask(
        mocked_task_arn, aws_session, AnnealingQuantumTaskResult.from_string
    )

    _assert_create_quantum_task_called_with(
        aws_session,
        arn,
        problem,
        S3_TARGET,
        1000,
        DwaveDeviceParameters.parse_obj(device_parameters),
    )
def test_from_circuit_with_shots(device_arn, device_parameters_class,
                                 aws_session, circuit):
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    shots = 53

    task = AwsQuantumTask.create(aws_session, device_arn, circuit, S3_TARGET,
                                 shots)
    assert task == AwsQuantumTask(mocked_task_arn, aws_session)

    _assert_create_quantum_task_called_with(
        aws_session,
        device_arn,
        circuit.to_ir(ir_type=IRType.OPENQASM).json(),
        S3_TARGET,
        shots,
        device_parameters_class(paradigmParameters=GateModelParameters(
            qubitCount=circuit.qubit_count, disableQubitRewiring=False)),
    )
def test_from_annealing(device_parameters, aws_session, arn, problem):
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    task = AwsQuantumTask.create(
        aws_session,
        arn,
        problem,
        S3_TARGET,
        1000,
        device_parameters=device_parameters,
    )
    assert task == AwsQuantumTask(mocked_task_arn, aws_session)
    annealing_parameters = _create_annealing_device_params(device_parameters,
                                                           device_arn=arn)
    validate(json.loads(annealing_parameters.json(exclude_none=True)),
             annealing_parameters.schema())
    _assert_create_quantum_task_called_with(
        aws_session,
        arn,
        problem.to_ir().json(),
        S3_TARGET,
        1000,
        annealing_parameters,
    )
示例#13
0
def test_from_circuit_with_shots_value_error(aws_session, arn, circuit):
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    AwsQuantumTask.create(aws_session, arn, circuit, S3_TARGET, 0)
示例#14
0
def test_create_invalid_task_specification(aws_session, arn):
    mocked_task_arn = "task-arn-1"
    aws_session.create_quantum_task.return_value = mocked_task_arn
    AwsQuantumTask.create(aws_session, arn, "foo", S3_TARGET, 1000)
示例#15
0
def test_create_invalid_s3_folder(aws_session, arn, circuit):
    AwsQuantumTask.create(aws_session, arn, circuit, ("bucket", ), 1000)
示例#16
0
def test_from_circuit_with_verbatim_qubit_rewiring_not_disabled(aws_session):
    circ = Circuit().add_verbatim_box(Circuit().h(0))
    shots = 57
    AwsQuantumTask.create(aws_session, RIGETTI_ARN, circ, S3_TARGET, shots)