changeset 224:78dd9ddb06c0

Add tests for max_silence greater than or equal to max_dur in split
author Amine Sehili <amine.sehili@gmail.com>
date Wed, 10 Jul 2019 21:17:13 +0100
parents 3e4c0b7c75ca
children 44d96fed7053
files tests/test_core.py
diffstat 1 files changed, 35 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test_core.py	Wed Jul 10 21:07:19 2019 +0100
+++ b/tests/test_core.py	Wed Jul 10 21:17:13 2019 +0100
@@ -476,6 +476,41 @@
         )
         self.assertEqual(err_msg, str(val_err.exception))
 
+    @genty_dataset(
+        max_silence_equals_max_dur=(0.5, 0.5, 0.1),
+        max_silence_greater_than_max_dur=(0.5, 0.4, 0.1),
+        durations_OK_but_wrong_number_of_analysis_windows=(0.44, 0.49, 0.1),
+    )
+    def test_split_wrong_max_silence_max_dur(
+        self, max_silence, max_dur, analysis_window
+    ):
+
+        with self.assertRaises(ValueError) as val_err:
+            split(
+                b"0" * 16,
+                min_dur=0.2,
+                max_dur=max_dur,
+                max_silence=max_silence,
+                sr=16000,
+                sw=1,
+                ch=1,
+                analysis_window=analysis_window,
+            )
+
+        err_msg = "'max_silence' ({0} sec.) results in {1} analysis "
+        err_msg += "window(s) ({1} == floor({0} / {2})) which is "
+        err_msg += "higher or equal to the number of analysis window(s) for "
+        err_msg += "'max_dur' ({3} == floor({4} / {2}))"
+
+        err_msg = err_msg.format(
+            max_silence,
+            math.floor(max_silence / analysis_window),
+            analysis_window,
+            math.floor(max_dur / analysis_window),
+            max_dur,
+        )
+        self.assertEqual(err_msg, str(val_err.exception))
+
 
 @genty
 class TestAudioRegion(TestCase):