提交 a3084363 authored 作者: Frederic's avatar Frederic

Add tests and don't apply in other cases

上级 ebfbfe8a
......@@ -4259,6 +4259,8 @@ def get_vector_length(v):
start = 0
elif isinstance(start, types) and start < 0:
start += ndim
if start < 0:
start = 0
if stop is None:
stop = ndim
elif isinstance(stop, types):
......@@ -4271,7 +4273,9 @@ def get_vector_length(v):
if (isinstance(stop, types) and
isinstance(start, types) and
start >= 0 and stop >= 0):
isinstance(step, types) and
start >= 0 and stop >= 0 and
step > 0 and stop >= start):
return (stop - start - 1) // step + 1
if isinstance(v, Variable):
msg = theano.printing.debugprint(v, file='str')
......
......@@ -3352,12 +3352,14 @@ class T_GetVectorLength(unittest.TestCase):
assert len(list(x.shape[2:4])) == 2
assert len(list(x.shape[2:])) == 2
assert len(list(x.shape[1:4])) == 3
assert len(list(x.shape[2:2])) == 0
assert len(list(x.shape[1:5])) == 3
assert len(list(x.shape[1:10])) == 3
# Test step
assert len(list(x.shape[1:10:2])) == 2
# Test neg start
assert len(list(x.shape[-1:4])) == 1
assert len(list(x.shape[-6:4])) == 4
# test neg stop
assert len(list(x.shape[1:-2])) == 1
assert len(list(x.shape[1:-1])) == 2
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论