Updated to include the verbose flag from test_support

This commit is contained in:
Roger E. Masse 1997-01-03 19:20:17 +00:00
parent 549ab711aa
commit 7a61f871a7

View file

@ -1,209 +1,254 @@
# Test audioop. # Test audioop.
import audioop import audioop
from test_support import verbose
def gendata1(): def gendata1():
return '\0\1\2' return '\0\1\2'
def gendata2(): def gendata2():
if audioop.getsample('\0\1', 2, 0) == 1: if verbose:
return '\0\0\0\1\0\2' print 'getsample'
else: if audioop.getsample('\0\1', 2, 0) == 1:
return '\0\0\1\0\2\0' return '\0\0\0\1\0\2'
else:
return '\0\0\1\0\2\0'
def gendata4(): def gendata4():
if audioop.getsample('\0\0\0\1', 4, 0) == 1: if verbose:
return '\0\0\0\0\0\0\0\1\0\0\0\2' print 'getsample'
else: if audioop.getsample('\0\0\0\1', 4, 0) == 1:
return '\0\0\0\0\1\0\0\0\2\0\0\0' return '\0\0\0\0\0\0\0\1\0\0\0\2'
else:
return '\0\0\0\0\1\0\0\0\2\0\0\0'
def testmax(data): def testmax(data):
if audioop.max(data[0], 1) <> 2 or \ if verbose:
audioop.max(data[1], 2) <> 2 or \ print 'max'
audioop.max(data[2], 4) <> 2: if audioop.max(data[0], 1) <> 2 or \
return 0 audioop.max(data[1], 2) <> 2 or \
return 1 audioop.max(data[2], 4) <> 2:
return 0
return 1
def testminmax(data): def testminmax(data):
if audioop.minmax(data[0], 1) <> (0, 2) or \ if verbose:
audioop.minmax(data[1], 2) <> (0, 2) or \ print 'minmax'
audioop.minmax(data[2], 4) <> (0, 2): if audioop.minmax(data[0], 1) <> (0, 2) or \
return 0 audioop.minmax(data[1], 2) <> (0, 2) or \
return 1 audioop.minmax(data[2], 4) <> (0, 2):
return 0
return 1
def testmaxpp(data): def testmaxpp(data):
if audioop.maxpp(data[0], 1) <> 0 or \ if verbose:
audioop.maxpp(data[1], 2) <> 0 or \ print 'maxpp'
audioop.maxpp(data[2], 4) <> 0: if audioop.maxpp(data[0], 1) <> 0 or \
return 0 audioop.maxpp(data[1], 2) <> 0 or \
return 1 audioop.maxpp(data[2], 4) <> 0:
return 0
return 1
def testavg(data): def testavg(data):
if audioop.avg(data[0], 1) <> 1 or \ if verbose:
audioop.avg(data[1], 2) <> 1 or \ print 'avg'
audioop.avg(data[2], 4) <> 1: if audioop.avg(data[0], 1) <> 1 or \
return 0 audioop.avg(data[1], 2) <> 1 or \
return 1 audioop.avg(data[2], 4) <> 1:
return 0
return 1
def testavgpp(data): def testavgpp(data):
if audioop.avgpp(data[0], 1) <> 0 or \ if verbose:
audioop.avgpp(data[1], 2) <> 0 or \ print 'avgpp'
audioop.avgpp(data[2], 4) <> 0: if audioop.avgpp(data[0], 1) <> 0 or \
return 0 audioop.avgpp(data[1], 2) <> 0 or \
return 1 audioop.avgpp(data[2], 4) <> 0:
return 0
return 1
def testrms(data): def testrms(data):
if audioop.rms(data[0], 1) <> 1 or \ if audioop.rms(data[0], 1) <> 1 or \
audioop.rms(data[1], 2) <> 1 or \ audioop.rms(data[1], 2) <> 1 or \
audioop.rms(data[2], 4) <> 1: audioop.rms(data[2], 4) <> 1:
return 0 return 0
return 1 return 1
def testcross(data): def testcross(data):
if audioop.cross(data[0], 1) <> 0 or \ if verbose:
audioop.cross(data[1], 2) <> 0 or \ print 'cross'
audioop.cross(data[2], 4) <> 0: if audioop.cross(data[0], 1) <> 0 or \
return 0 audioop.cross(data[1], 2) <> 0 or \
return 1 audioop.cross(data[2], 4) <> 0:
return 0
return 1
def testadd(data): def testadd(data):
data2 = [] if verbose:
for d in data: print 'add'
str = '' data2 = []
for s in d: for d in data:
str = str + chr(ord(s)*2) str = ''
data2.append(str) for s in d:
if audioop.add(data[0], data[0], 1) <> data2[0] or \ str = str + chr(ord(s)*2)
audioop.add(data[1], data[1], 2) <> data2[1] or \ data2.append(str)
audioop.add(data[2], data[2], 4) <> data2[2]: if audioop.add(data[0], data[0], 1) <> data2[0] or \
return 0 audioop.add(data[1], data[1], 2) <> data2[1] or \
return 1 audioop.add(data[2], data[2], 4) <> data2[2]:
return 0
return 1
def testbias(data): def testbias(data):
# Note: this test assumes that avg() works if verbose:
d1 = audioop.bias(data[0], 1, 100) print 'bias'
d2 = audioop.bias(data[1], 2, 100) # Note: this test assumes that avg() works
d4 = audioop.bias(data[2], 4, 100) d1 = audioop.bias(data[0], 1, 100)
if audioop.avg(d1, 1) <> 101 or \ d2 = audioop.bias(data[1], 2, 100)
audioop.avg(d2, 2) <> 101 or \ d4 = audioop.bias(data[2], 4, 100)
audioop.avg(d4, 4) <> 101: if audioop.avg(d1, 1) <> 101 or \
return 0 audioop.avg(d2, 2) <> 101 or \
return 1 audioop.avg(d4, 4) <> 101:
return 0
return 1
def testlin2lin(data): def testlin2lin(data):
# too simple: we test only the size if verbose:
for d1 in data: print 'lin2lin'
for d2 in data: # too simple: we test only the size
got = len(d1)/3 for d1 in data:
wtd = len(d2)/3 for d2 in data:
if len(audioop.lin2lin(d1, got, wtd)) <> len(d2): got = len(d1)/3
return 0 wtd = len(d2)/3
return 1 if len(audioop.lin2lin(d1, got, wtd)) <> len(d2):
return 0
return 1
def testadpcm2lin(data): def testadpcm2lin(data):
# Very cursory test # Very cursory test
if audioop.adpcm2lin('\0\0', 1, None) <> ('\0\0\0\0', (0,0)): if audioop.adpcm2lin('\0\0', 1, None) <> ('\0\0\0\0', (0,0)):
return 0 return 0
return 1 return 1
def testlin2adpcm(data): def testlin2adpcm(data):
# Very cursory test if verbose:
if audioop.lin2adpcm('\0\0\0\0', 1, None) <> ('\0\0', (0,0)): print 'lin2adpcm'
return 0 # Very cursory test
return 1 if audioop.lin2adpcm('\0\0\0\0', 1, None) <> ('\0\0', (0,0)):
return 0
return 1
def testlin2ulaw(data): def testlin2ulaw(data):
if audioop.lin2ulaw(data[0], 1) <> '\377\347\333' or \ if verbose:
audioop.lin2ulaw(data[1], 2) <> '\377\377\377' or \ print 'lin2ulaw'
audioop.lin2ulaw(data[2], 4) <> '\377\377\377': if audioop.lin2ulaw(data[0], 1) <> '\377\347\333' or \
return 0 audioop.lin2ulaw(data[1], 2) <> '\377\377\377' or \
return 1 audioop.lin2ulaw(data[2], 4) <> '\377\377\377':
return 0
return 1
def testulaw2lin(data): def testulaw2lin(data):
# Cursory if verbose:
d = audioop.lin2ulaw(data[0], 1) print 'ulaw2lin'
if audioop.ulaw2lin(d, 1) <> data[0]: # Cursory
return 0 d = audioop.lin2ulaw(data[0], 1)
return 1 if audioop.ulaw2lin(d, 1) <> data[0]:
return 0
return 1
def testmul(data): def testmul(data):
data2 = [] if verbose:
for d in data: print 'mul'
str = '' data2 = []
for s in d: for d in data:
str = str + chr(ord(s)*2) str = ''
data2.append(str) for s in d:
if audioop.mul(data[0], 1, 2) <> data2[0] or \ str = str + chr(ord(s)*2)
audioop.mul(data[1],2, 2) <> data2[1] or \ data2.append(str)
audioop.mul(data[2], 4, 2) <> data2[2]: if audioop.mul(data[0], 1, 2) <> data2[0] or \
return 0 audioop.mul(data[1],2, 2) <> data2[1] or \
return 1 audioop.mul(data[2], 4, 2) <> data2[2]:
return 0
return 1
def testreverse(data): def testreverse(data):
if audioop.reverse(data[0], 1) <> '\2\1\0': if verbose:
return 0 print 'reverse'
return 1 if audioop.reverse(data[0], 1) <> '\2\1\0':
return 0
return 1
def testtomono(data): def testtomono(data):
data2 = '' if verbose:
for d in data[0]: print 'tomono'
data2 = data2 + d + d data2 = ''
if audioop.tomono(data2, 1, 0.5, 0.5) <> data[0]: for d in data[0]:
return 0 data2 = data2 + d + d
return 1 if audioop.tomono(data2, 1, 0.5, 0.5) <> data[0]:
return 0
return 1
def testtostereo(data): def testtostereo(data):
data2 = '' if verbose:
for d in data[0]: print 'tostereo'
data2 = data2 + d + d data2 = ''
if audioop.tostereo(data[0], 1, 1, 1) <> data2: for d in data[0]:
return 0 data2 = data2 + d + d
return 1 if audioop.tostereo(data[0], 1, 1, 1) <> data2:
return 0
return 1
def testfindfactor(data): def testfindfactor(data):
if audioop.findfactor(data[1], data[1]) <> 1.0: if verbose:
return 0 print 'findfactor'
return 1 if audioop.findfactor(data[1], data[1]) <> 1.0:
return 0
return 1
def testfindfit(data): def testfindfit(data):
if audioop.findfit(data[1], data[1]) <> (0, 1.0): if verbose:
return 0 print 'findfit'
return 1 if audioop.findfit(data[1], data[1]) <> (0, 1.0):
return 0
return 1
def testfindmax(data): def testfindmax(data):
if audioop.findmax(data[1], 1) <> 2: if verbose:
return 0 print 'findmax'
return 1 if audioop.findmax(data[1], 1) <> 2:
return 0
return 1
def testgetsample(data): def testgetsample(data):
for i in range(3): if verbose:
if audioop.getsample(data[0], 1, i) <> i or \ print 'getsample'
audioop.getsample(data[1], 2, i) <> i or \ for i in range(3):
audioop.getsample(data[2], 4, i) <> i: if audioop.getsample(data[0], 1, i) <> i or \
return 0 audioop.getsample(data[1], 2, i) <> i or \
return 1 audioop.getsample(data[2], 4, i) <> i:
return 0
return 1
def testone(name, data): def testone(name, data):
try: try:
func = eval('test'+name) func = eval('test'+name)
except NameError: except NameError:
print 'No test found for audioop.'+name+'()' print 'No test found for audioop.'+name+'()'
return return
try: try:
rv = func(data) rv = func(data)
except 'xx': except 'xx':
print 'Test FAILED for audioop.'+name+'() (with an exception)' print 'Test FAILED for audioop.'+name+'() (with an exception)'
return return
if not rv: if not rv:
print 'Test FAILED for audioop.'+name+'()' print 'Test FAILED for audioop.'+name+'()'
def testall(): def testall():
data = [gendata1(), gendata2(), gendata4()] data = [gendata1(), gendata2(), gendata4()]
names = dir(audioop) names = dir(audioop)
# We know there is a routine 'add' # We know there is a routine 'add'
routines = [] routines = []
for n in names: for n in names:
if type(eval('audioop.'+n)) == type(audioop.add): if type(eval('audioop.'+n)) == type(audioop.add):
routines.append(n) routines.append(n)
for n in routines: for n in routines:
testone(n, data) testone(n, data)
testall() testall()