# Python test set -- part 4b, built-in functions n-z from test_support import * print 'oct' if oct(100) != '0144': raise TestFailed, 'oct(100)' if oct(100L) != '0144L': raise TestFailed, 'oct(100L)' if oct(-100) != '-0144': raise TestFailed, 'oct(-100)' if oct(-100L) != '-0144L': raise TestFailed, 'oct(-100L)' print 'open' # NB the first 4 lines are also used to test input and raw_input, below fp = open(TESTFN, 'w') try: fp.write('1+1\n') fp.write('1+1\n') fp.write('The quick brown fox jumps over the lazy dog') fp.write('.\n') fp.write('Dear John\n') fp.write('XXX'*100) fp.write('YYY'*100) finally: fp.close() # fp = open(TESTFN, 'r') try: if fp.readline(4) <> '1+1\n': raise TestFailed, 'readline(4) # exact' if fp.readline(4) <> '1+1\n': raise TestFailed, 'readline(4) # exact' if fp.readline() <> 'The quick brown fox jumps over the lazy dog.\n': raise TestFailed, 'readline() # default' if fp.readline(4) <> 'Dear': raise TestFailed, 'readline(4) # short' if fp.readline(100) <> ' John\n': raise TestFailed, 'readline(100)' if fp.read(300) <> 'XXX'*100: raise TestFailed, 'read(300)' if fp.read(1000) <> 'YYY'*100: raise TestFailed, 'read(1000) # truncate' finally: fp.close() print 'ord' if ord(' ') <> 32: raise TestFailed, 'ord(\' \')' if ord('A') <> 65: raise TestFailed, 'ord(\'A\')' if ord('a') <> 97: raise TestFailed, 'ord(\'a\')' print 'pow' if pow(0,0) <> 1: raise TestFailed, 'pow(0,0)' if pow(0,1) <> 0: raise TestFailed, 'pow(0,1)' if pow(1,0) <> 1: raise TestFailed, 'pow(1,0)' if pow(1,1) <> 1: raise TestFailed, 'pow(1,1)' # if pow(2,0) <> 1: raise TestFailed, 'pow(2,0)' if pow(2,10) <> 1024: raise TestFailed, 'pow(2,10)' if pow(2,20) <> 1024*1024: raise TestFailed, 'pow(2,20)' if pow(2,30) <> 1024*1024*1024: raise TestFailed, 'pow(2,30)' # if pow(-2,0) <> 1: raise TestFailed, 'pow(-2,0)' if pow(-2,1) <> -2: raise TestFailed, 'pow(-2,1)' if pow(-2,2) <> 4: raise TestFailed, 'pow(-2,2)' if pow(-2,3) <> -8: raise TestFailed, 'pow(-2,3)' # if pow(0L,0) <> 1: raise TestFailed, 'pow(0L,0)' if pow(0L,1) <> 0: raise TestFailed, 'pow(0L,1)' if pow(1L,0) <> 1: raise TestFailed, 'pow(1L,0)' if pow(1L,1) <> 1: raise TestFailed, 'pow(1L,1)' # if pow(2L,0) <> 1: raise TestFailed, 'pow(2L,0)' if pow(2L,10) <> 1024: raise TestFailed, 'pow(2L,10)' if pow(2L,20) <> 1024*1024: raise TestFailed, 'pow(2L,20)' if pow(2L,30) <> 1024*1024*1024: raise TestFailed, 'pow(2L,30)' # if pow(-2L,0) <> 1: raise TestFailed, 'pow(-2L,0)' if pow(-2L,1) <> -2: raise TestFailed, 'pow(-2L,1)' if pow(-2L,2) <> 4: raise TestFailed, 'pow(-2L,2)' if pow(-2L,3) <> -8: raise TestFailed, 'pow(-2L,3)' # if fcmp(pow(0.,0), 1.): raise TestFailed, 'pow(0.,0)' if fcmp(pow(0.,1), 0.): raise TestFailed, 'pow(0.,1)' if fcmp(pow(1.,0), 1.): raise TestFailed, 'pow(1.,0)' if fcmp(pow(1.,1), 1.): raise TestFailed, 'pow(1.,1)' # if fcmp(pow(2.,0), 1.): raise TestFailed, 'pow(2.,0)' if fcmp(pow(2.,10), 1024.): raise TestFailed, 'pow(2.,10)' if fcmp(pow(2.,20), 1024.*1024.): raise TestFailed, 'pow(2.,20)' if fcmp(pow(2.,30), 1024.*1024.*1024.): raise TestFailed, 'pow(2.,30)' # # XXX These don't work -- negative float to the float power... #if fcmp(pow(-2.,0), 1.): raise TestFailed, 'pow(-2.,0)' #if fcmp(pow(-2.,1), -2.): raise TestFailed, 'pow(-2.,1)' #if fcmp(pow(-2.,2), 4.): raise TestFailed, 'pow(-2.,2)' #if fcmp(pow(-2.,3), -8.): raise TestFailed, 'pow(-2.,3)' print 'range' if range(3) <> [0, 1, 2]: raise TestFailed, 'range(3)' if range(1, 5) <> [1, 2, 3, 4]: raise TestFailed, 'range(1, 5)' if range(0) <> []: raise TestFailed, 'range(0)' if range(-3) <> []: raise TestFailed, 'range(-3)' if range(1, 10, 3) <> [1, 4, 7]: raise TestFailed, 'range(1, 10, 3)' if range(5, -5, -3) <> [5, 2, -1, -4]: raise TestFailed, 'range(5, -5, -3)' print 'input and raw_input' import sys fp = open(TESTFN, 'r') savestdin = sys.stdin try: sys.stdin = fp if input() <> 2: raise TestFailed, 'input()' if input('testing\n') <> 2: raise TestFailed, 'input()' if raw_input() <> 'The quick brown fox jumps over the lazy dog.': raise TestFailed, 'raw_input()' if raw_input('testing\n') <> 'Dear John': raise TestFailed, 'raw_input(\'testing\\n\')' finally: sys.stdin = savestdin fp.close() print 'reload' import string reload(string) print 'repr' if repr('') <> '\'\'': raise TestFailed, 'repr(\'\')' if repr(0) <> '0': raise TestFailed, 'repr(0)' if repr(0L) <> '0L': raise TestFailed, 'repr(0L)' if repr(()) <> '()': raise TestFailed, 'repr(())' if repr([]) <> '[]': raise TestFailed, 'repr([])' if repr({}) <> '{}': raise TestFailed, 'repr({})' print 'setattr' import sys setattr(sys, 'foobar', 1) if sys.foobar != 1: raise TestFailed, 'setattr(sys, \'foobar\', 1)' print 'str' if str('') <> '': raise TestFailed, 'str(\'\')' if str(0) <> '0': raise TestFailed, 'str(0)' if str(0L) <> '0L': raise TestFailed, 'str(0L)' if str(()) <> '()': raise TestFailed, 'str(())' if str([]) <> '[]': raise TestFailed, 'str([])' if str({}) <> '{}': raise TestFailed, 'str({})' print 'type' if type('') <> type('123') or type('') == type(()): raise TestFailed, 'type()' # Epilogue -- unlink the temp file unlink(TESTFN)