mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| 
 | |
| """ Compare the output of two codecs.
 | |
| 
 | |
| (c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com).
 | |
| 
 | |
|     Licensed to PSF under a Contributor Agreement.
 | |
| 
 | |
| """
 | |
| import sys
 | |
| 
 | |
| def compare_codecs(encoding1, encoding2):
 | |
| 
 | |
|     print('Comparing encoding/decoding of   %r and   %r' % (encoding1, encoding2))
 | |
|     mismatch = 0
 | |
|     # Check encoding
 | |
|     for i in range(sys.maxunicode):
 | |
|         u = chr(i)
 | |
|         try:
 | |
|             c1 = u.encode(encoding1)
 | |
|         except UnicodeError as reason:
 | |
|             c1 = '<undefined>'
 | |
|         try:
 | |
|             c2 = u.encode(encoding2)
 | |
|         except UnicodeError as reason:
 | |
|             c2 = '<undefined>'
 | |
|         if c1 != c2:
 | |
|             print(' * encoding mismatch for 0x%04X: %-14r != %r' % \
 | |
|                   (i, c1, c2))
 | |
|             mismatch += 1
 | |
|     # Check decoding
 | |
|     for i in range(256):
 | |
|         c = chr(i)
 | |
|         try:
 | |
|             u1 = c.decode(encoding1)
 | |
|         except UnicodeError:
 | |
|             u1 = '<undefined>'
 | |
|         try:
 | |
|             u2 = c.decode(encoding2)
 | |
|         except UnicodeError:
 | |
|             u2 = '<undefined>'
 | |
|         if u1 != u2:
 | |
|             print(' * decoding mismatch for 0x%04X: %-14r != %r' % \
 | |
|                   (i, u1, u2))
 | |
|             mismatch += 1
 | |
|     if mismatch:
 | |
|         print()
 | |
|         print('Found %i mismatches' % mismatch)
 | |
|     else:
 | |
|         print('-> Codecs are identical.')
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     compare_codecs(sys.argv[1], sys.argv[2])
 | 
