*/t/*.py: Fix the various testing scripts for Python 3 compatibility.
[mLib] / utils / t / bits-testgen.py
index 05e4baf..c43f496 100644 (file)
@@ -7,6 +7,8 @@
 import sys as SYS
 import random as R
 
+if SYS.version_info >= (3,): xrange = range
+
 NVEC = 64
 WD = 64
 LIMIT = 1 << WD
@@ -23,33 +25,33 @@ if seed is None: SEED = R.randrange(0, 1 << 32)
 else: SEED = int(seed, 0)
 R.seed(SEED)
 
-print '### Test vectors for 64-bit arithmetic macros'
-print '###   [generated; seed = 0x%08x]' % SEED
+print('### Test vectors for 64-bit arithmetic macros')
+print('###   [generated; seed = 0x%08x]' % SEED)
 
 def rol(x, n): return ((x << n) | (x >> (WD - n))) & MASK
 def ror(x, n): return ((x >> n) | (x << (WD - n))) & MASK
-def put(x): return '%0*x' % (WD/4, x)
+def put(x): return '%0*x' % (WD//4, x)
 
 for name, func in [('lsl', lambda x, n: x << n),
                    ('lsr', lambda x, n: x >> n),
                    ('rol', rol),
                    ('ror', ror)]:
-  print '\n%s64 {' % name
+  print('\n%s64 {' % name)
   for i in xrange(NVEC):
     x = R.randrange(LIMIT)
     sh = R.randrange(0, 70) & 63
-    print '  %s %2d %s;' % (put(x), sh, put(func(x, sh) & MASK))
+    print('  %s %2d %s;' % (put(x), sh, put(func(x, sh) & MASK)))
   for i in xrange(4):
     x = R.randrange(LIMIT)
     sh = 32
-    print '  %s %2d %s;' % (put(x), sh, put(func(x, sh) & MASK))
-  print '}'
+    print('  %s %2d %s;' % (put(x), sh, put(func(x, sh) & MASK)))
+  print('}')
 
 for name, func in [('add', lambda x, y: x + y),
                    ('sub', lambda x, y: x - y)]:
-  print '\n%s64 {' % name
+  print('\n%s64 {' % name)
   for i in xrange(NVEC):
     x = R.randrange(LIMIT)
     y = R.randrange(LIMIT)
-    print '  %s %s %s;' % (put(x), put(y), put(func(x, y) & MASK))
-  print '}'
+    print('  %s %s %s;' % (put(x), put(y), put(func(x, y) & MASK)))
+  print('}')