3 from test
.test_support
import run_unittest
10 if audioop
.getsample('\0\1', 2, 0) == 1:
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'
19 return '\0\0\0\0\1\0\0\0\2\0\0\0'
21 data
= [gendata1(), gendata2(), gendata4()]
24 class TestAudioop(unittest
.TestCase
):
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)
31 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))
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)
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)
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)
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)
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)
66 str = str + chr(ord(s
)*2)
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])
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)
81 def test_lin2lin(self
):
82 # too simple: we test only the size
87 self
.assertEqual(len(audioop
.lin2lin(d1
, got
, wtd
)), len(d2
))
89 def test_adpcm2lin(self
):
91 self
.assertEqual(audioop
.adpcm2lin('\0\0', 1, None), ('\0\0\0\0', (0,0)))
93 def test_lin2adpcm(self
):
95 self
.assertEqual(audioop
.lin2adpcm('\0\0\0\0', 1, None), ('\0\0', (0,0)))
97 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')
102 def test_alaw2lin(self
):
104 d
= audioop
.lin2alaw(data
[0], 1)
105 self
.assertEqual(audioop
.alaw2lin(d
, 1), data
[0])
107 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')
112 def test_ulaw2lin(self
):
114 d
= audioop
.lin2ulaw(data
[0], 1)
115 self
.assertEqual(audioop
.ulaw2lin(d
, 1), data
[0])
122 str = str + chr(ord(s
)*2)
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])
128 def test_ratecv(self
):
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')
134 def test_reverse(self
):
135 self
.assertEqual(audioop
.reverse(data
[0], 1), '\2\1\0')
137 def test_tomono(self
):
140 data2
= data2
+ d
+ d
141 self
.assertEqual(audioop
.tomono(data2
, 1, 0.5, 0.5), data
[0])
143 def test_tostereo(self
):
146 data2
= data2
+ d
+ d
147 self
.assertEqual(audioop
.tostereo(data
[0], 1, 1, 1), data2
)
149 def test_findfactor(self
):
150 self
.assertEqual(audioop
.findfactor(data
[1], data
[1]), 1.0)
152 def test_findfit(self
):
153 self
.assertEqual(audioop
.findfit(data
[1], data
[1]), (0, 1.0))
155 def test_findmax(self
):
156 self
.assertEqual(audioop
.findmax(data
[1], 1), 2)
158 def test_getsample(self
):
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
)
164 def test_negativelen(self
):
165 # from issue 3306, previously it segfaulted
166 self
.assertRaises(audioop
.error
,
167 audioop
.findmax
, ''.join( chr(x
) for x
in xrange(256)), -2392392)
170 run_unittest(TestAudioop
)
172 if __name__
== '__main__':