File size: 1,059 Bytes
a9536c4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import sys
import tempfile
import unittest
from pathlib import Path
from unittest import mock

import numpy as np
import soundfile as sf

from infer import official_adapter


class OfficialAdapterTests(unittest.TestCase):
    def test_isolated_argv_restores_cli_args(self):
        original = ["runner.py", "--input", "song.wav"]
        with mock.patch.object(sys, "argv", original[:]):
            with official_adapter._IsolatedArgv():
                self.assertEqual(sys.argv, ["runner.py"])
            self.assertEqual(sys.argv, original)

    def test_audio_activity_stats_detects_silent_file(self):
        with tempfile.TemporaryDirectory() as tmp_dir:
            path = Path(tmp_dir) / "silent.wav"
            sf.write(path, np.zeros((3200, 2), dtype=np.float32), 16000)

            rms, peak, nonzero = official_adapter._get_audio_activity_stats(path)

        self.assertEqual(rms, 0.0)
        self.assertEqual(peak, 0.0)
        self.assertEqual(nonzero, 0)


if __name__ == "__main__":
    unittest.main()