From 7f0555ddb96b4d43e783c4d92753b360789df940 Mon Sep 17 00:00:00 2001 From: Vladislav Sovrasov Date: Fri, 1 Nov 2024 08:39:05 +0900 Subject: [PATCH 1/5] Add unit tests --- .github/workflows/pre_commit.yml | 15 +++++++++++++- tests/python/unit/test_utils.py | 35 ++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 tests/python/unit/test_utils.py diff --git a/.github/workflows/pre_commit.yml b/.github/workflows/pre_commit.yml index a42109f0..0e0b5e50 100644 --- a/.github/workflows/pre_commit.yml +++ b/.github/workflows/pre_commit.yml @@ -15,7 +15,7 @@ on: jobs: Code-Quality-Checks: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: CHECKOUT REPOSITORY uses: actions/checkout@v4 @@ -33,3 +33,16 @@ jobs: run: pip install 'model_api/python/.[full]' - name: Run pre-commit checks run: pre-commit run --all-files + Unit-Tests: + runs-on: ubuntu-22.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + - name: Install dependencies + run: pip install 'model_api/python/.[tests,ovms]' + - name: Run unit tests + run: pytest tests/python/unit \ No newline at end of file diff --git a/tests/python/unit/test_utils.py b/tests/python/unit/test_utils.py new file mode 100644 index 00000000..5392adac --- /dev/null +++ b/tests/python/unit/test_utils.py @@ -0,0 +1,35 @@ +# +# Copyright (C) 2020-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +# +import numpy as np +import openvino.runtime as ov +from model_api.adapters.utils import ( + resize_image_with_aspect, + resize_image_with_aspect_ocv, +) +from openvino.preprocess import PrePostProcessor + + +def test_resize_image_with_aspect_ocv(): + param_node = ov.op.Parameter(ov.Type.f32, ov.Shape([1, 8, 8, 3])) + model = ov.Model(param_node, [param_node]) + ppp = PrePostProcessor(model) + ppp.input().tensor().set_element_type(ov.Type.u8) + ppp.input().tensor().set_layout(ov.Layout("NHWC")) + ppp.input().tensor().set_shape([1, -1, -1, 3]) + ppp.input().preprocess().custom( + resize_image_with_aspect( + (8, 8), + "linear", + 0, + ) + ) + ppp.input().preprocess().convert_element_type(ov.Type.f32) + ov_resize_image_with_aspect = ov.Core().compile_model(ppp.build(), "CPU") + + img = np.ones((2, 4, 3), dtype=np.uint8) + ov_results = ov_resize_image_with_aspect(img[None]) + np_results = resize_image_with_aspect_ocv(img, (8, 8)) + + assert np.sum(np.abs(list(ov_results.values())[0][0] - np_results)) < 1e-05 From 7758ce747f8e26b66fc801ccad05ec42ad278f23 Mon Sep 17 00:00:00 2001 From: Vladislav Sovrasov Date: Fri, 1 Nov 2024 08:47:50 +0900 Subject: [PATCH 2/5] Update python tests structure --- .github/workflows/pre_commit.yml | 4 +-- .github/workflows/test_precommit.yml | 14 ++++---- .../{precommit => funtional}/test_load.py | 0 .../{precommit => funtional}/test_save.py | 0 tests/python/precommit/test_utils.py | 35 ------------------- 5 files changed, 10 insertions(+), 43 deletions(-) rename tests/python/{precommit => funtional}/test_load.py (100%) rename tests/python/{precommit => funtional}/test_save.py (100%) delete mode 100644 tests/python/precommit/test_utils.py diff --git a/.github/workflows/pre_commit.yml b/.github/workflows/pre_commit.yml index 0e0b5e50..284d11cb 100644 --- a/.github/workflows/pre_commit.yml +++ b/.github/workflows/pre_commit.yml @@ -44,5 +44,5 @@ jobs: python-version: "3.10" - name: Install dependencies run: pip install 'model_api/python/.[tests,ovms]' - - name: Run unit tests - run: pytest tests/python/unit \ No newline at end of file + - name: Run python unit tests + run: pytest tests/python/unit diff --git a/.github/workflows/test_precommit.yml b/.github/workflows/test_precommit.yml index fe0ae1f5..85bb440a 100644 --- a/.github/workflows/test_precommit.yml +++ b/.github/workflows/test_precommit.yml @@ -9,11 +9,13 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: - Python-Precommit: - runs-on: ubuntu-latest + Python-Functional-Tests: + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 with: python-version: 3.9 cache: pip @@ -25,7 +27,7 @@ jobs: run: | source venv/bin/activate python -m pip install --upgrade pip - pip install model_api/python/[tests] --extra-index-url https://download.pytorch.org/whl/cpu + pip install model_api/python/[tests,ovms] --extra-index-url https://download.pytorch.org/whl/cpu - name: Prepare test data run: | source venv/bin/activate @@ -33,7 +35,7 @@ jobs: - name: Run test run: | source venv/bin/activate - pytest tests/python/precommit + pytest tests/python/funtional CPP-Code-Quality: name: CPP-Code-Quality runs-on: ubuntu-latest diff --git a/tests/python/precommit/test_load.py b/tests/python/funtional/test_load.py similarity index 100% rename from tests/python/precommit/test_load.py rename to tests/python/funtional/test_load.py diff --git a/tests/python/precommit/test_save.py b/tests/python/funtional/test_save.py similarity index 100% rename from tests/python/precommit/test_save.py rename to tests/python/funtional/test_save.py diff --git a/tests/python/precommit/test_utils.py b/tests/python/precommit/test_utils.py deleted file mode 100644 index 5392adac..00000000 --- a/tests/python/precommit/test_utils.py +++ /dev/null @@ -1,35 +0,0 @@ -# -# Copyright (C) 2020-2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 -# -import numpy as np -import openvino.runtime as ov -from model_api.adapters.utils import ( - resize_image_with_aspect, - resize_image_with_aspect_ocv, -) -from openvino.preprocess import PrePostProcessor - - -def test_resize_image_with_aspect_ocv(): - param_node = ov.op.Parameter(ov.Type.f32, ov.Shape([1, 8, 8, 3])) - model = ov.Model(param_node, [param_node]) - ppp = PrePostProcessor(model) - ppp.input().tensor().set_element_type(ov.Type.u8) - ppp.input().tensor().set_layout(ov.Layout("NHWC")) - ppp.input().tensor().set_shape([1, -1, -1, 3]) - ppp.input().preprocess().custom( - resize_image_with_aspect( - (8, 8), - "linear", - 0, - ) - ) - ppp.input().preprocess().convert_element_type(ov.Type.f32) - ov_resize_image_with_aspect = ov.Core().compile_model(ppp.build(), "CPU") - - img = np.ones((2, 4, 3), dtype=np.uint8) - ov_results = ov_resize_image_with_aspect(img[None]) - np_results = resize_image_with_aspect_ocv(img, (8, 8)) - - assert np.sum(np.abs(list(ov_results.values())[0][0] - np_results)) < 1e-05 From 838f848c78a3963c9c1b83abac1e7fe19cac20da Mon Sep 17 00:00:00 2001 From: Vladislav Sovrasov Date: Fri, 1 Nov 2024 09:00:27 +0900 Subject: [PATCH 3/5] Update clang-format --- .github/workflows/pre_commit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre_commit.yml b/.github/workflows/pre_commit.yml index 284d11cb..ed74143a 100644 --- a/.github/workflows/pre_commit.yml +++ b/.github/workflows/pre_commit.yml @@ -28,7 +28,7 @@ jobs: with: node-version: 22 - name: Install clang-format - run: sudo apt-get install -y clang-format-10 + run: sudo apt-get install -y clang-format-13 - name: Install dependencies run: pip install 'model_api/python/.[full]' - name: Run pre-commit checks From 9f420b0ad230fd63efc5cea05862d63a2a63ec32 Mon Sep 17 00:00:00 2001 From: Vladislav Sovrasov Date: Fri, 1 Nov 2024 09:20:44 +0900 Subject: [PATCH 4/5] Revert pre-commit deps versions --- .github/workflows/pre_commit.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre_commit.yml b/.github/workflows/pre_commit.yml index ed74143a..b6e2edb6 100644 --- a/.github/workflows/pre_commit.yml +++ b/.github/workflows/pre_commit.yml @@ -15,7 +15,7 @@ on: jobs: Code-Quality-Checks: - runs-on: ubuntu-22.04 + runs-on: ubuntu-20.04 steps: - name: CHECKOUT REPOSITORY uses: actions/checkout@v4 @@ -28,7 +28,7 @@ jobs: with: node-version: 22 - name: Install clang-format - run: sudo apt-get install -y clang-format-13 + run: sudo apt-get install -y clang-format-10 - name: Install dependencies run: pip install 'model_api/python/.[full]' - name: Run pre-commit checks From 4318cce77298c97daaec7b25357fbdf0c7704585 Mon Sep 17 00:00:00 2001 From: Vladislav Sovrasov Date: Tue, 5 Nov 2024 10:24:19 +0900 Subject: [PATCH 5/5] Fix pytheon version in ut --- .github/workflows/pre_commit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre_commit.yml b/.github/workflows/pre_commit.yml index b6e2edb6..a7b0b860 100644 --- a/.github/workflows/pre_commit.yml +++ b/.github/workflows/pre_commit.yml @@ -41,7 +41,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.9" - name: Install dependencies run: pip install 'model_api/python/.[tests,ovms]' - name: Run python unit tests