From 3477d7b5b4dbcc2a1d9b71f0fe95fba4c573bfad Mon Sep 17 00:00:00 2001 From: mbsantiago Date: Mon, 11 Nov 2024 11:57:46 +0000 Subject: [PATCH] Run the same test with example data instead of random audio --- tests/conftest.py | 23 +++++++++++++++++++++++ tests/test_model.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index 06f9ddc..fbebc98 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,8 +1,31 @@ from pathlib import Path +from typing import List import pytest +@pytest.fixture +def example_data_dir() -> Path: + pkg_dir = Path(__file__).parent.parent + example_data_dir = pkg_dir / "example_data" + assert example_data_dir.exists() + return example_data_dir + + +@pytest.fixture +def example_audio_dir(example_data_dir: Path) -> Path: + example_audio_dir = example_data_dir / "audio" + assert example_audio_dir.exists() + return example_audio_dir + + +@pytest.fixture +def example_audio_files(example_audio_dir: Path) -> List[Path]: + audio_files = list(example_audio_dir.glob("*.[wW][aA][vV]")) + assert len(audio_files) == 3 + return audio_files + + @pytest.fixture def data_dir() -> Path: dir = Path(__file__).parent / "data" diff --git a/tests/test_model.py b/tests/test_model.py index 7e5d997..3519c38 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -1,6 +1,8 @@ """Test suite for model functions.""" import warnings +from pathlib import Path +from typing import List import numpy as np from hypothesis import given, settings @@ -45,3 +47,32 @@ def test_can_import_model_without_pickle(duration: float): ) assert predictions_without_pickle == predictions_with_pickle + + +def test_can_import_model_without_pickle_on_test_data( + example_audio_files: List[Path], +): + # NOTE: remove this test once no other issues are found This is a temporary + # test to check that change in model loading did not impact model behaviour + # in any way. + + model_without_pickle, model_params_without_pickle = api.load_model( + weights_only=True + ) + model_with_pickle, model_params_with_pickle = api.load_model( + weights_only=False + ) + + assert model_params_without_pickle == model_params_with_pickle + + for audio_file in example_audio_files: + audio = api.load_audio(str(audio_file)) + predictions_without_pickle, _, _ = api.process_audio( + audio, + model=model_without_pickle, + ) + predictions_with_pickle, _, _ = api.process_audio( + audio, + model=model_with_pickle, + ) + assert predictions_without_pickle == predictions_with_pickle