source: python/tests/test_slicing.py @ aee840b

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since aee840b was aee840b, checked in by Paul Brossier <piem@piem.org>, 10 years ago

python/lib/aubio/slicing.py: error checking, add more tests, use get_default_sound

  • Property mode set to 100755
File size: 3.4 KB
Line 
1#! /usr/bin/env python
2
3from numpy.testing import TestCase, run_module_suite
4from numpy.testing import assert_equal, assert_almost_equal
5
6from aubio import slice_source_at_stamps
7from utils import count_samples_in_file, count_samples_in_directory
8from utils import get_default_test_sound
9
10import tempfile
11import shutil
12
13class aubio_slicing_test_case(TestCase):
14
15    def setUp(self):
16        self.source_file = get_default_test_sound(self)
17        self.output_dir = tempfile.mkdtemp(suffix = 'aubio_slicing_test_case')
18
19    def test_slice_start_only(self):
20        regions_start = [i*1000 for i in range(100)]
21        slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir)
22
23    def test_slice_start_only_no_zero(self):
24        regions_start = [i*1000 for i in range(1, 100)]
25        slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir)
26
27    def test_slice_start_beyond_end(self):
28        regions_start = [i*1000 for i in range(1, 100)]
29        regions_start += [count_samples_in_file(self.source_file)]
30        regions_start += [count_samples_in_file(self.source_file) + 1000]
31        slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir)
32
33    def tearDown(self):
34        original_samples = count_samples_in_file(self.source_file)
35        written_samples = count_samples_in_directory(self.output_dir)
36        assert_equal(original_samples, written_samples,
37            "number samples written different from number of original samples")
38        shutil.rmtree(self.output_dir)
39
40class aubio_slicing_wrong_starts_test_case(TestCase):
41
42    def setUp(self):
43        self.source_file = get_default_test_sound(self)
44        self.output_dir = tempfile.mkdtemp(suffix = 'aubio_slicing_test_case')
45
46    def test_slice_start_empty(self):
47        regions_start = []
48        self.assertRaises(ValueError,
49                slice_source_at_stamps,
50                self.source_file, regions_start, output_dir = self.output_dir)
51
52    def test_slice_start_none(self):
53        regions_start = None
54        self.assertRaises(ValueError,
55                slice_source_at_stamps,
56                self.source_file, regions_start, output_dir = self.output_dir)
57
58    def tearDown(self):
59        shutil.rmtree(self.output_dir)
60
61class aubio_slicing_wrong_ends_test_case(TestCase):
62
63    def setUp(self):
64        self.source_file = get_default_test_sound(self)
65        self.output_dir = tempfile.mkdtemp(suffix = 'aubio_slicing_test_case')
66
67    def test_slice_wrong_ends(self):
68        regions_start = [i*1000 for i in range(1, 100)]
69        regions_end = []
70        self.assertRaises (ValueError,
71            slice_source_at_stamps, self.source_file, regions_start, regions_end,
72                output_dir = self.output_dir)
73
74    def test_slice_no_ends(self):
75        regions_start = [i*1000 for i in range(1, 100)]
76        regions_end = None
77        slice_source_at_stamps (self.source_file, regions_start, regions_end,
78                output_dir = self.output_dir)
79        original_samples = count_samples_in_file(self.source_file)
80        written_samples = count_samples_in_directory(self.output_dir)
81        assert_equal(original_samples, written_samples,
82            "number samples written different from number of original samples")
83
84    def tearDown(self):
85        shutil.rmtree(self.output_dir)
86
87if __name__ == '__main__':
88    from unittest import main
89    main()
Note: See TracBrowser for help on using the repository browser.