From 4e1e74ae5ea7afe3fdba8ec193ce3f016a2036a7 Mon Sep 17 00:00:00 2001 From: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com> Date: Thu, 25 Jun 2026 10:40:14 -0400 Subject: [PATCH] depr: tn1 retirement --- src/braket/devices/devices.py | 2 +- src/braket/tracking/tracker.py | 3 - test/integ_tests/conftest.py | 3 +- .../test_tensor_network_simulator.py | 92 ------------------- .../braket/aws/common_test_utils.py | 1 - test/unit_tests/braket/aws/test_aws_device.py | 9 +- .../braket/tracking/test_tracker.py | 12 +-- 7 files changed, 7 insertions(+), 115 deletions(-) delete mode 100644 test/integ_tests/test_tensor_network_simulator.py diff --git a/src/braket/devices/devices.py b/src/braket/devices/devices.py index 766ef4c81..9c4795046 100644 --- a/src/braket/devices/devices.py +++ b/src/braket/devices/devices.py @@ -17,7 +17,7 @@ class Devices: class _Amazon(StrEnum): SV1 = "arn:aws:braket:::device/quantum-simulator/amazon/sv1" - TN1 = "arn:aws:braket:::device/quantum-simulator/amazon/tn1" + _TN1 = "arn:aws:braket:::device/quantum-simulator/amazon/tn1" DM1 = "arn:aws:braket:::device/quantum-simulator/amazon/dm1" class _AQT(StrEnum): diff --git a/src/braket/tracking/tracker.py b/src/braket/tracking/tracker.py index bff22c1e6..6435c57ca 100644 --- a/src/braket/tracking/tracker.py +++ b/src/braket/tracking/tracker.py @@ -266,9 +266,6 @@ def _get_simulator_task_cost(task_arn: str, details: dict) -> Decimal: else: product_family = "Simulator Task" operation = "CompleteTask" - if details["status"] == "FAILED" and device_name == "TN1": - # Rehearsal step of TN1 can fail and charges still apply. - operation = "FailedTask" search_dict = { "Region Code": task_region, diff --git a/test/integ_tests/conftest.py b/test/integ_tests/conftest.py index d187ca3c4..a83e39201 100644 --- a/test/integ_tests/conftest.py +++ b/test/integ_tests/conftest.py @@ -25,8 +25,7 @@ SV1_ARN = "arn:aws:braket:::device/quantum-simulator/amazon/sv1" DM1_ARN = "arn:aws:braket:::device/quantum-simulator/amazon/dm1" -TN1_ARN = "arn:aws:braket:::device/quantum-simulator/amazon/tn1" -SIMULATOR_ARNS = [SV1_ARN, DM1_ARN, TN1_ARN] +SIMULATOR_ARNS = [SV1_ARN, DM1_ARN] job_complete_name = "".join(random.choices(string.ascii_lowercase + string.digits, k=12)) job_fail_name = "".join(random.choices(string.ascii_lowercase + string.digits, k=12)) diff --git a/test/integ_tests/test_tensor_network_simulator.py b/test/integ_tests/test_tensor_network_simulator.py deleted file mode 100644 index 5c406eadd..000000000 --- a/test/integ_tests/test_tensor_network_simulator.py +++ /dev/null @@ -1,92 +0,0 @@ -# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). You -# may not use this file except in compliance with the License. A copy of -# the License is located at -# -# http://aws.amazon.com/apache2.0/ -# -# or in the "license" file accompanying this file. This file is -# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF -# ANY KIND, either express or implied. See the License for the specific -# language governing permissions and limitations under the License. - -import math -import random - -import pytest -from gate_model_device_testing_utils import bell_pair_openqasm_testing, no_result_types_testing - -from braket.aws import AwsDevice -from braket.circuits import Circuit - -SHOTS = 100 -TN1_ARN = "arn:aws:braket:::device/quantum-simulator/amazon/tn1" -SIMULATOR_ARNS = [TN1_ARN] - - -@pytest.mark.parametrize("simulator_arn", SIMULATOR_ARNS) -def test_ghz(simulator_arn, aws_session, s3_destination_folder): - num_qubits = 50 - circuit = _ghz(num_qubits) - device = AwsDevice(simulator_arn, aws_session) - no_result_types_testing( - circuit, - device, - {"shots": SHOTS, "s3_destination_folder": s3_destination_folder}, - {"0" * num_qubits: 0.5, "1" * num_qubits: 0.5}, - ) - - -@pytest.mark.parametrize("simulator_arn", SIMULATOR_ARNS) -def test_qft_iqft_h(simulator_arn, aws_session, s3_destination_folder): - num_qubits = 24 - h_qubit = random.randint(0, num_qubits - 1) - circuit = _inverse_qft(_qft(Circuit().h(h_qubit), num_qubits), num_qubits) - device = AwsDevice(simulator_arn, aws_session) - no_result_types_testing( - circuit, - device, - {"shots": SHOTS, "s3_destination_folder": s3_destination_folder}, - {"0" * num_qubits: 0.5, "0" * h_qubit + "1" + "0" * (num_qubits - h_qubit - 1): 0.5}, - ) - - -@pytest.mark.parametrize("simulator_arn", SIMULATOR_ARNS) -def test_bell_pair_openqasm(simulator_arn, aws_session, s3_destination_folder): - device = AwsDevice(simulator_arn, aws_session) - bell_pair_openqasm_testing( - device, {"shots": SHOTS, "s3_destination_folder": s3_destination_folder} - ) - - -def _ghz(num_qubits): - circuit = Circuit() - circuit.h(0) - for qubit in range(num_qubits - 1): - circuit.cnot(qubit, qubit + 1) - return circuit - - -def _qft(circuit, num_qubits): - for i in range(num_qubits): - circuit.h(i) - for j in range(1, num_qubits - i): - circuit.cphaseshift(i + j, i, math.pi / (2**j)) - - for qubit in range(math.floor(num_qubits / 2)): - circuit.swap(qubit, num_qubits - qubit - 1) - - return circuit - - -def _inverse_qft(circuit, num_qubits): - for qubit in range(math.floor(num_qubits / 2)): - circuit.swap(qubit, num_qubits - qubit - 1) - - for i in reversed(range(num_qubits)): - for j in reversed(range(1, num_qubits - i)): - circuit.cphaseshift(i + j, i, -math.pi / (2**j)) - circuit.h(i) - - return circuit diff --git a/test/unit_tests/braket/aws/common_test_utils.py b/test/unit_tests/braket/aws/common_test_utils.py index 67044c1e7..07f229ec5 100644 --- a/test/unit_tests/braket/aws/common_test_utils.py +++ b/test/unit_tests/braket/aws/common_test_utils.py @@ -22,7 +22,6 @@ OQC_ARN = "arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy" SV1_ARN = "arn:aws:braket:::device/quantum-simulator/amazon/sv1" DM1_ARN = "arn:aws:braket:::device/quantum-simulator/amazon/dm1" -TN1_ARN = "arn:aws:braket:::device/quantum-simulator/amazon/tn1" XANADU_ARN = "arn:aws:braket:us-east-1::device/qpu/xanadu/Borealis" RIGETTI_REGION = "us-west-1" diff --git a/test/unit_tests/braket/aws/test_aws_device.py b/test/unit_tests/braket/aws/test_aws_device.py index 3665d19d6..c57ddf098 100644 --- a/test/unit_tests/braket/aws/test_aws_device.py +++ b/test/unit_tests/braket/aws/test_aws_device.py @@ -32,7 +32,6 @@ RIGETTI_ARN, RIGETTI_REGION, SV1_ARN, - TN1_ARN, run_and_assert, run_batch_and_assert, ) @@ -977,7 +976,7 @@ def test_device_simulator_not_found(): "Error": { "Code": "ResourceNotFoundException", "Message": ( - "Braket device 'arn:aws:braket:::device/quantum-simulator/amazon/tn1' " + "Braket device 'arn:aws:braket:::device/quantum-simulator/amazon/dm1' " "not found in us-west-1. You can find a list of all supported device " "ARNs and the regions in which they are available in the documentation: " "https://docs.aws.amazon.com/braket/latest/developerguide/braket-devices.html" @@ -1001,7 +1000,7 @@ def test_device_qpu_not_found(mock_copy_session): "Error": { "Code": "ResourceNotFoundException", "Message": ( - "Braket device 'arn:aws:braket:::device/quantum-simulator/amazon/tn1' " + "Braket device 'arn:aws:braket:::device/quantum-simulator/amazon/dm1' " "not found in us-west-1. You can find a list of all supported device " "ARNs and the regions in which they are available in the documentation: " "https://docs.aws.amazon.com/braket/latest/developerguide/braket-devices.html" @@ -1025,7 +1024,7 @@ def test_device_qpu_exception(mock_copy_session): "Error": { "Code": "ResourceNotFoundException", "Message": ( - "Braket device 'arn:aws:braket:::device/quantum-simulator/amazon/tn1' " + "Braket device 'arn:aws:braket:::device/quantum-simulator/amazon/dm1' " "not found in us-west-1. You can find a list of all supported device " "ARNs and the regions in which they are available in the documentation: " "https://docs.aws.amazon.com/braket/latest/developerguide/braket-" @@ -1851,7 +1850,7 @@ def test_get_devices_simulators_only(mock_copy_session, aws_session): session_for_region.get_device.side_effect = ValueError("should not be reachable") mock_copy_session.return_value = session_for_region results = AwsDevice.get_devices( - arns=[SV1_ARN, TN1_ARN], + arns=[SV1_ARN, DM1_ARN], types=["SIMULATOR"], provider_names=["Amazon Braket"], statuses=["ONLINE"], diff --git a/test/unit_tests/braket/tracking/test_tracker.py b/test/unit_tests/braket/tracking/test_tracker.py index 0c4a3942b..fb415907a 100644 --- a/test/unit_tests/braket/tracking/test_tracker.py +++ b/test/unit_tests/braket/tracking/test_tracker.py @@ -67,9 +67,6 @@ def test_receive_fake_event(empty_tracker): _TaskCreationEvent( arn="notjob_sim_task:::region", shots=0, is_job_task=False, device="simulator/bar" ), - _TaskCreationEvent( - arn="task_fail:::region", shots=0, is_job_task=False, device="simulator/tn1" - ), _TaskCreationEvent( arn="task_cancel:::region", shots=0, is_job_task=False, device="simulator/baz" ), @@ -114,7 +111,6 @@ def test_receive_fake_event(empty_tracker): _TaskCompletionEvent( arn="notjob_sim_task:::region", execution_duration=1729, status="COMPLETED" ), - _TaskCompletionEvent(arn="task_fail:::region", execution_duration=12345, status="FAILED"), _TaskCompletionEvent(arn="task_cancel:::region", execution_duration=None, status="CANCELLED"), _TaskCompletionEvent( arn="unbilled_task0:::region", @@ -186,7 +182,7 @@ def test_qpu_task_cost(price_mock, completed_tracker): def test_simulator_task_cost(price_mock, completed_tracker): price_mock.return_value = [{"PricePerUnit": "6.0", "Currency": "USD", "Unit": "minutes"}] cost = completed_tracker.simulator_tasks_cost() - expected = Decimal("0.0001") * (3000 + 3000 + 12345) + expected = Decimal("0.0001") * (3000 + 3000) assert cost == expected price_mock.return_value = [] @@ -213,12 +209,6 @@ def test_quantum_task_statistics(completed_tracker): "execution_duration": timedelta(seconds=1, microseconds=852000), "billed_execution_duration": timedelta(seconds=6), }, - "simulator/tn1": { - "shots": 0, - "tasks": {"FAILED": 1}, - "execution_duration": timedelta(seconds=12, microseconds=345000), - "billed_execution_duration": timedelta(seconds=12, microseconds=345000), - }, "simulator/baz": {"shots": 0, "tasks": {"CANCELLED": 1}}, "qpu/Ibex-Q1": {"shots": 100, "tasks": {"CREATED": 1}}, "qpu/2000Qxyz": {"shots": 100, "tasks": {"CREATED": 1}},