def test_calculate_ir_results(ir_result, expected_result): ir_string = jaqcd.Program( instructions=[jaqcd.H(target=i) for i in range(4)], results=[ir_result] ).json() measured_qubits = [0, 1, 2, 3] measurements = np.array( [ [0, 0, 1, 0], [1, 1, 1, 1], [1, 0, 0, 1], [0, 0, 1, 0], [1, 1, 1, 1], [0, 1, 1, 1], [0, 0, 0, 1], [0, 1, 1, 1], [0, 0, 0, 0], [0, 0, 0, 1], ] ) result_types = GateModelQuantumTaskResult._calculate_result_types( ir_string, measurements, measured_qubits ) assert len(result_types) == 1 assert result_types[0].type == ir_result assert np.allclose(result_types[0].value, expected_result)
def test_calculate_ir_results_value_error(): ir_string = json.dumps({"results": [{"type": "foo"}]}) measured_qubits = [0] measurements = np.array([[0]]) GateModelQuantumTaskResult._calculate_result_types(ir_string, measurements, measured_qubits)