Test the ``normalize_slice`` function. It should return
either a list of indexes that are "covered" by the slice
when applied to a sequence of the given length, or, for
zero-length slices only (which denote an insert/append
operation), an integer giving the index indicated by the
slice. This has to work for all possible combinations of
default and explicit slice arguments, and for both simple
and extended slices, so there are a lot of cases to test.
>>> from plib.stdlib.coll import normalize_slice
>>> normalize_slice(6, slice(1, 5))
[1, 2, 3, 4]
>>> normalize_slice(6, slice(1, -1))
[1, 2, 3, 4]
>>> normalize_slice(6, slice(-5, -1))
[1, 2, 3, 4]
>>> normalize_slice(6, slice(-5, 5))
[1, 2, 3, 4]
>>> normalize_slice(6, slice(-6, 6))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(0, 6))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(0, 7))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(-7, 7))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(-6, 6, 1))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(0, 6, 1))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(0, 7, 1))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(-7, 7, 1))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(-6, None))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(0, None))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(None, 6))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(None, None))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(None, 7))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(None, 1))
[0]
>>> normalize_slice(6, slice(None, -5))
[0]
>>> normalize_slice(6, slice(0, 1))
[0]
>>> normalize_slice(6, slice(0, -5))
[0]
>>> normalize_slice(6, slice(-6, -5))
[0]
>>> normalize_slice(6, slice(-7, -5))
[0]
>>> normalize_slice(6, slice(5, 6))
[5]
>>> normalize_slice(6, slice(-1, 6))
[5]
>>> normalize_slice(6, slice(5, None))
[5]
>>> normalize_slice(6, slice(-1, None))
[5]
>>> normalize_slice(6, slice(-1, 7))
[5]
>>> normalize_slice(6, slice(5, 7))
[5]
>>> normalize_slice(6, slice(-1, 0))
[]
>>> normalize_slice(6, slice(0, 6, 2))
[0, 2, 4]
>>> normalize_slice(6, slice(-6, 6, 2))
[0, 2, 4]
>>> normalize_slice(6, slice(-7, 7, 2))
[0, 2, 4]
>>> normalize_slice(5, slice(None, None, -1))
[4, 3, 2, 1, 0]
>>> normalize_slice(5, slice(0, 5, -1))
[]
>>> normalize_slice(5, slice(None, None, -2))
[4, 2, 0]
>>> normalize_slice(5, slice(0, 5, -2))
[]
>>> normalize_slice(6, slice(0, 0))
0
>>> normalize_slice(6, slice(None, 0))
0
>>> normalize_slice(6, slice(5, 5))
5
>>> normalize_slice(6, slice(-1, -1))
5
>>> normalize_slice(6, slice(-6, -6))
0
>>> normalize_slice(6, slice(6, 6))
6
>>> normalize_slice(6, slice(6, None))
6
>>> normalize_slice(6, slice(7, 7))
6
>>> normalize_slice(6, slice(-7, -7))
0
>>> normalize_slice(5, slice(None, 1, -2))
[4, 2]
>>> normalize_slice(5, slice(-1, None, -2))
[4, 2, 0]
>>> normalize_slice(5, slice(1, None, -2))
[1]
>>> normalize_slice(5, slice(1, 3, -2))
[]
>>> normalize_slice(5, slice(100, -100, -1))
[4, 3, 2, 1, 0]
>>> normalize_slice(5, slice(5, -7, -1))
[4, 3, 2, 1, 0]
>>> normalize_slice(5, slice(5, -6, -1))
[4, 3, 2, 1, 0]
>>> normalize_slice(5, slice(5, -5, -1))
[4, 3, 2, 1]
>>> normalize_slice(5, slice(5, -4, -1))
[4, 3, 2]
>>> normalize_slice(5, slice(5, -3, -1))
[4, 3]
>>> normalize_slice(5, slice(5, -2, -1))
[4]
>>> normalize_slice(5, slice(5, -1, -1))
[]
>>> normalize_slice(5, slice(5, 0, -1))
[4, 3, 2, 1]
>>> normalize_slice(5, slice(5, 1, -1))
[4, 3, 2]
>>> normalize_slice(5, slice(5, 2, -1))
[4, 3]
>>> normalize_slice(5, slice(5, 3, -1))
[4]
>>> normalize_slice(5, slice(5, 4, -1))
[]
>>> normalize_slice(5, slice(5, 5, -1))
[]
>>> normalize_slice(5, slice(5, 6, -1))
[]
>>> normalize_slice(5, slice(5, 4, 1))
[]
>>> normalize_slice(5, slice(5, 5, 1))
5
>>> normalize_slice(5, slice(5, 6, 1))
[]
>>> normalize_slice(2, slice(0, 1, -1))
[]
>>> normalize_slice(2, slice(0, 0, -1))
[]
>>> normalize_slice(2, slice(0, -1, -1))
[]
>>> normalize_slice(2, slice(0, -2, -1))
[]
>>> normalize_slice(2, slice(0, -3, -1))
[0]
>>> normalize_slice(2, slice(0, -4, -1))
[0]
>>> normalize_slice(2, slice(-1, -4, -1))
[1, 0]
>>> normalize_slice(2, slice(-2, -4, -1))
[0]
>>> normalize_slice(2, slice(-3, -4, -1))
[]
>>> normalize_slice(2, slice(-4, -4, -1))
[]
>>> normalize_slice(2, slice(-5, -4, -1))
[]
>>> normalize_slice(1, slice(1))
[0]
>>> normalize_slice(1, slice(2))
[0]
>>> normalize_slice(1, slice(0))
0
>>> normalize_slice(1, slice(-1))
0
>>> normalize_slice(1, slice(-2))
[]
>>> normalize_slice(1, slice(-3))
[]
>>> normalize_slice(1, slice(0, 1))
[0]
>>> normalize_slice(1, slice(-1, 1))
[0]
>>> normalize_slice(1, slice(-2, 1))
[0]
>>> normalize_slice(1, slice(-3, 1))
[0]
>>> normalize_slice(1, slice(1, 1))
1
>>> normalize_slice(1, slice(2, 1))
[]
>>> normalize_slice(1, slice(1, 0))
[]
>>> normalize_slice(1, slice(1, 0, -1))
[]
>>> normalize_slice(1, slice(1, -1, -1))
[]
>>> normalize_slice(1, slice(1, -2, -1))
[0]
>>> normalize_slice(1, slice(1, -3, -1))
[0]
>>> normalize_slice(1, slice(2, -2, -1))
[0]
>>> normalize_slice(1, slice(3, -2, -1))
[0]
>>> normalize_slice(1, slice(2, -1, -1))
[]
>>> normalize_slice(0, slice(0))
0
>>> normalize_slice(0, slice(1))
[]
>>> normalize_slice(0, slice(-1))
[]
>>> normalize_slice(0, slice(-2))
[]
>>> normalize_slice(0, slice(2))
[]
>>> normalize_slice(0, slice(0, 0))
0
>>> normalize_slice(0, slice(0, 1))
[]
>>> normalize_slice(0, slice(0, -1))
[]
>>> normalize_slice(0, slice(1, 1))
0
>>> normalize_slice(0, slice(2, 2))
0
>>> normalize_slice(0, slice(1, 2))
[]
>>> normalize_slice(0, slice(1, 0))
[]
>>> normalize_slice(0, slice(-1, 0))
[]
>>> normalize_slice(0, slice(-1, -1))
0
>>> normalize_slice(0, slice(-1, -2))
[]
>>> normalize_slice(0, slice(-1, 1))
[]
>>> normalize_slice(0, slice(0, 0, 1))
0
>>> normalize_slice(0, slice(0, 1, 1))
[]
>>> normalize_slice(0, slice(0, -1, 1))
[]
>>> normalize_slice(0, slice(1, 1, 1))
0
>>> normalize_slice(0, slice(1, 0, 1))
[]
>>> normalize_slice(0, slice(-1, 0, 1))
[]
>>> normalize_slice(0, slice(0, 0, -1))
[]
>>> normalize_slice(0, slice(0, 1, -1))
[]
>>> normalize_slice(0, slice(0, -1, -1))
[]
>>> normalize_slice(0, slice(1, 1, -1))
[]
>>> normalize_slice(0, slice(1, 0, -1))
[]
>>> normalize_slice(0, slice(-1, 0, -1))
[]
>>> normalize_slice(6, slice(6))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(None))
[0, 1, 2, 3, 4, 5]
>>> normalize_slice(6, slice(0))
0
The only exception that should be raised is ``ValueError``,
for a slice step of zero.
>>> normalize_slice(6, slice(0, 6, 0))
Traceback (most recent call last):
...
ValueError: Slice step cannot be zero.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
共95个文件
py:78个
txt:9个
c:2个
资源分类:Python库 所属语言:Python 资源全名:plib3.stdlib-1.0.6.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源推荐
资源详情
资源评论
收起资源包目录
plib3.stdlib-1.0.6.tar.gz (95个子文件)
plib3.stdlib-1.0.6
PKG-INFO 7KB
plib
test
stdlib
doctests
test_stdlib_abc.txt 2KB
test_stdlib_coll.txt 663B
test_stdlib_SortMixin.txt 4KB
test_stdlib.txt 4KB
test_stdlib_cached_property.txt 1KB
test_stdlib_newlines.txt 3KB
test_stdlib_normalize_slice.txt 7KB
test_stdlib_builtins.txt 2KB
test_stdlib_Singleton.txt 1KB
test_basekeyed.py 852B
test_abstractlist.py 1KB
abstract_testlib.py 40KB
test_stdlib.py 2KB
test_abstractsequence.py 2KB
extensions_testmod.py 416B
__main__.py 754B
test_sigs.py 978B
src
_extensions_testmod.c 3KB
test_extensions.py 2KB
__init__.py 282B
test_abstractdict.py 1010B
test_basemapping.py 946B
test_ModuleProxy.py 4KB
test_basecontainer.py 871B
test_baselist.py 1KB
ModuleProxy_testmod.py 721B
test_ostools.py 5KB
test_basedict.py 1KB
test_abstractkeyed.py 870B
mapping_testlib.py 22KB
test_abstractcontainer.py 938B
test_basesequence.py 946B
test_abstractmapping.py 961B
support
__init__.py 4KB
__main__.py 748B
__init__.py 350B
stdlib
proc.py 2KB
builtins.py 2KB
options.py 8KB
ostools.py 6KB
systools.py 1KB
sigs.py 537B
extensions
src
_extensions.c 3KB
__init__.py 537B
csvtools.py 2KB
tztools.py 6KB
localize.py 3KB
jsontools.py 1KB
mail.py 4KB
fdtools.py 604B
timer.py 2KB
classtools.py 6KB
strings.py 3KB
__init__.py 472B
copytools.py 1KB
cmdline.py 3KB
mathlib.py 772B
iters.py 28KB
decotools
MemoizedGenerator.py 6KB
DelayedDecorator.py 6KB
__init__.py 42KB
IndexedGenerator.py 5KB
ini
PIniFileOption.py 1KB
PIniInterface.py 5KB
PIniFileBase.py 2KB
PIniFileSection.py 2KB
__init__.py 3KB
PIniFile.py 3KB
defs.py 371B
net.py 3KB
coll
_abc.py 12KB
__init__.py 4KB
_names.py 3KB
_bases.py 8KB
_tuples.py 11KB
_seq.py 3KB
_mixins.py 19KB
_utils.py 5KB
util
ModuleProxy.py 7KB
__init__.py 369B
postinstall.py 7KB
_extras.py 2KB
imp.py 1KB
__init__.py 345B
setuputils.py 28KB
TODO 175B
LICENSE 18KB
CHANGES 84KB
README 6KB
examples
tzname
tzname3.py 3KB
scrips
scrips3.py 6KB
pyidserver
pyidserver3.py 12KB
setup.py 2KB
scripts
plib3-setup-stdlib-examples 679B
共 95 条
- 1
资源评论
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功