test_marshal.py
来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Python 代码 · 共 45 行
PY
45 行
from test_support import TestFailedimport marshalimport sys# XXX Much more needed here.# Test the full range of Python ints.n = sys.maxintwhile n: for expected in (-n, n): s = marshal.dumps(expected) got = marshal.loads(s) if expected != got: raise TestFailed("for int %d, marshal string is %r, loaded " "back as %d" % (expected, s, got)) n = n >> 1# Simulate int marshaling on a 64-bit box. This is most interesting if# we're running the test on a 32-bit box, of course.def to_little_endian_string(value, nbytes): bytes = [] for i in range(nbytes): bytes.append(chr(value & 0xff)) value >>= 8 return ''.join(bytes)maxint64 = (1L << 63) - 1minint64 = -maxint64-1for base in maxint64, minint64, -maxint64, -(minint64 >> 1): while base: s = 'I' + to_little_endian_string(base, 8) got = marshal.loads(s) if base != got: raise TestFailed("for int %d, simulated marshal string is %r, " "loaded back as %d" % (base, s, got)) if base == -1: # a fixed-point for shifting right 1 base = 0 else: base >>= 1# Simple-minded check for SF 588452: Debug build crashesmarshal.dumps([128] * 1000)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?