symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/test_audioop.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 import audioop
       
     2 import unittest
       
     3 from test.test_support import run_unittest
       
     4 
       
     5 
       
     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()]
       
    22 
       
    23 
       
    24 class TestAudioop(unittest.TestCase):
       
    25 
       
    26     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)
       
    30 
       
    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))
       
    35 
       
    36     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)
       
    40 
       
    41     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)
       
    45 
       
    46     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)
       
    50 
       
    51     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)
       
    55 
       
    56     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)
       
    60 
       
    61     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])
       
    71 
       
    72     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)
       
    80 
       
    81     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))
       
    88 
       
    89     def test_adpcm2lin(self):
       
    90         # Very cursory test
       
    91         self.assertEqual(audioop.adpcm2lin('\0\0', 1, None), ('\0\0\0\0', (0,0)))
       
    92 
       
    93     def test_lin2adpcm(self):
       
    94         # Very cursory test
       
    95         self.assertEqual(audioop.lin2adpcm('\0\0\0\0', 1, None), ('\0\0', (0,0)))
       
    96 
       
    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')
       
   101 
       
   102     def test_alaw2lin(self):
       
   103         # Cursory
       
   104         d = audioop.lin2alaw(data[0], 1)
       
   105         self.assertEqual(audioop.alaw2lin(d, 1), data[0])
       
   106 
       
   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')
       
   111 
       
   112     def test_ulaw2lin(self):
       
   113         # Cursory
       
   114         d = audioop.lin2ulaw(data[0], 1)
       
   115         self.assertEqual(audioop.ulaw2lin(d, 1), data[0])
       
   116 
       
   117     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])
       
   127 
       
   128     def test_ratecv(self):
       
   129         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')
       
   133 
       
   134     def test_reverse(self):
       
   135         self.assertEqual(audioop.reverse(data[0], 1), '\2\1\0')
       
   136 
       
   137     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])
       
   142 
       
   143     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)
       
   148 
       
   149     def test_findfactor(self):
       
   150         self.assertEqual(audioop.findfactor(data[1], data[1]), 1.0)
       
   151 
       
   152     def test_findfit(self):
       
   153         self.assertEqual(audioop.findfit(data[1], data[1]), (0, 1.0))
       
   154 
       
   155     def test_findmax(self):
       
   156         self.assertEqual(audioop.findmax(data[1], 1), 2)
       
   157 
       
   158     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)
       
   163 
       
   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)
       
   168 
       
   169 def test_main():
       
   170     run_unittest(TestAudioop)
       
   171 
       
   172 if __name__ == '__main__':
       
   173     test_main()