test_b1.py

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

PY
633
字号
# Python test set -- part 4a, built-in functions a-mfrom test_support import *print '__import__'__import__('sys')__import__('time')__import__('string')try: __import__('spamspam')except ImportError: passelse: raise TestFailed, "__import__('spamspam') should fail"print 'abs'if abs(0) != 0: raise TestFailed, 'abs(0)'if abs(1234) != 1234: raise TestFailed, 'abs(1234)'if abs(-1234) != 1234: raise TestFailed, 'abs(-1234)'#if abs(0.0) != 0.0: raise TestFailed, 'abs(0.0)'if abs(3.14) != 3.14: raise TestFailed, 'abs(3.14)'if abs(-3.14) != 3.14: raise TestFailed, 'abs(-3.14)'#if abs(0L) != 0L: raise TestFailed, 'abs(0L)'if abs(1234L) != 1234L: raise TestFailed, 'abs(1234L)'if abs(-1234L) != 1234L: raise TestFailed, 'abs(-1234L)'try: abs('a')except TypeError: passelse: raise TestFailed, 'abs("a")'print 'apply'def f0(*args):    if args != (): raise TestFailed, 'f0 called with ' + `args`def f1(a1):    if a1 != 1: raise TestFailed, 'f1 called with ' + `a1`def f2(a1, a2):    if a1 != 1 or a2 != 2:        raise TestFailed, 'f2 called with ' + `a1, a2`def f3(a1, a2, a3):    if a1 != 1 or a2 != 2 or a3 != 3:        raise TestFailed, 'f3 called with ' + `a1, a2, a3`apply(f0, ())apply(f1, (1,))apply(f2, (1, 2))apply(f3, (1, 2, 3))# A PyCFunction that takes only positional parameters should allow an# empty keyword dictionary to pass without a complaint, but raise a# TypeError if the dictionary is non-empty.apply(id, (1,), {})try:    apply(id, (1,), {"foo": 1})except TypeError:    passelse:    raise TestFailed, 'expected TypeError; no exception raised'print 'callable'if not callable(len):raise TestFailed, 'callable(len)'def f(): passif not callable(f): raise TestFailed, 'callable(f)'class C:    def meth(self): passif not callable(C): raise TestFailed, 'callable(C)'x = C()if not callable(x.meth): raise TestFailed, 'callable(x.meth)'if callable(x): raise TestFailed, 'callable(x)'class D(C):    def __call__(self): passy = D()if not callable(y): raise TestFailed, 'callable(y)'y()print 'chr'if chr(32) != ' ': raise TestFailed, 'chr(32)'if chr(65) != 'A': raise TestFailed, 'chr(65)'if chr(97) != 'a': raise TestFailed, 'chr(97)'# cmpprint 'cmp'if cmp(-1, 1) != -1: raise TestFailed, 'cmp(-1, 1)'if cmp(1, -1) != 1: raise TestFailed, 'cmp(1, -1)'if cmp(1, 1) != 0: raise TestFailed, 'cmp(1, 1)'# verify that circular objects are handleda = []; a.append(a)b = []; b.append(b)from UserList import UserListc = UserList(); c.append(c)if cmp(a, b) != 0: raise TestFailed, "cmp(%s, %s)" % (a, b)if cmp(b, c) != 0: raise TestFailed, "cmp(%s, %s)" % (b, c)if cmp(c, a) != 0: raise TestFailed, "cmp(%s, %s)" % (c, a)if cmp(a, c) != 0: raise TestFailed, "cmp(%s, %s)" % (a, c)# okay, now break the cyclesa.pop(); b.pop(); c.pop()print 'coerce'if fcmp(coerce(1, 1.1), (1.0, 1.1)): raise TestFailed, 'coerce(1, 1.1)'if coerce(1, 1L) != (1L, 1L): raise TestFailed, 'coerce(1, 1L)'if fcmp(coerce(1L, 1.1), (1.0, 1.1)): raise TestFailed, 'coerce(1L, 1.1)'try: coerce(0.5, long("12345" * 1000))except OverflowError: passelse: raise TestFailed, 'coerce(0.5, long("12345" * 1000))'print 'compile'compile('print 1\n', '', 'exec')print 'complex'if complex(1,10) != 1+10j: raise TestFailed, 'complex(1,10)'if complex(1,10L) != 1+10j: raise TestFailed, 'complex(1,10L)'if complex(1,10.0) != 1+10j: raise TestFailed, 'complex(1,10.0)'if complex(1L,10) != 1+10j: raise TestFailed, 'complex(1L,10)'if complex(1L,10L) != 1+10j: raise TestFailed, 'complex(1L,10L)'if complex(1L,10.0) != 1+10j: raise TestFailed, 'complex(1L,10.0)'if complex(1.0,10) != 1+10j: raise TestFailed, 'complex(1.0,10)'if complex(1.0,10L) != 1+10j: raise TestFailed, 'complex(1.0,10L)'if complex(1.0,10.0) != 1+10j: raise TestFailed, 'complex(1.0,10.0)'if complex(3.14+0j) != 3.14+0j: raise TestFailed, 'complex(3.14)'if complex(3.14) != 3.14+0j: raise TestFailed, 'complex(3.14)'if complex(314) != 314.0+0j: raise TestFailed, 'complex(314)'if complex(314L) != 314.0+0j: raise TestFailed, 'complex(314L)'if complex(3.14+0j, 0j) != 3.14+0j: raise TestFailed, 'complex(3.14, 0j)'if complex(3.14, 0.0) != 3.14+0j: raise TestFailed, 'complex(3.14, 0.0)'if complex(314, 0) != 314.0+0j: raise TestFailed, 'complex(314, 0)'if complex(314L, 0L) != 314.0+0j: raise TestFailed, 'complex(314L, 0L)'if complex(0j, 3.14j) != -3.14+0j: raise TestFailed, 'complex(0j, 3.14j)'if complex(0.0, 3.14j) != -3.14+0j: raise TestFailed, 'complex(0.0, 3.14j)'if complex(0j, 3.14) != 3.14j: raise TestFailed, 'complex(0j, 3.14)'if complex(0.0, 3.14) != 3.14j: raise TestFailed, 'complex(0.0, 3.14)'if complex("1") != 1+0j: raise TestFailed, 'complex("1")'if complex("1j") != 1j: raise TestFailed, 'complex("1j")'try: complex("1", "1")except TypeError: passelse: raise TestFailed, 'complex("1", "1")'try: complex(1, "1")except TypeError: passelse: raise TestFailed, 'complex(1, "1")'if complex("  3.14+J  ") != 3.14+1j:  raise TestFailed, 'complex("  3.14+J  )"'if have_unicode:    if complex(unicode("  3.14+J  ")) != 3.14+1j:        raise TestFailed, 'complex(u"  3.14+J  )"'# SF bug 543840:  complex(string) accepts strings with \0# Fixed in 2.3.try:    complex('1+1j\0j')except ValueError:    passelse:    raise TestFailed("complex('1+1j\0j') should have raised ValueError")class Z:    def __complex__(self): return 3.14jz = Z()if complex(z) != 3.14j: raise TestFailed, 'complex(classinstance)'print 'delattr'import syssys.spam = 1delattr(sys, 'spam')print 'dir'x = 1if 'x' not in dir(): raise TestFailed, 'dir()'import sysif 'modules' not in dir(sys): raise TestFailed, 'dir(sys)'print 'divmod'if divmod(12, 7) != (1, 5): raise TestFailed, 'divmod(12, 7)'if divmod(-12, 7) != (-2, 2): raise TestFailed, 'divmod(-12, 7)'if divmod(12, -7) != (-2, -2): raise TestFailed, 'divmod(12, -7)'if divmod(-12, -7) != (1, -5): raise TestFailed, 'divmod(-12, -7)'#if divmod(12L, 7L) != (1L, 5L): raise TestFailed, 'divmod(12L, 7L)'if divmod(-12L, 7L) != (-2L, 2L): raise TestFailed, 'divmod(-12L, 7L)'if divmod(12L, -7L) != (-2L, -2L): raise TestFailed, 'divmod(12L, -7L)'if divmod(-12L, -7L) != (1L, -5L): raise TestFailed, 'divmod(-12L, -7L)'#if divmod(12, 7L) != (1, 5L): raise TestFailed, 'divmod(12, 7L)'if divmod(-12, 7L) != (-2, 2L): raise TestFailed, 'divmod(-12, 7L)'if divmod(12L, -7) != (-2L, -2): raise TestFailed, 'divmod(12L, -7)'if divmod(-12L, -7) != (1L, -5): raise TestFailed, 'divmod(-12L, -7)'#if fcmp(divmod(3.25, 1.0), (3.0, 0.25)):    raise TestFailed, 'divmod(3.25, 1.0)'if fcmp(divmod(-3.25, 1.0), (-4.0, 0.75)):    raise TestFailed, 'divmod(-3.25, 1.0)'if fcmp(divmod(3.25, -1.0), (-4.0, -0.75)):    raise TestFailed, 'divmod(3.25, -1.0)'if fcmp(divmod(-3.25, -1.0), (3.0, -0.25)):    raise TestFailed, 'divmod(-3.25, -1.0)'print 'eval'if eval('1+1') != 2: raise TestFailed, 'eval(\'1+1\')'if eval(' 1+1\n') != 2: raise TestFailed, 'eval(\' 1+1\\n\')'globals = {'a': 1, 'b': 2}locals = {'b': 200, 'c': 300}if eval('a', globals) != 1:    raise TestFailed, "eval(1) == %s" % eval('a', globals)if eval('a', globals, locals) != 1:    raise TestFailed, "eval(2)"if eval('b', globals, locals) != 200:    raise TestFailed, "eval(3)"if eval('c', globals, locals) != 300:    raise TestFailed, "eval(4)"if have_unicode:    if eval(unicode('1+1')) != 2: raise TestFailed, 'eval(u\'1+1\')'    if eval(unicode(' 1+1\n')) != 2: raise TestFailed, 'eval(u\' 1+1\\n\')'globals = {'a': 1, 'b': 2}locals = {'b': 200, 'c': 300}if have_unicode:    if eval(unicode('a'), globals) != 1:        raise TestFailed, "eval(1) == %s" % eval(unicode('a'), globals)    if eval(unicode('a'), globals, locals) != 1:        raise TestFailed, "eval(2)"    if eval(unicode('b'), globals, locals) != 200:        raise TestFailed, "eval(3)"    if eval(unicode('c'), globals, locals) != 300:        raise TestFailed, "eval(4)"print 'execfile'z = 0f = open(TESTFN, 'w')f.write('z = z+1\n')f.write('z = z*2\n')f.close()execfile(TESTFN)if z != 2: raise TestFailed, "execfile(1)"globals['z'] = 0execfile(TESTFN, globals)if globals['z'] != 2: raise TestFailed, "execfile(1)"locals['z'] = 0execfile(TESTFN, globals, locals)if locals['z'] != 2: raise TestFailed, "execfile(1)"unlink(TESTFN)print 'filter'if filter(lambda c: 'a' <= c <= 'z', 'Hello World') != 'elloorld':    raise TestFailed, 'filter (filter a string)'if filter(None, [1, 'hello', [], [3], '', None, 9, 0]) != [1, 'hello', [3], 9]:    raise TestFailed, 'filter (remove false values)'if filter(lambda x: x > 0, [1, -3, 9, 0, 2]) != [1, 9, 2]:    raise TestFailed, 'filter (keep positives)'class Squares:    def __init__(self, max):        self.max = max        self.sofar = []    def __len__(self): return len(self.sofar)    def __getitem__(self, i):        if not 0 <= i < self.max: raise IndexError        n = len(self.sofar)        while n <= i:            self.sofar.append(n*n)            n = n+1        return self.sofar[i]if filter(None, Squares(10)) != [1, 4, 9, 16, 25, 36, 49, 64, 81]:    raise TestFailed, 'filter(None, Squares(10))'if filter(lambda x: x%2, Squares(10)) != [1, 9, 25, 49, 81]:    raise TestFailed, 'filter(oddp, Squares(10))'class StrSquares:    def __init__(self, max):        self.max = max        self.sofar = []    def __len__(self):        return len(self.sofar)    def __getitem__(self, i):        if not 0 <= i < self.max:            raise IndexError        n = len(self.sofar)        while n <= i:            self.sofar.append(str(n*n))            n = n+1        return self.sofar[i]def identity(item):    return 1filter(identity, Squares(5))print 'float'if float(3.14) != 3.14: raise TestFailed, 'float(3.14)'if float(314) != 314.0: raise TestFailed, 'float(314)'if float(314L) != 314.0: raise TestFailed, 'float(314L)'if float("  3.14  ") != 3.14:  raise TestFailed, 'float("  3.14  ")'if have_unicode:    if float(unicode("  3.14  ")) != 3.14:        raise TestFailed, 'float(u"  3.14  ")'    if float(unicode("  \u0663.\u0661\u0664  ",'raw-unicode-escape')) != 3.14:        raise TestFailed, 'float(u"  \u0663.\u0661\u0664  ")'print 'getattr'import sysif getattr(sys, 'stdout') is not sys.stdout: raise TestFailed, 'getattr'try:    getattr(sys, 1)except TypeError:    passelse:    raise TestFailed, "getattr(sys, 1) should raise an exception"try:    getattr(sys, 1, "foo")except TypeError:    passelse:    raise TestFailed, 'getattr(sys, 1, "foo") should raise an exception'print 'hasattr'import sysif not hasattr(sys, 'stdout'): raise TestFailed, 'hasattr'try:    hasattr(sys, 1)except TypeError:    passelse:    raise TestFailed, "hasattr(sys, 1) should raise an exception"print 'hash'

⌨️ 快捷键说明

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