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 + -
显示快捷键?