Showing the changes to python/tests (1 of 1 file). Show all
Unified · Split
| @@ -110,6 +110,63 @@ class aubio_filterbank_mel_test_case(TestCase): · 109 unmodified lines | |||
| 110 | # TODO add assert_warns | 110 | # TODO add assert_warns |
| 111 | f.set_triangle_bands(fvec(freq_list), samplerate) | 111 | f.set_triangle_bands(fvec(freq_list), samplerate) |
| 112 | 112 | ||
| 113 | def test_triangle_freqs_without_norm(self): | ||
| 114 | """make sure set_triangle_bands works without """ | ||
| 115 | samplerate = 22050 | ||
| 116 | freq_list = fvec([0, 100, 1000, 10000]) | ||
| 117 | f = filterbank(len(freq_list) - 2, 1024) | ||
| 118 | f.set_norm(0) | ||
| 119 | f.set_triangle_bands(freq_list, samplerate) | ||
| 120 | expected = f.get_coeffs() | ||
| 121 | f.set_norm(1) | ||
| 122 | f.set_triangle_bands(fvec(freq_list), samplerate) | ||
| 123 | assert_almost_equal(f.get_coeffs().T, | ||
| 124 | expected.T * 2. / (freq_list[2:] - freq_list[:-2])) | ||
| 125 | |||
| 126 | def test_triangle_freqs_wrong_norm(self): | ||
| 127 | f = filterbank(10, 1024) | ||
| 128 | with self.assertRaises(ValueError): | ||
| 129 | f.set_norm(-1) | ||
| 130 | |||
| 131 | def test_triangle_freqs_with_power(self): | ||
| 132 | f = filterbank(9, 1024) | ||
| 133 | freqs = fvec([40, 80, 200, 400, 800, 1600, 3200, 6400, 12800, 15000, | ||
| 134 | 24000]) | ||
| 135 | f.set_power(2) | ||
| 136 | f.set_triangle_bands(freqs, 48000) | ||
| 137 | spec = cvec(1024) | ||
| 138 | spec.norm[:] = .1 | ||
| 139 | expected = fvec([0.02070313, 0.02138672, 0.02127604, 0.02135417, | ||
| 140 | 0.02133301, 0.02133301, 0.02133311, 0.02133334, 0.02133345]) | ||
| 141 | expected /= 100. | ||
| 142 | assert_almost_equal(f(spec), expected) | ||
| 143 | |||
| 144 | def test_mel_coeffs(self): | ||
| 145 | f = filterbank(40, 1024) | ||
| 146 | f.set_mel_coeffs(44100, 0, 44100 / 2) | ||
| 147 | |||
| 148 | def test_zero_fmax(self): | ||
| 149 | f = filterbank(40, 1024) | ||
| 150 | f.set_mel_coeffs(44100, 0, 0) | ||
| 151 | |||
| 152 | def test_wrong_mel_coeffs(self): | ||
| 153 | f = filterbank(40, 1024) | ||
| 154 | with self.assertRaises(ValueError): | ||
| 155 | f.set_mel_coeffs_slaney(0) | ||
| 156 | with self.assertRaises(ValueError): | ||
| 157 | f.set_mel_coeffs(44100, 0, -44100 / 2) | ||
| 158 | with self.assertRaises(ValueError): | ||
| 159 | f.set_mel_coeffs(44100, -0.1, 44100 / 2) | ||
| 160 | with self.assertRaises(ValueError): | ||
| 161 | f.set_mel_coeffs(-44100, 0.1, 44100 / 2) | ||
| 162 | with self.assertRaises(ValueError): | ||
| 163 | f.set_mel_coeffs_htk(-1, 0, 0) | ||
| 164 | |||
| 165 | def test_mel_coeffs_htk(self): | ||
| 166 | f = filterbank(40, 1024) | ||
| 167 | f.set_mel_coeffs_htk(44100, 0, 44100 / 2) | ||
| 168 | |||
| 169 | |||
| 113 | if __name__ == '__main__': | 170 | if __name__ == '__main__': |
| 114 | import nose2 | 171 | import nose2 |
| 115 | nose2.main() | 172 | nose2.main() |