test_bisect.py

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

PY
128
字号
from test_support import TestFailedimport bisectimport sysnerrors = 0def check_bisect(func, list, elt, expected):    global nerrors    got = func(list, elt)    if got != expected:        print >> sys.stderr, \            "expected %s(%s, %s) -> %s, but got %s" % (func.__name__,                                                       list,                                                       elt,                                                       expected,                                                       got)        nerrors += 1# XXX optional slice arguments need tests.check_bisect(bisect.bisect_right, [], 1, 0)check_bisect(bisect.bisect_right, [1], 0, 0)check_bisect(bisect.bisect_right, [1], 1, 1)check_bisect(bisect.bisect_right, [1], 2, 1)check_bisect(bisect.bisect_right, [1, 1], 0, 0)check_bisect(bisect.bisect_right, [1, 1], 1, 2)check_bisect(bisect.bisect_right, [1, 1], 2, 2)check_bisect(bisect.bisect_right, [1, 1, 1], 0, 0)check_bisect(bisect.bisect_right, [1, 1, 1], 1, 3)check_bisect(bisect.bisect_right, [1, 1, 1], 2, 3)check_bisect(bisect.bisect_right, [1, 1, 1, 1], 0, 0)check_bisect(bisect.bisect_right, [1, 1, 1, 1], 1, 4)check_bisect(bisect.bisect_right, [1, 1, 1, 1], 2, 4)check_bisect(bisect.bisect_right, [1, 2], 0, 0)check_bisect(bisect.bisect_right, [1, 2], 1, 1)check_bisect(bisect.bisect_right, [1, 2], 1.5, 1)check_bisect(bisect.bisect_right, [1, 2], 2, 2)check_bisect(bisect.bisect_right, [1, 2], 3, 2)check_bisect(bisect.bisect_right, [1, 1, 2, 2], 0, 0)check_bisect(bisect.bisect_right, [1, 1, 2, 2], 1, 2)check_bisect(bisect.bisect_right, [1, 1, 2, 2], 1.5, 2)check_bisect(bisect.bisect_right, [1, 1, 2, 2], 2, 4)check_bisect(bisect.bisect_right, [1, 1, 2, 2], 3, 4)check_bisect(bisect.bisect_right, [1, 2, 3], 0, 0)check_bisect(bisect.bisect_right, [1, 2, 3], 1, 1)check_bisect(bisect.bisect_right, [1, 2, 3], 1.5, 1)check_bisect(bisect.bisect_right, [1, 2, 3], 2, 2)check_bisect(bisect.bisect_right, [1, 2, 3], 2.5, 2)check_bisect(bisect.bisect_right, [1, 2, 3], 3, 3)check_bisect(bisect.bisect_right, [1, 2, 3], 4, 3)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 0, 0)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 1, 1)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 1.5, 1)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 2, 3)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 2.5, 3)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 3, 6)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 3.5, 6)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 4, 10)check_bisect(bisect.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 5, 10)check_bisect(bisect.bisect_left, [], 1, 0)check_bisect(bisect.bisect_left, [1], 0, 0)check_bisect(bisect.bisect_left, [1], 1, 0)check_bisect(bisect.bisect_left, [1], 2, 1)check_bisect(bisect.bisect_left, [1, 1], 0, 0)check_bisect(bisect.bisect_left, [1, 1], 1, 0)check_bisect(bisect.bisect_left, [1, 1], 2, 2)check_bisect(bisect.bisect_left, [1, 1, 1], 0, 0)check_bisect(bisect.bisect_left, [1, 1, 1], 1, 0)check_bisect(bisect.bisect_left, [1, 1, 1], 2, 3)check_bisect(bisect.bisect_left, [1, 1, 1, 1], 0, 0)check_bisect(bisect.bisect_left, [1, 1, 1, 1], 1, 0)check_bisect(bisect.bisect_left, [1, 1, 1, 1], 2, 4)check_bisect(bisect.bisect_left, [1, 2], 0, 0)check_bisect(bisect.bisect_left, [1, 2], 1, 0)check_bisect(bisect.bisect_left, [1, 2], 1.5, 1)check_bisect(bisect.bisect_left, [1, 2], 2, 1)check_bisect(bisect.bisect_left, [1, 2], 3, 2)check_bisect(bisect.bisect_left, [1, 1, 2, 2], 0, 0)check_bisect(bisect.bisect_left, [1, 1, 2, 2], 1, 0)check_bisect(bisect.bisect_left, [1, 1, 2, 2], 1.5, 2)check_bisect(bisect.bisect_left, [1, 1, 2, 2], 2, 2)check_bisect(bisect.bisect_left, [1, 1, 2, 2], 3, 4)check_bisect(bisect.bisect_left, [1, 2, 3], 0, 0)check_bisect(bisect.bisect_left, [1, 2, 3], 1, 0)check_bisect(bisect.bisect_left, [1, 2, 3], 1.5, 1)check_bisect(bisect.bisect_left, [1, 2, 3], 2, 1)check_bisect(bisect.bisect_left, [1, 2, 3], 2.5, 2)check_bisect(bisect.bisect_left, [1, 2, 3], 3, 2)check_bisect(bisect.bisect_left, [1, 2, 3], 4, 3)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 0, 0)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 1, 0)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 1.5, 1)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 2, 1)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 2.5, 3)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 3, 3)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 3.5, 6)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 4, 6)check_bisect(bisect.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 5, 10)def check_insort(n):    global nerrors    from random import choice    import sys    digits = "0123456789"    raw = []    insorted = []    for i in range(n):        digit = choice(digits)        raw.append(digit)        if digit in "02468":            f = bisect.insort_left        else:            f = bisect.insort_right        f(insorted, digit)    sorted = raw[:]    sorted.sort()    if sorted == insorted:        return    print >> sys.stderr, "insort test failed: raw %s got %s" % (raw, insorted)    nerrors += 1check_insort(500)if nerrors:    raise TestFailed("%d errors in test_bisect" % nerrors)

⌨️ 快捷键说明

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