def _translate_result_types( circuit_ir: Program, ) -> Tuple[Dict[int, ResultType], Dict[int, ObservableResultType]]: non_observable_result_types = {} observable_result_types = {} for i in range(len(circuit_ir.results)): result_type = from_braket_result_type(circuit_ir.results[i]) if isinstance(result_type, ObservableResultType): observable_result_types[i] = result_type else: non_observable_result_types[i] = result_type return non_observable_result_types, observable_result_types
def test_from_braket_result_type_unsupported_type(): from_braket_result_type(shared_models.OptionalMultiTarget(targets=[4, 3]))
def test_from_braket_result_type_tensor_product_insufficient(): from_braket_result_type(jaqcd.Variance(targets=[0], observable=["h", "i"]))
def test_from_braket_result_type_unknown_observable(): from_braket_result_type( jaqcd.Expectation(targets=[0], observable=[[[[0, 0], [1, 0], [3, 2]], [[1, 0], [0, 0]]]]) )
def test_from_braket_result_type_tensor_product_extra(): from_braket_result_type(jaqcd.Expectation(targets=[0, 1, 2], observable=["h", "i"]))
def test_from_braket_result_type_observable(braket_result_type, result_type): assert isinstance(from_braket_result_type(braket_result_type), result_type)
def test_from_braket_result_type_probability(): translated = from_braket_result_type(jaqcd.Probability(targets=[0, 1])) assert isinstance(translated, Probability) assert translated._targets == [0, 1]
def test_from_braket_result_type_amplitude(): translated = from_braket_result_type(jaqcd.Amplitude(states=["01", "10"])) assert isinstance(translated, Amplitude) assert translated._states == ["01", "10"]
def test_from_braket_result_type_statevector(): assert isinstance(from_braket_result_type(jaqcd.StateVector()), StateVector)