Mercurial > hg > auditok
changeset 231:046c445b9699
Add more tests for different analysis windows in split
author | Amine Sehili <amine.sehili@gmail.com> |
---|---|
date | Thu, 18 Jul 2019 20:28:45 +0100 |
parents | 1a3cf18658c6 |
children | 4282cea451d6 |
files | tests/test_core.py |
diffstat | 1 files changed, 208 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test_core.py Sun Jul 14 12:31:38 2019 +0100 +++ b/tests/test_core.py Thu Jul 18 20:28:45 2019 +0100 @@ -312,6 +312,14 @@ {"uc": 1, "aw": 0.2}, [(2, 32), (34, 76)], ), + mono_aw_0_2_max_silence_0=( + 0.2, + 5, + 0, + 1, + {"uc": 1, "aw": 0.2}, + [(2, 14), (16, 24), (26, 28), (34, 76)], + ), mono_aw_0_2=( 0.2, 5, @@ -320,6 +328,62 @@ {"uc": 1, "aw": 0.2}, [(2, 30), (34, 76)], ), + mono_aw_0_3_max_silence_0=( + 0.3, + 5, + 0, + 1, + {"uc": 1, "aw": 0.3}, + [(3, 12), (15, 24), (36, 76)], + ), + mono_aw_0_3_max_silence_0_3=( + 0.3, + 5, + 0.3, + 1, + {"uc": 1, "aw": 0.3}, + [(3, 27), (36, 76)], + ), + mono_aw_0_3_max_silence_0_5=( + 0.3, + 5, + 0.5, + 1, + {"uc": 1, "aw": 0.3}, + [(3, 27), (36, 76)], + ), + mono_aw_0_3_max_silence_0_6=( + 0.3, + 5, + 0.6, + 1, + {"uc": 1, "aw": 0.3}, + [(3, 30), (36, 76)], + ), + mono_aw_0_4_max_silence_0=( + 0.2, + 5, + 0., + 1, + {"uc": 1, "aw": 0.4}, + [(4, 12), (16, 24), (36, 76)], + ), + mono_aw_0_4_max_silence_0_3=( + 0.2, + 5, + 0.3, + 1, + {"uc": 1, "aw": 0.4}, + [(4, 12), (16, 24), (36, 76)], + ), + mono_aw_0_4_max_silence_0_4=( + 0.2, + 5, + 0.4, + 1, + {"uc": 1, "aw": 0.4}, + [(4, 28), (36, 76)], + ), stereo_uc_1_analysis_window_0_2=( 0.2, 5, @@ -328,6 +392,14 @@ {"uc": 1, "analysis_window": 0.2}, [(2, 30), (34, 76)], ), + stereo_uc_2_analysis_window_0_2=( + 0.2, + 5, + 0.2, + 2, + {"uc": 2, "analysis_window": 0.2}, + [(10, 32), (36, 76)], + ), ) def test_split_analysis_window( self, min_dur, max_dur, max_silence, channels, kwargs, expected @@ -881,7 +953,7 @@ b"a" + b"b" * 123, ), ) - def test_region_slicing( + def test_region_temporal_slicing( self, region, slice_, expected_start, expected_data ): sub_region = region.millis[slice_] @@ -896,6 +968,141 @@ self.assertEqual(bytes(sub_region), expected_data) @genty_dataset( + first_half=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(0, 80), + 0, + b"a" * 80, + ), + second_half=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(80, None), + 0.5, + b"b" * 80, + ), + second_half_negative=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(-80, None), + 0.5, + b"b" * 80, + ), + middle=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(160 // 5, 160 // 4 * 3), + 0.2, + b"a" * 48 + b"b" * 40, + ), + middle_negative=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(-160 // 5 * 4, -160 // 4), + 0.2, + b"a" * 48 + b"b" * 40, + ), + middle_sw2=( + AudioRegion(b"a" * 160 + b"b" * 160, 0, 160, 2, 1), + slice(160 // 5, 160 // 4 * 3), + 0.2, + b"a" * 96 + b"b" * 80, + ), + middle_ch2=( + AudioRegion(b"a" * 160 + b"b" * 160, 0, 160, 1, 2), + slice(160 // 5, 160 // 4 * 3), + 0.2, + b"a" * 96 + b"b" * 80, + ), + middle_sw2_ch2=( + AudioRegion(b"a" * 320 + b"b" * 320, 0, 160, 2, 2), + slice(160 // 5, 160 // 4 * 3), + 0.2, + b"a" * 192 + b"b" * 160, + ), + but_first_sample=( + AudioRegion(b"a" * 4000 + b"b" * 4000, 0, 8000, 1, 1), + slice(1, None), + 1 / 8000, + b"a" * (4000 - 1) + b"b" * 4000, + ), + but_first_sample_negative=( + AudioRegion(b"a" * 4000 + b"b" * 4000, 0, 8000, 1, 1), + slice(-7999, None), + 1 / 8000, + b"a" * (4000 - 1) + b"b" * 4000, + ), + but_last_sample=( + AudioRegion(b"a" * 4000 + b"b" * 4000, 0, 8000, 1, 1), + slice(0, 7999), + 0, + b"a" * 4000 + b"b" * (4000 - 1), + ), + but_last_sample_negative=( + AudioRegion(b"a" * 4000 + b"b" * 4000, 0, 8000, 1, 1), + slice(0, -1), + 0, + b"a" * 4000 + b"b" * (4000 - 1), + ), + big_negative_start=( + AudioRegion(b"a" * 160, 0, 160, 1, 1), + slice(-1600, None), + 0, + b"a" * 160, + ), + big_negative_stop=( + AudioRegion(b"a" * 160, 0, 160, 1, 1), + slice(None, -1600), + 0, + b"", + ), + empty=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(0, 0), + 0, + b"", + ), + empty_start_stop_reversed=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(80, 40), + 0.5, + b"", + ), + empty_big_positive_start=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(1600, 3000), + 10, + b"", + ), + empty_negative_reversed=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(-16, -32), + 0.9, + b"", + ), + empty_big_negative_stop=( + AudioRegion(b"a" * 80 + b"b" * 80, 0, 160, 1, 1), + slice(0, -2000), + 0, + b"", + ), + arbitrary_sampling_rate=( + AudioRegion(b"a" * 124 + b"b" * 376, 0, 1235, 1, 1), + slice(100, 200), + 100 / 1235, + b"a" * 24 + b"b" * 76, + ), + arbitrary_sampling_rate_middle_sw2_ch2=( + AudioRegion(b"a" * 124 + b"b" * 376, 0, 1235, 2, 2), + slice(25, 50), + 25 / 1235, + b"a" * 24 + b"b" * 76, + ), + ) + def test_region_sample_slicing( + self, region, slice_, expected_start, expected_data + ): + sub_region = region[slice_] + self.assertEqual(sub_region.start, expected_start) + self.assertEqual(bytes(sub_region), expected_data) + + @genty_dataset( simple=(8000, 1, 1), stereo_sw_2=(8000, 2, 2), arbitrary_sr_multichannel=(5413, 2, 3),