History

python/lib/aubio/slicing.py: use start and end stamps, make sure read > 0, improve tests

Paul Brossier committed 12 years ago

Commit f36ecea1 parent d9459763 files · +51 −18Browse files

Showing the changes to python/tests (2 of 3 files). Show all

Unified · Split

2 files
  1. python/tests/test_slicing.py +13 −5
  2. python/tests/utils.py +11 −0
python/tests/test_slicing.py+13−5
@@ -4,8 +4,7 @@ from numpy.testing import TestCase, run_module_suite · 3 unmodified lines
4from numpy.testing import assert_equal, assert_almost_equal4from numpy.testing import assert_equal, assert_almost_equal
5 5
6from aubio import slice_source_at_stamps6from aubio import slice_source_at_stamps
7from utils import count_samples_in_file, count_samples_in_directory7from utils import *
8from utils import get_default_test_sound
9 8
10import tempfile9import tempfile
11import shutil10import shutil
@@ -28,13 +27,22 @@ class aubio_slicing_test_case(TestCase): · 16 unmodified lines
28 27
29 def test_slice_start_beyond_end(self):28 def test_slice_start_beyond_end(self):
30 regions_start = [i*1000 for i in range(1, n_slices)]29 regions_start = [i*1000 for i in range(1, n_slices)]
31 regions_start += [count_samples_in_file(self.source_file)]
32 regions_start += [count_samples_in_file(self.source_file) + 1000]30 regions_start += [count_samples_in_file(self.source_file) + 1000]
33 slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir)31 slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir)
34 32
33 def test_slice_start_every_blocksize(self):
34 hopsize = 200
35 regions_start = [i*hopsize for i in range(1, n_slices)]
36 regions_start += [count_samples_in_file(self.source_file) + 1000]
37 slice_source_at_stamps(self.source_file, regions_start, output_dir = self.output_dir,
38 hopsize = 200)
39
35 def tearDown(self):40 def tearDown(self):
36 original_samples = count_samples_in_file(self.source_file)41 original_samples = count_samples_in_file(self.source_file)
37 written_samples = count_samples_in_directory(self.output_dir)42 written_samples = count_samples_in_directory(self.output_dir)
43 total_files = count_files_in_directory(self.output_dir)
44 assert_equal(n_slices, total_files,
45 "number of slices created different from expected")
38 assert_equal(written_samples, original_samples,46 assert_equal(written_samples, original_samples,
39 "number of samples written different from number of original samples")47 "number of samples written different from number of original samples")
40 shutil.rmtree(self.output_dir)48 shutil.rmtree(self.output_dir)
@@ -67,14 +75,14 @@ class aubio_slicing_wrong_ends_test_case(TestCase): · 26 unmodified lines
67 self.output_dir = tempfile.mkdtemp(suffix = 'aubio_slicing_test_case')75 self.output_dir = tempfile.mkdtemp(suffix = 'aubio_slicing_test_case')
68 76
69 def test_slice_wrong_ends(self):77 def test_slice_wrong_ends(self):
70 regions_start = [i*1000 for i in range(1, 100)]78 regions_start = [i*1000 for i in range(1, n_slices)]
71 regions_end = []79 regions_end = []
72 self.assertRaises (ValueError,80 self.assertRaises (ValueError,
73 slice_source_at_stamps, self.source_file, regions_start, regions_end,81 slice_source_at_stamps, self.source_file, regions_start, regions_end,
74 output_dir = self.output_dir)82 output_dir = self.output_dir)
75 83
76 def test_slice_no_ends(self):84 def test_slice_no_ends(self):
77 regions_start = [i*1000 for i in range(1, 100)]85 regions_start = [i*1000 for i in range(1, n_slices)]
78 regions_end = None86 regions_end = None
79 slice_source_at_stamps (self.source_file, regions_start, regions_end,87 slice_source_at_stamps (self.source_file, regions_start, regions_end,
80 output_dir = self.output_dir)88 output_dir = self.output_dir)
python/tests/utils.py+11−0
@@ -47,3 +47,14 @@ def count_samples_in_directory(samples_dir): · 46 unmodified lines
47 if file_path:47 if file_path:
48 total_frames += count_samples_in_file(file_path)48 total_frames += count_samples_in_file(file_path)
49 return total_frames49 return total_frames
50
51def count_files_in_directory(samples_dir):
52 import os
53 total_files = 0
54 for f in os.walk(samples_dir):
55 if len(f[2]):
56 for each in f[2]:
57 file_path = os.path.join(f[0], each)
58 if file_path:
59 total_files += 1
60 return total_files

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t