mirror of
				https://github.com/python/cpython.git
				synced 2025-10-29 12:44:56 +00:00 
			
		
		
		
	
		
			
	
	
		
			71 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from test.support import run_unittest, TESTFN | ||
|  | import unittest | ||
|  | import os | ||
|  | 
 | ||
|  | import sunau | ||
|  | 
 | ||
|  | nchannels = 2 | ||
|  | sampwidth = 2 | ||
|  | framerate = 8000 | ||
|  | nframes = 100 | ||
|  | 
 | ||
|  | class SunAUTest(unittest.TestCase): | ||
|  | 
 | ||
|  |     def setUp(self): | ||
|  |         self.f = None | ||
|  | 
 | ||
|  |     def tearDown(self): | ||
|  |         if self.f is not None: | ||
|  |             self.f.close() | ||
|  |         try: | ||
|  |             os.remove(TESTFN) | ||
|  |         except OSError: | ||
|  |             pass | ||
|  | 
 | ||
|  |     def test_lin(self): | ||
|  |         self.f = sunau.open(TESTFN, 'w') | ||
|  |         self.f.setnchannels(nchannels) | ||
|  |         self.f.setsampwidth(sampwidth) | ||
|  |         self.f.setframerate(framerate) | ||
|  |         self.f.setcomptype('NONE', 'not compressed') | ||
|  |         output = b'\xff\x00\x12\xcc' * (nframes * nchannels * sampwidth // 4) | ||
|  |         self.f.writeframes(output) | ||
|  |         self.f.close() | ||
|  | 
 | ||
|  |         self.f = sunau.open(TESTFN, 'rb') | ||
|  |         self.assertEqual(nchannels, self.f.getnchannels()) | ||
|  |         self.assertEqual(sampwidth, self.f.getsampwidth()) | ||
|  |         self.assertEqual(framerate, self.f.getframerate()) | ||
|  |         self.assertEqual(nframes, self.f.getnframes()) | ||
|  |         self.assertEqual('NONE', self.f.getcomptype()) | ||
|  |         self.assertEqual(self.f.readframes(nframes), output) | ||
|  |         self.f.close() | ||
|  | 
 | ||
|  |     def test_ulaw(self): | ||
|  |         self.f = sunau.open(TESTFN, 'w') | ||
|  |         self.f.setnchannels(nchannels) | ||
|  |         self.f.setsampwidth(sampwidth) | ||
|  |         self.f.setframerate(framerate) | ||
|  |         self.f.setcomptype('ULAW', '') | ||
|  |         # u-law compression is lossy, therefore we can't expect non-zero data | ||
|  |         # to come back unchanged. | ||
|  |         output = b'\0' * nframes * nchannels * sampwidth | ||
|  |         self.f.writeframes(output) | ||
|  |         self.f.close() | ||
|  | 
 | ||
|  |         self.f = sunau.open(TESTFN, 'rb') | ||
|  |         self.assertEqual(nchannels, self.f.getnchannels()) | ||
|  |         self.assertEqual(sampwidth, self.f.getsampwidth()) | ||
|  |         self.assertEqual(framerate, self.f.getframerate()) | ||
|  |         self.assertEqual(nframes, self.f.getnframes()) | ||
|  |         self.assertEqual('ULAW', self.f.getcomptype()) | ||
|  |         self.assertEqual(self.f.readframes(nframes), output) | ||
|  |         self.f.close() | ||
|  | 
 | ||
|  | 
 | ||
|  | def test_main(): | ||
|  |     run_unittest(SunAUTest) | ||
|  | 
 | ||
|  | if __name__ == "__main__": | ||
|  |     unittest.main() |