changeset 360:5133fdc926fb

Add tests for make_channel_selector with average channel
author Amine Sehili <amine.sehili@gmail.com>
date Fri, 03 Apr 2020 20:50:48 +0200
parents 63871bac77f6
children 6b65d8a1e954
files tests/test_util.py
diffstat 1 files changed, 44 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test_util.py	Thu Apr 02 22:29:43 2020 +0200
+++ b/tests/test_util.py	Fri Apr 03 20:50:48 2020 +0200
@@ -146,14 +146,55 @@
         # Use signal functions with numpy implementation
         with patch("auditok.util.signal", signal_numpy):
             selector = make_channel_selector(sample_width, channels, selected)
-            resutl_numpy = selector(self.data)
+            result_numpy = selector(self.data)
 
         expected = array_(fmt, expected)
         if channels == 1:
             expected = bytes(expected)
-            self.assertEqual(resutl_numpy, expected)
+            self.assertEqual(result_numpy, expected)
         else:
-            self.assertTrue(all(resutl_numpy == expected))
+            self.assertTrue(all(result_numpy == expected))
+
+    @genty_dataset(
+        int8_2channel=(1, 2, "avg", [48, 50, 52, 54, 61, 66]),
+        int8_4channel=(1, 4, "average", [50, 54, 64]),
+        int16_1channel=(
+            2,
+            1,
+            "mix",
+            [12592, 13106, 13620, 14134, 16697, 17218],
+        ),
+        int16_2channel=(2, 2, "avg", [12849, 13877, 16957]),
+        int32_3channel=(4, 3, "average", [971214132]),
+    )
+    def test_make_channel_selector_average(
+        self, sample_width, channels, selected, expected
+    ):
+        # force using signal functions with standard python implementation
+        with patch("auditok.util.signal", signal_):
+            selector = make_channel_selector(sample_width, channels, selected)
+            result = selector(self.data)
+
+        fmt = signal_.FORMAT[sample_width]
+        expected = array_(fmt, expected)
+        if channels == 1:
+            expected = bytes(expected)
+        self.assertEqual(result, expected)
+
+        # Use signal functions with numpy implementation
+        with patch("auditok.util.signal", signal_numpy):
+            selector = make_channel_selector(sample_width, channels, selected)
+            result_numpy = selector(self.data)
+
+        if channels in (1, 2):
+            self.assertEqual(result_numpy, expected)
+        else:
+            self.assertTrue(all(result_numpy == expected))
+
+    # def test_make_channel_selector_any(
+    #     self, sample_width, channels, selected, expected
+    # ):
+    #     pass
 
 
 @genty