cleanup the module structure a bit
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import os
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
from scripts.utils.analysis import run_analysis
|
||||
from scripts.utils.classes import ParseFileName
|
||||
from tests.helpers import TESTDATA, Settings
|
||||
|
||||
|
||||
class TestRunAnalysis(unittest.TestCase):
|
||||
|
||||
@patch('scripts.utils.helpers._load_settings')
|
||||
@patch('scripts.utils.analysis.loadCustomSpeciesList')
|
||||
def test_run_analysis(self, mock_loadCustomSpeciesList, mock_load_settings):
|
||||
# Mock the settings and species list
|
||||
mock_load_settings.return_value = Settings.with_defaults()
|
||||
mock_loadCustomSpeciesList.return_value = []
|
||||
|
||||
# Test file
|
||||
test_file = ParseFileName(os.path.join(TESTDATA, '2024-02-24-birdnet-16:19:37.wav'))
|
||||
|
||||
# Expected results
|
||||
expected_results = [
|
||||
{"confidence": 0.912, 'sci_name': 'Pica pica'},
|
||||
{"confidence": 0.9316, 'sci_name': 'Pica pica'},
|
||||
{"confidence": 0.8857, 'sci_name': 'Pica pica'}
|
||||
]
|
||||
|
||||
# Run the analysis
|
||||
detections = run_analysis(test_file)
|
||||
|
||||
# Assertions
|
||||
self.assertEqual(len(detections), len(expected_results))
|
||||
for det, expected in zip(detections, expected_results):
|
||||
self.assertAlmostEqual(det.confidence, expected['confidence'], delta=1e-4)
|
||||
self.assertEqual(det.scientific_name, expected['sci_name'])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user