Source code for tests.recipes.cec2.baseline.test_enhance

"""Tests for cec2 baseline enhance module."""

from __future__ import annotations

from pathlib import Path
from unittest.mock import patch

import hydra
import numpy as np
import pytest
from omegaconf import DictConfig

from clarity.utils.file_io import read_signal
from recipes.cec2.baseline.enhance import enhance


[docs] @pytest.fixture() def hydra_cfg(tmp_path: Path): """Fixture for hydra config.""" hydra.core.global_hydra.GlobalHydra.instance().clear() hydra.initialize( config_path=".../../../../../../recipes/cec2/baseline", job_name="test_cec2" ) cfg = hydra.compose( config_name="config", overrides=[ "path.root=.", f"path.exp_folder={tmp_path}", "path.metadata_dir=tests/test_data/metadata", "path.scenes_listeners_file=" "tests/test_data/metadata/scenes_listeners.1.json", "path.listeners_file=tests/test_data/metadata/listeners.json", "path.scenes_folder=tests/test_data/scenes", ], ) return cfg
[docs] def not_tqdm(iterable): """ Replacement for tqdm that just passes back the iterable. Useful for silencing `tqdm` in tests. """ return iterable
[docs] @patch("recipes.cec2.baseline.enhance.tqdm", not_tqdm) def test_enhance(tmp_path: Path, hydra_cfg: DictConfig) -> None: """Test run_HL_processing function.""" np.random.seed(0) # Run the enhance function enhance(hydra_cfg) # Check that the output signal is correct filename = tmp_path / "enhanced_signals" / "S06001_L0064_HA-output.wav" assert filename.exists() signal = read_signal(filename) assert np.sum(np.abs(signal)) == pytest.approx( 78939.73132324219, rel=pytest.rel_tolerance, abs=pytest.abs_tolerance )