diff options
author | Dmitrii Agibov <dmitrii.agibov@arm.com> | 2023-02-15 14:58:37 +0000 |
---|---|---|
committer | Dmitrii Agibov <dmitrii.agibov@arm.com> | 2023-02-16 10:44:22 +0000 |
commit | a01e0e1229e30f9e2ebf3cd921ffe0dbef1cbea9 (patch) | |
tree | 811585649f513c2182f26a64751c986c7a66be83 /tests | |
parent | df856cc9f20670ade3e84511f0fcbcc11425705d (diff) | |
download | mlia-a01e0e1229e30f9e2ebf3cd921ffe0dbef1cbea9.tar.gz |
MLIA-812 Show error message for unsupported functionality0.6.0-rc.2
Change-Id: I68fb8c4e51046e9fc2d91ad8338718ba545209cd
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_target_cortex_a_advisor.py | 32 | ||||
-rw-r--r-- | tests/test_target_ethos_u_advisor.py | 24 | ||||
-rw-r--r-- | tests/test_target_tosa_advisor.py | 28 |
3 files changed, 82 insertions, 2 deletions
diff --git a/tests/test_target_cortex_a_advisor.py b/tests/test_target_cortex_a_advisor.py index 1788a6d..9e0082f 100644 --- a/tests/test_target_cortex_a_advisor.py +++ b/tests/test_target_cortex_a_advisor.py @@ -1,8 +1,11 @@ -# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates. +# SPDX-FileCopyrightText: Copyright 2022-2023, Arm Limited and/or its affiliates. # SPDX-License-Identifier: Apache-2.0 """Tests for Cortex-A MLIA module.""" from pathlib import Path +import pytest + +from mlia.core.common import AdviceCategory from mlia.core.context import ExecutionContext from mlia.core.workflow import DefaultWorkflowExecutor from mlia.target.cortex_a.advisor import configure_and_get_cortexa_advisor @@ -32,3 +35,30 @@ def test_configure_and_get_cortex_a_advisor(test_tflite_model: Path) -> None: } assert isinstance(workflow, DefaultWorkflowExecutor) + + +@pytest.mark.parametrize( + "category, expected_error", + [ + [ + AdviceCategory.PERFORMANCE, + "Performance estimation is currently not supported for Cortex-A.", + ], + [ + AdviceCategory.OPTIMIZATION, + "Model optimizations are currently not supported for Cortex-A.", + ], + ], +) +def test_unsupported_advice_categories( + tmp_path: Path, + category: AdviceCategory, + expected_error: str, + test_tflite_model: Path, +) -> None: + """Test that advisor should throw an exception for unsupported categories.""" + with pytest.raises(Exception, match=expected_error): + ctx = ExecutionContext(output_dir=tmp_path, advice_category={category}) + + advisor = configure_and_get_cortexa_advisor(ctx, "cortex-a", test_tflite_model) + advisor.configure(ctx) diff --git a/tests/test_target_ethos_u_advisor.py b/tests/test_target_ethos_u_advisor.py index fb68800..11aefc7 100644 --- a/tests/test_target_ethos_u_advisor.py +++ b/tests/test_target_ethos_u_advisor.py @@ -1,9 +1,31 @@ -# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates. +# SPDX-FileCopyrightText: Copyright 2022-2023, Arm Limited and/or its affiliates. # SPDX-License-Identifier: Apache-2.0 """Tests for Ethos-U MLIA module.""" +from pathlib import Path + +import pytest + +from mlia.core.common import AdviceCategory +from mlia.core.context import ExecutionContext +from mlia.target.ethos_u.advisor import configure_and_get_ethosu_advisor from mlia.target.ethos_u.advisor import EthosUInferenceAdvisor def test_advisor_metadata() -> None: """Test advisor metadata.""" assert EthosUInferenceAdvisor.name() == "ethos_u_inference_advisor" + + +def test_unsupported_advice_categories(tmp_path: Path, test_tflite_model: Path) -> None: + """Test that advisor should throw an exception for unsupported categories.""" + with pytest.raises( + Exception, match="Optimizations are not supported for TensorFlow Lite files." + ): + ctx = ExecutionContext( + output_dir=tmp_path, advice_category={AdviceCategory.OPTIMIZATION} + ) + + advisor = configure_and_get_ethosu_advisor( + ctx, "ethos-u55-256", str(test_tflite_model) + ) + advisor.configure(ctx) diff --git a/tests/test_target_tosa_advisor.py b/tests/test_target_tosa_advisor.py index 9646c96..f4f1e36 100644 --- a/tests/test_target_tosa_advisor.py +++ b/tests/test_target_tosa_advisor.py @@ -6,6 +6,7 @@ from unittest.mock import MagicMock import pytest +from mlia.core.common import AdviceCategory from mlia.core.context import ExecutionContext from mlia.core.workflow import DefaultWorkflowExecutor from mlia.target.tosa.advisor import configure_and_get_tosa_advisor @@ -38,3 +39,30 @@ def test_configure_and_get_tosa_advisor( } assert isinstance(workflow, DefaultWorkflowExecutor) + + +@pytest.mark.parametrize( + "category, expected_error", + [ + [ + AdviceCategory.PERFORMANCE, + "Performance estimation is currently not supported for TOSA.", + ], + [ + AdviceCategory.OPTIMIZATION, + "Model optimizations are currently not supported for TOSA.", + ], + ], +) +def test_unsupported_advice_categories( + tmp_path: Path, + category: AdviceCategory, + expected_error: str, + test_tflite_model: Path, +) -> None: + """Test that advisor should throw an exception for unsupported categories.""" + with pytest.raises(Exception, match=expected_error): + ctx = ExecutionContext(output_dir=tmp_path, advice_category={category}) + + advisor = configure_and_get_tosa_advisor(ctx, "tosa", test_tflite_model) + advisor.configure(ctx) |