Showing the changes to python (1 of 1 file). Show all
Unified · Split
| @@ -110,6 +110,63 @@ class aubio_filterbank_mel_test_case(TestCase): · 109 unmodified lines | ||
| 110 | 110 | # TODO add assert_warns |
| 111 | 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 | 170 | if __name__ == '__main__': |
| 114 | 171 | import nose2 |
| 115 | 172 | nose2.main() |