Changeset 391 for python/trunk/Lib/test/test_audioop.py
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Lib/test/test_audioop.py
r2 r391 1 1 import audioop 2 import sys 2 3 import unittest 4 import struct 3 5 from test.test_support import run_unittest 4 6 5 7 6 def gendata1(): 7 return '\0\1\2' 8 9 def gendata2(): 10 if audioop.getsample('\0\1', 2, 0) == 1: 11 return '\0\0\0\1\0\2' 12 else: 13 return '\0\0\1\0\2\0' 14 15 def gendata4(): 16 if audioop.getsample('\0\0\0\1', 4, 0) == 1: 17 return '\0\0\0\0\0\0\0\1\0\0\0\2' 18 else: 19 return '\0\0\0\0\1\0\0\0\2\0\0\0' 20 21 data = [gendata1(), gendata2(), gendata4()] 8 formats = { 9 1: 'b', 10 2: 'h', 11 4: 'i', 12 } 13 14 def pack(width, data): 15 return struct.pack('=%d%s' % (len(data), formats[width]), *data) 16 17 packs = { 18 1: lambda *data: pack(1, data), 19 2: lambda *data: pack(2, data), 20 4: lambda *data: pack(4, data), 21 } 22 maxvalues = {w: (1 << (8 * w - 1)) - 1 for w in (1, 2, 4)} 23 minvalues = {w: -1 << (8 * w - 1) for w in (1, 2, 4)} 24 25 datas = { 26 1: b'\x00\x12\x45\xbb\x7f\x80\xff', 27 2: packs[2](0, 0x1234, 0x4567, -0x4567, 0x7fff, -0x8000, -1), 28 4: packs[4](0, 0x12345678, 0x456789ab, -0x456789ab, 29 0x7fffffff, -0x80000000, -1), 30 } 31 32 INVALID_DATA = [ 33 (b'abc', 0), 34 (b'abc', 2), 35 (b'abc', 4), 36 ] 22 37 23 38 … … 25 40 26 41 def test_max(self): 27 self.assertEqual(audioop.max(data[0], 1), 2) 28 self.assertEqual(audioop.max(data[1], 2), 2) 29 self.assertEqual(audioop.max(data[2], 4), 2) 42 for w in 1, 2, 4: 43 self.assertEqual(audioop.max(b'', w), 0) 44 p = packs[w] 45 self.assertEqual(audioop.max(p(5), w), 5) 46 self.assertEqual(audioop.max(p(5, -8, -1), w), 8) 47 self.assertEqual(audioop.max(p(maxvalues[w]), w), maxvalues[w]) 48 self.assertEqual(audioop.max(p(minvalues[w]), w), -minvalues[w]) 49 self.assertEqual(audioop.max(datas[w], w), -minvalues[w]) 30 50 31 51 def test_minmax(self): 32 self.assertEqual(audioop.minmax(data[0], 1), (0, 2)) 33 self.assertEqual(audioop.minmax(data[1], 2), (0, 2)) 34 self.assertEqual(audioop.minmax(data[2], 4), (0, 2)) 52 for w in 1, 2, 4: 53 self.assertEqual(audioop.minmax(b'', w), 54 (0x7fffffff, -0x80000000)) 55 p = packs[w] 56 self.assertEqual(audioop.minmax(p(5), w), (5, 5)) 57 self.assertEqual(audioop.minmax(p(5, -8, -1), w), (-8, 5)) 58 self.assertEqual(audioop.minmax(p(maxvalues[w]), w), 59 (maxvalues[w], maxvalues[w])) 60 self.assertEqual(audioop.minmax(p(minvalues[w]), w), 61 (minvalues[w], minvalues[w])) 62 self.assertEqual(audioop.minmax(datas[w], w), 63 (minvalues[w], maxvalues[w])) 35 64 36 65 def test_maxpp(self): 37 self.assertEqual(audioop.maxpp(data[0], 1), 0) 38 self.assertEqual(audioop.maxpp(data[1], 2), 0) 39 self.assertEqual(audioop.maxpp(data[2], 4), 0) 66 for w in 1, 2, 4: 67 self.assertEqual(audioop.maxpp(b'', w), 0) 68 self.assertEqual(audioop.maxpp(packs[w](*range(100)), w), 0) 69 self.assertEqual(audioop.maxpp(packs[w](9, 10, 5, 5, 0, 1), w), 10) 70 self.assertEqual(audioop.maxpp(datas[w], w), 71 maxvalues[w] - minvalues[w]) 40 72 41 73 def test_avg(self): 42 self.assertEqual(audioop.avg(data[0], 1), 1) 43 self.assertEqual(audioop.avg(data[1], 2), 1) 44 self.assertEqual(audioop.avg(data[2], 4), 1) 74 for w in 1, 2, 4: 75 self.assertEqual(audioop.avg(b'', w), 0) 76 p = packs[w] 77 self.assertEqual(audioop.avg(p(5), w), 5) 78 self .assertEqual(audioop.avg(p(5, 8), w), 6) 79 self.assertEqual(audioop.avg(p(5, -8), w), -2) 80 self.assertEqual(audioop.avg(p(maxvalues[w], maxvalues[w]), w), 81 maxvalues[w]) 82 self.assertEqual(audioop.avg(p(minvalues[w], minvalues[w]), w), 83 minvalues[w]) 84 self.assertEqual(audioop.avg(packs[4](0x50000000, 0x70000000), 4), 85 0x60000000) 86 self.assertEqual(audioop.avg(packs[4](-0x50000000, -0x70000000), 4), 87 -0x60000000) 45 88 46 89 def test_avgpp(self): 47 self.assertEqual(audioop.avgpp(data[0], 1), 0) 48 self.assertEqual(audioop.avgpp(data[1], 2), 0) 49 self.assertEqual(audioop.avgpp(data[2], 4), 0) 90 for w in 1, 2, 4: 91 self.assertEqual(audioop.avgpp(b'', w), 0) 92 self.assertEqual(audioop.avgpp(packs[w](*range(100)), w), 0) 93 self.assertEqual(audioop.avgpp(packs[w](9, 10, 5, 5, 0, 1), w), 10) 94 self.assertEqual(audioop.avgpp(datas[1], 1), 196) 95 self.assertEqual(audioop.avgpp(datas[2], 2), 50534) 96 self.assertEqual(audioop.avgpp(datas[4], 4), 3311897002) 50 97 51 98 def test_rms(self): 52 self.assertEqual(audioop.rms(data[0], 1), 1) 53 self.assertEqual(audioop.rms(data[1], 2), 1) 54 self.assertEqual(audioop.rms(data[2], 4), 1) 99 for w in 1, 2, 4: 100 self.assertEqual(audioop.rms(b'', w), 0) 101 p = packs[w] 102 self.assertEqual(audioop.rms(p(*range(100)), w), 57) 103 self.assertAlmostEqual(audioop.rms(p(maxvalues[w]) * 5, w), 104 maxvalues[w], delta=1) 105 self.assertAlmostEqual(audioop.rms(p(minvalues[w]) * 5, w), 106 -minvalues[w], delta=1) 107 self.assertEqual(audioop.rms(datas[1], 1), 77) 108 self.assertEqual(audioop.rms(datas[2], 2), 20001) 109 self.assertEqual(audioop.rms(datas[4], 4), 1310854152) 55 110 56 111 def test_cross(self): 57 self.assertEqual(audioop.cross(data[0], 1), 0) 58 self.assertEqual(audioop.cross(data[1], 2), 0) 59 self.assertEqual(audioop.cross(data[2], 4), 0) 112 for w in 1, 2, 4: 113 self.assertEqual(audioop.cross(b'', w), -1) 114 p = packs[w] 115 self.assertEqual(audioop.cross(p(0, 1, 2), w), 0) 116 self.assertEqual(audioop.cross(p(1, 2, -3, -4), w), 1) 117 self.assertEqual(audioop.cross(p(-1, -2, 3, 4), w), 1) 118 self.assertEqual(audioop.cross(p(0, minvalues[w]), w), 1) 119 self.assertEqual(audioop.cross(p(minvalues[w], maxvalues[w]), w), 1) 60 120 61 121 def test_add(self): 62 data2 = [] 63 for d in data: 64 str = '' 65 for s in d: 66 str = str + chr(ord(s)*2) 67 data2.append(str) 68 self.assertEqual(audioop.add(data[0], data[0], 1), data2[0]) 69 self.assertEqual(audioop.add(data[1], data[1], 2), data2[1]) 70 self.assertEqual(audioop.add(data[2], data[2], 4), data2[2]) 122 for w in 1, 2, 4: 123 self.assertEqual(audioop.add(b'', b'', w), b'') 124 self.assertEqual(audioop.add(datas[w], b'\0' * len(datas[w]), w), 125 datas[w]) 126 self.assertEqual(audioop.add(datas[1], datas[1], 1), 127 b'\x00\x24\x7f\x80\x7f\x80\xfe') 128 self.assertEqual(audioop.add(datas[2], datas[2], 2), 129 packs[2](0, 0x2468, 0x7fff, -0x8000, 0x7fff, -0x8000, -2)) 130 self.assertEqual(audioop.add(datas[4], datas[4], 4), 131 packs[4](0, 0x2468acf0, 0x7fffffff, -0x80000000, 132 0x7fffffff, -0x80000000, -2)) 71 133 72 134 def test_bias(self): 73 # Note: this test assumes that avg() works 74 d1 = audioop.bias(data[0], 1, 100) 75 d2 = audioop.bias(data[1], 2, 100) 76 d4 = audioop.bias(data[2], 4, 100) 77 self.assertEqual(audioop.avg(d1, 1), 101) 78 self.assertEqual(audioop.avg(d2, 2), 101) 79 self.assertEqual(audioop.avg(d4, 4), 101) 135 for w in 1, 2, 4: 136 for bias in 0, 1, -1, 127, -128, 0x7fffffff, -0x80000000: 137 self.assertEqual(audioop.bias(b'', w, bias), b'') 138 self.assertEqual(audioop.bias(datas[1], 1, 1), 139 b'\x01\x13\x46\xbc\x80\x81\x00') 140 self.assertEqual(audioop.bias(datas[1], 1, -1), 141 b'\xff\x11\x44\xba\x7e\x7f\xfe') 142 self.assertEqual(audioop.bias(datas[1], 1, 0x7fffffff), 143 b'\xff\x11\x44\xba\x7e\x7f\xfe') 144 self.assertEqual(audioop.bias(datas[1], 1, -0x80000000), 145 datas[1]) 146 self.assertEqual(audioop.bias(datas[2], 2, 1), 147 packs[2](1, 0x1235, 0x4568, -0x4566, -0x8000, -0x7fff, 0)) 148 self.assertEqual(audioop.bias(datas[2], 2, -1), 149 packs[2](-1, 0x1233, 0x4566, -0x4568, 0x7ffe, 0x7fff, -2)) 150 self.assertEqual(audioop.bias(datas[2], 2, 0x7fffffff), 151 packs[2](-1, 0x1233, 0x4566, -0x4568, 0x7ffe, 0x7fff, -2)) 152 self.assertEqual(audioop.bias(datas[2], 2, -0x80000000), 153 datas[2]) 154 self.assertEqual(audioop.bias(datas[4], 4, 1), 155 packs[4](1, 0x12345679, 0x456789ac, -0x456789aa, 156 -0x80000000, -0x7fffffff, 0)) 157 self.assertEqual(audioop.bias(datas[4], 4, -1), 158 packs[4](-1, 0x12345677, 0x456789aa, -0x456789ac, 159 0x7ffffffe, 0x7fffffff, -2)) 160 self.assertEqual(audioop.bias(datas[4], 4, 0x7fffffff), 161 packs[4](0x7fffffff, -0x6dcba989, -0x3a987656, 0x3a987654, 162 -2, -1, 0x7ffffffe)) 163 self.assertEqual(audioop.bias(datas[4], 4, -0x80000000), 164 packs[4](-0x80000000, -0x6dcba988, -0x3a987655, 0x3a987655, 165 -1, 0, 0x7fffffff)) 80 166 81 167 def test_lin2lin(self): 82 # too simple: we test only the size 83 for d1 in data: 84 for d2 in data: 85 got = len(d1)//3 86 wtd = len(d2)//3 87 self.assertEqual(len(audioop.lin2lin(d1, got, wtd)), len(d2)) 168 for w in 1, 2, 4: 169 self.assertEqual(audioop.lin2lin(datas[w], w, w), datas[w]) 170 171 self.assertEqual(audioop.lin2lin(datas[1], 1, 2), 172 packs[2](0, 0x1200, 0x4500, -0x4500, 0x7f00, -0x8000, -0x100)) 173 self.assertEqual(audioop.lin2lin(datas[1], 1, 4), 174 packs[4](0, 0x12000000, 0x45000000, -0x45000000, 175 0x7f000000, -0x80000000, -0x1000000)) 176 self.assertEqual(audioop.lin2lin(datas[2], 2, 1), 177 b'\x00\x12\x45\xba\x7f\x80\xff') 178 self.assertEqual(audioop.lin2lin(datas[2], 2, 4), 179 packs[4](0, 0x12340000, 0x45670000, -0x45670000, 180 0x7fff0000, -0x80000000, -0x10000)) 181 self.assertEqual(audioop.lin2lin(datas[4], 4, 1), 182 b'\x00\x12\x45\xba\x7f\x80\xff') 183 self.assertEqual(audioop.lin2lin(datas[4], 4, 2), 184 packs[2](0, 0x1234, 0x4567, -0x4568, 0x7fff, -0x8000, -1)) 88 185 89 186 def test_adpcm2lin(self): 187 self.assertEqual(audioop.adpcm2lin(b'\x07\x7f\x7f', 1, None), 188 (b'\x00\x00\x00\xff\x00\xff', (-179, 40))) 189 self.assertEqual(audioop.adpcm2lin(b'\x07\x7f\x7f', 2, None), 190 (packs[2](0, 0xb, 0x29, -0x16, 0x72, -0xb3), (-179, 40))) 191 self.assertEqual(audioop.adpcm2lin(b'\x07\x7f\x7f', 4, None), 192 (packs[4](0, 0xb0000, 0x290000, -0x160000, 0x720000, 193 -0xb30000), (-179, 40))) 194 90 195 # Very cursory test 91 self.assertEqual(audioop.adpcm2lin('\0\0', 1, None), ('\0\0\0\0', (0,0))) 196 for w in 1, 2, 4: 197 self.assertEqual(audioop.adpcm2lin(b'\0' * 5, w, None), 198 (b'\0' * w * 10, (0, 0))) 92 199 93 200 def test_lin2adpcm(self): 201 self.assertEqual(audioop.lin2adpcm(datas[1], 1, None), 202 (b'\x07\x7f\x7f', (-221, 39))) 203 self.assertEqual(audioop.lin2adpcm(datas[2], 2, None), 204 (b'\x07\x7f\x7f', (31, 39))) 205 self.assertEqual(audioop.lin2adpcm(datas[4], 4, None), 206 (b'\x07\x7f\x7f', (31, 39))) 207 94 208 # Very cursory test 95 self.assertEqual(audioop.lin2adpcm('\0\0\0\0', 1, None), ('\0\0', (0,0))) 209 for w in 1, 2, 4: 210 self.assertEqual(audioop.lin2adpcm(b'\0' * w * 10, w, None), 211 (b'\0' * 5, (0, 0))) 96 212 97 213 def test_lin2alaw(self): 98 self.assertEqual(audioop.lin2alaw(data[0], 1), '\xd5\xc5\xf5') 99 self.assertEqual(audioop.lin2alaw(data[1], 2), '\xd5\xd5\xd5') 100 self.assertEqual(audioop.lin2alaw(data[2], 4), '\xd5\xd5\xd5') 214 self.assertEqual(audioop.lin2alaw(datas[1], 1), 215 b'\xd5\x87\xa4\x24\xaa\x2a\x5a') 216 self.assertEqual(audioop.lin2alaw(datas[2], 2), 217 b'\xd5\x87\xa4\x24\xaa\x2a\x55') 218 self.assertEqual(audioop.lin2alaw(datas[4], 4), 219 b'\xd5\x87\xa4\x24\xaa\x2a\x55') 101 220 102 221 def test_alaw2lin(self): 103 # Cursory 104 d = audioop.lin2alaw(data[0], 1) 105 self.assertEqual(audioop.alaw2lin(d, 1), data[0]) 222 encoded = b'\x00\x03\x24\x2a\x51\x54\x55\x58\x6b\x71\x7f'\ 223 b'\x80\x83\xa4\xaa\xd1\xd4\xd5\xd8\xeb\xf1\xff' 224 src = [-688, -720, -2240, -4032, -9, -3, -1, -27, -244, -82, -106, 225 688, 720, 2240, 4032, 9, 3, 1, 27, 244, 82, 106] 226 for w in 1, 2, 4: 227 self.assertEqual(audioop.alaw2lin(encoded, w), 228 packs[w](*(x << (w * 8) >> 13 for x in src))) 229 230 encoded = ''.join(chr(x) for x in xrange(256)) 231 for w in 2, 4: 232 decoded = audioop.alaw2lin(encoded, w) 233 self.assertEqual(audioop.lin2alaw(decoded, w), encoded) 106 234 107 235 def test_lin2ulaw(self): 108 self.assertEqual(audioop.lin2ulaw(data[0], 1), '\xff\xe7\xdb') 109 self.assertEqual(audioop.lin2ulaw(data[1], 2), '\xff\xff\xff') 110 self.assertEqual(audioop.lin2ulaw(data[2], 4), '\xff\xff\xff') 236 self.assertEqual(audioop.lin2ulaw(datas[1], 1), 237 b'\xff\xad\x8e\x0e\x80\x00\x67') 238 self.assertEqual(audioop.lin2ulaw(datas[2], 2), 239 b'\xff\xad\x8e\x0e\x80\x00\x7e') 240 self.assertEqual(audioop.lin2ulaw(datas[4], 4), 241 b'\xff\xad\x8e\x0e\x80\x00\x7e') 111 242 112 243 def test_ulaw2lin(self): 113 # Cursory 114 d = audioop.lin2ulaw(data[0], 1) 115 self.assertEqual(audioop.ulaw2lin(d, 1), data[0]) 244 encoded = b'\x00\x0e\x28\x3f\x57\x6a\x76\x7c\x7e\x7f'\ 245 b'\x80\x8e\xa8\xbf\xd7\xea\xf6\xfc\xfe\xff' 246 src = [-8031, -4447, -1471, -495, -163, -53, -18, -6, -2, 0, 247 8031, 4447, 1471, 495, 163, 53, 18, 6, 2, 0] 248 for w in 1, 2, 4: 249 self.assertEqual(audioop.ulaw2lin(encoded, w), 250 packs[w](*(x << (w * 8) >> 14 for x in src))) 251 252 # Current u-law implementation has two codes fo 0: 0x7f and 0xff. 253 encoded = ''.join(chr(x) for x in range(127) + range(128, 256)) 254 for w in 2, 4: 255 decoded = audioop.ulaw2lin(encoded, w) 256 self.assertEqual(audioop.lin2ulaw(decoded, w), encoded) 116 257 117 258 def test_mul(self): 118 data2 = [] 119 for d in data: 120 str = '' 121 for s in d: 122 str = str + chr(ord(s)*2) 123 data2.append(str) 124 self.assertEqual(audioop.mul(data[0], 1, 2), data2[0]) 125 self.assertEqual(audioop.mul(data[1],2, 2), data2[1]) 126 self.assertEqual(audioop.mul(data[2], 4, 2), data2[2]) 259 for w in 1, 2, 4: 260 self.assertEqual(audioop.mul(b'', w, 2), b'') 261 self.assertEqual(audioop.mul(datas[w], w, 0), 262 b'\0' * len(datas[w])) 263 self.assertEqual(audioop.mul(datas[w], w, 1), 264 datas[w]) 265 self.assertEqual(audioop.mul(datas[1], 1, 2), 266 b'\x00\x24\x7f\x80\x7f\x80\xfe') 267 self.assertEqual(audioop.mul(datas[2], 2, 2), 268 packs[2](0, 0x2468, 0x7fff, -0x8000, 0x7fff, -0x8000, -2)) 269 self.assertEqual(audioop.mul(datas[4], 4, 2), 270 packs[4](0, 0x2468acf0, 0x7fffffff, -0x80000000, 271 0x7fffffff, -0x80000000, -2)) 127 272 128 273 def test_ratecv(self): 274 for w in 1, 2, 4: 275 self.assertEqual(audioop.ratecv(b'', w, 1, 8000, 8000, None), 276 (b'', (-1, ((0, 0),)))) 277 self.assertEqual(audioop.ratecv(b'', w, 5, 8000, 8000, None), 278 (b'', (-1, ((0, 0),) * 5))) 279 self.assertEqual(audioop.ratecv(b'', w, 1, 8000, 16000, None), 280 (b'', (-2, ((0, 0),)))) 281 self.assertEqual(audioop.ratecv(datas[w], w, 1, 8000, 8000, None)[0], 282 datas[w]) 129 283 state = None 130 d1, state = audioop.ratecv(data[0], 1, 1, 8000, 16000, state) 131 d2, state = audioop.ratecv(data[0], 1, 1, 8000, 16000, state) 132 self.assertEqual(d1 + d2, '\000\000\001\001\002\001\000\000\001\001\002') 284 d1, state = audioop.ratecv(b'\x00\x01\x02', 1, 1, 8000, 16000, state) 285 d2, state = audioop.ratecv(b'\x00\x01\x02', 1, 1, 8000, 16000, state) 286 self.assertEqual(d1 + d2, b'\000\000\001\001\002\001\000\000\001\001\002') 287 288 for w in 1, 2, 4: 289 d0, state0 = audioop.ratecv(datas[w], w, 1, 8000, 16000, None) 290 d, state = b'', None 291 for i in range(0, len(datas[w]), w): 292 d1, state = audioop.ratecv(datas[w][i:i + w], w, 1, 293 8000, 16000, state) 294 d += d1 295 self.assertEqual(d, d0) 296 self.assertEqual(state, state0) 133 297 134 298 def test_reverse(self): 135 self.assertEqual(audioop.reverse(data[0], 1), '\2\1\0') 299 for w in 1, 2, 4: 300 self.assertEqual(audioop.reverse(b'', w), b'') 301 self.assertEqual(audioop.reverse(packs[w](0, 1, 2), w), 302 packs[w](2, 1, 0)) 136 303 137 304 def test_tomono(self): 138 data2 = '' 139 for d in data[0]: 140 data2 = data2 + d + d 141 self.assertEqual(audioop.tomono(data2, 1, 0.5, 0.5), data[0]) 305 for w in 1, 2, 4: 306 data1 = datas[w] 307 data2 = bytearray(2 * len(data1)) 308 for k in range(w): 309 data2[k::2*w] = data1[k::w] 310 self.assertEqual(audioop.tomono(str(data2), w, 1, 0), data1) 311 self.assertEqual(audioop.tomono(str(data2), w, 0, 1), b'\0' * len(data1)) 312 for k in range(w): 313 data2[k+w::2*w] = data1[k::w] 314 self.assertEqual(audioop.tomono(str(data2), w, 0.5, 0.5), data1) 142 315 143 316 def test_tostereo(self): 144 data2 = '' 145 for d in data[0]: 146 data2 = data2 + d + d 147 self.assertEqual(audioop.tostereo(data[0], 1, 1, 1), data2) 317 for w in 1, 2, 4: 318 data1 = datas[w] 319 data2 = bytearray(2 * len(data1)) 320 for k in range(w): 321 data2[k::2*w] = data1[k::w] 322 self.assertEqual(audioop.tostereo(data1, w, 1, 0), data2) 323 self.assertEqual(audioop.tostereo(data1, w, 0, 0), b'\0' * len(data2)) 324 for k in range(w): 325 data2[k+w::2*w] = data1[k::w] 326 self.assertEqual(audioop.tostereo(data1, w, 1, 1), data2) 148 327 149 328 def test_findfactor(self): 150 self.assertEqual(audioop.findfactor(data[1], data[1]), 1.0) 329 self.assertEqual(audioop.findfactor(datas[2], datas[2]), 1.0) 330 self.assertEqual(audioop.findfactor(b'\0' * len(datas[2]), datas[2]), 331 0.0) 151 332 152 333 def test_findfit(self): 153 self.assertEqual(audioop.findfit(data[1], data[1]), (0, 1.0)) 334 self.assertEqual(audioop.findfit(datas[2], datas[2]), (0, 1.0)) 335 self.assertEqual(audioop.findfit(datas[2], packs[2](1, 2, 0)), 336 (1, 8038.8)) 337 self.assertEqual(audioop.findfit(datas[2][:-2] * 5 + datas[2], datas[2]), 338 (30, 1.0)) 154 339 155 340 def test_findmax(self): 156 self.assertEqual(audioop.findmax(data [1], 1), 2)341 self.assertEqual(audioop.findmax(datas[2], 1), 5) 157 342 158 343 def test_getsample(self): 159 for i in range(3): 160 self.assertEqual(audioop.getsample(data[0], 1, i), i) 161 self.assertEqual(audioop.getsample(data[1], 2, i), i) 162 self.assertEqual(audioop.getsample(data[2], 4, i), i) 344 for w in 1, 2, 4: 345 data = packs[w](0, 1, -1, maxvalues[w], minvalues[w]) 346 self.assertEqual(audioop.getsample(data, w, 0), 0) 347 self.assertEqual(audioop.getsample(data, w, 1), 1) 348 self.assertEqual(audioop.getsample(data, w, 2), -1) 349 self.assertEqual(audioop.getsample(data, w, 3), maxvalues[w]) 350 self.assertEqual(audioop.getsample(data, w, 4), minvalues[w]) 163 351 164 352 def test_negativelen(self): … … 167 355 audioop.findmax, ''.join( chr(x) for x in xrange(256)), -2392392) 168 356 357 def test_issue7673(self): 358 state = None 359 for data, size in INVALID_DATA: 360 size2 = size 361 self.assertRaises(audioop.error, audioop.getsample, data, size, 0) 362 self.assertRaises(audioop.error, audioop.max, data, size) 363 self.assertRaises(audioop.error, audioop.minmax, data, size) 364 self.assertRaises(audioop.error, audioop.avg, data, size) 365 self.assertRaises(audioop.error, audioop.rms, data, size) 366 self.assertRaises(audioop.error, audioop.avgpp, data, size) 367 self.assertRaises(audioop.error, audioop.maxpp, data, size) 368 self.assertRaises(audioop.error, audioop.cross, data, size) 369 self.assertRaises(audioop.error, audioop.mul, data, size, 1.0) 370 self.assertRaises(audioop.error, audioop.tomono, data, size, 0.5, 0.5) 371 self.assertRaises(audioop.error, audioop.tostereo, data, size, 0.5, 0.5) 372 self.assertRaises(audioop.error, audioop.add, data, data, size) 373 self.assertRaises(audioop.error, audioop.bias, data, size, 0) 374 self.assertRaises(audioop.error, audioop.reverse, data, size) 375 self.assertRaises(audioop.error, audioop.lin2lin, data, size, size2) 376 self.assertRaises(audioop.error, audioop.ratecv, data, size, 1, 1, 1, state) 377 self.assertRaises(audioop.error, audioop.lin2ulaw, data, size) 378 self.assertRaises(audioop.error, audioop.lin2alaw, data, size) 379 self.assertRaises(audioop.error, audioop.lin2adpcm, data, size, state) 380 381 def test_wrongsize(self): 382 data = b'abcdefgh' 383 state = None 384 for size in (-1, 0, 3, 5, 1024): 385 self.assertRaises(audioop.error, audioop.ulaw2lin, data, size) 386 self.assertRaises(audioop.error, audioop.alaw2lin, data, size) 387 self.assertRaises(audioop.error, audioop.adpcm2lin, data, size, state) 388 169 389 def test_main(): 170 390 run_unittest(TestAudioop)
Note:
See TracChangeset
for help on using the changeset viewer.