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, )
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, )
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)), )
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)), )
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, )
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, )
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)
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)
def test_create_invalid_s3_folder(aws_session, arn, circuit): AwsQuantumTask.create(aws_session, arn, circuit, ("bucket", ), 1000)
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)