test_compile.py

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Python 代码 · 共 130 行

PY
130
字号
from test_support import verbose, TestFailedif verbose:    print "Testing whether compiler catches assignment to __debug__"try:    compile('__debug__ = 1', '?', 'single')except SyntaxError:    passimport __builtin__prev = __builtin__.__debug__setattr(__builtin__, '__debug__', 'sure')setattr(__builtin__, '__debug__', prev)if verbose:    print 'Running tests on argument handling'try:    exec 'def f(a, a): pass'    raise TestFailed, "duplicate arguments"except SyntaxError:    passtry:    exec 'def f(a = 0, a = 1): pass'    raise TestFailed, "duplicate keyword arguments"except SyntaxError:    passtry:    exec 'def f(a): global a; a = 1'    raise TestFailed, "variable is global and local"except SyntaxError:    passif verbose:    print "testing complex args"def comp_args((a, b)):    print a,bcomp_args((1, 2))def comp_args((a, b)=(3, 4)):    print a, bcomp_args((1, 2))comp_args()def comp_args(a, (b, c)):    print a, b, ccomp_args(1, (2, 3))def comp_args(a=2, (b, c)=(3, 4)):    print a, b, ccomp_args(1, (2, 3))comp_args()try:    exec 'def f(a=1, (b, c)): pass'    raise TestFailed, "non-default args after default"except SyntaxError:    passif verbose:    print "testing bad float literals"def expect_error(s):    try:        eval(s)        raise TestFailed("%r accepted" % s)    except SyntaxError:        passexpect_error("2e")expect_error("2.0e+")expect_error("1e-")expect_error("3-4e/21")if verbose:    print "testing literals with leading zeroes"def expect_same(test_source, expected):    got = eval(test_source)    if got != expected:        raise TestFailed("eval(%r) gave %r, but expected %r" %                         (test_source, got, expected))expect_error("077787")expect_error("0xj")expect_error("0x.")expect_error("0e")expect_same("0777", 511)expect_same("0777L", 511)expect_same("000777", 511)expect_same("0xff", 255)expect_same("0xffL", 255)expect_same("0XfF", 255)expect_same("0777.", 777)expect_same("0777.0", 777)expect_same("000000000000000000000000000000000000000000000000000777e0", 777)expect_same("0777e1", 7770)expect_same("0e0", 0)expect_same("0000E-012", 0)expect_same("09.5", 9.5)expect_same("0777j", 777j)expect_same("00j", 0j)expect_same("00.0", 0)expect_same("0e3", 0)expect_same("090000000000000.", 90000000000000.)expect_same("090000000000000.0000000000000000000000", 90000000000000.)expect_same("090000000000000e0", 90000000000000.)expect_same("090000000000000e-0", 90000000000000.)expect_same("090000000000000j", 90000000000000j)expect_error("090000000000000")  # plain octal literal w/ decimal digitexpect_error("080000000000000")  # plain octal literal w/ decimal digitexpect_error("000000000000009")  # plain octal literal w/ decimal digitexpect_error("000000000000008")  # plain octal literal w/ decimal digitexpect_same("000000000000007", 7)expect_same("000000000000008.", 8.)expect_same("000000000000009.", 9.)# Verify treatment of unary minus on negative numbers SF bug #660455expect_same("0xffffffff", -1)expect_same("-0xffffffff", 1)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?