提交 0dd5090c authored 作者: Saizheng Zhang's avatar Saizheng Zhang

add more tests for error check

上级 87c68c2b
...@@ -5292,82 +5292,55 @@ def test_tile(): ...@@ -5292,82 +5292,55 @@ def test_tile():
assert numpy.all(run_tile(x, x_, (2, 3, 4, 6), use_symbolic_reps) == assert numpy.all(run_tile(x, x_, (2, 3, 4, 6), use_symbolic_reps) ==
numpy.tile(x_, (2, 3, 4, 6))) numpy.tile(x_, (2, 3, 4, 6)))
#Test when reps is integer, tensor.scalar or tensor.vector. # Test when reps is integer, tensor.scalar or tensor.vector.
# Test the one-dimensional case. # Test 1,2,3,4-dimensional cases.
x = vector() # Test input x has the shape [2], [2, 4], [2, 4, 3], [2, 4, 3, 5].
x_ = rng.randn(5).astype(config.floatX) test_shape = [2, 4, 3, 5]
#integer: k = 0
reps_ = 2 for xtype in [vector(), matrix(), tensor3(), tensor4()]:
f = function([x], tile(x, reps_)) x = xtype
assert numpy.all( f(x_) == numpy.tile(x_, reps_)) k = k+1
#tensor.scalar: x_ = rng.randn(*test_shape[0:k]).astype(config.floatX)
reps = iscalar()
reps_ = 2 # integer:
f = function([x, reps], tile(x, reps)) reps_ = 2
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_)) f = function([x], tile(x, reps_))
#tensor.vector: assert numpy.all( f(x_) == numpy.tile(x_, reps_))
reps = ivector()
reps_ = [2] # tensor.scalar:
ndim_ = 1 reps = iscalar()
f = function([x, reps], tile(x, reps, ndim_)) reps_ = 2
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_)) f = function([x, reps], tile(x, reps))
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_))
# Test the two-dimensional case.
x = matrix() # tensor.vector:
x_ = rng.randn(2, 4).astype(config.floatX) reps = ivector()
#integer: reps_ = [2] if k == 1 or k == 2 else [2, 3]
reps_ = 2 ndim_ = k
f = function([x], tile(x, reps_)) f = function([x, reps], tile(x, reps, ndim_))
assert numpy.all( f(x_) == numpy.tile(x_, reps_)) assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_))
#tensor.scalar:
reps = iscalar() # error raising test: ndim not specified when reps is vector
reps_ = 2 reps = ivector()
f = function([x, reps], tile(x, reps)) numpy.testing.assert_raises(ValueError, tile, x, reps)
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_))
#tensor.vector: # error raising test: ndim > x.ndim
reps = ivector() reps = ivector()
reps_ = [2] ndim_ = k+1
ndim_ = 2 numpy.testing.assert_raises(ValueError, tile, x, reps, ndim_)
f = function([x, reps], tile(x, reps, ndim_))
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_)) #error raising test: len(reps) > x.ndim
reps = range(1, k+2)
# Test the three-dimensional case. numpy.testing.assert_raises(ValueError, tile, x, reps)
x = tensor3()
x_ = rng.randn(2, 4, 3).astype(config.floatX) # error raising test: not a integer
#integer: for reps in [2.5, fscalar(), fvector()]:
reps_ = 2 numpy.testing.assert_raises(ValueError, tile, x, reps)
f = function([x], tile(x, reps_))
assert numpy.all( f(x_) == numpy.tile(x_, reps_)) # error raising test: the dimension of reps exceeds 1
#tensor.scalar: reps = imatrix()
reps = iscalar() numpy.testing.assert_raises(ValueError, tile, x, reps)
reps_ = 2
f = function([x, reps], tile(x, reps))
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_))
#tensor.vector:
reps = ivector()
reps_ = [2, 3]
ndim_ = 3
f = function([x, reps], tile(x, reps, ndim_))
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_))
# Test the four-dimensional case.
x = tensor4()
x_ = rng.randn(2, 4, 3, 5).astype(config.floatX)
#integer:
reps_ = 2
f = function([x], tile(x, reps_))
assert numpy.all( f(x_) == numpy.tile(x_, reps_))
#tensor.scalar:
reps = iscalar()
reps_ = 2
f = function([x, reps], tile(x, reps))
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_))
#tensor.vector:
reps = ivector()
reps_ = [2, 3]
ndim_ = 4
f = function([x, reps], tile(x, reps, ndim_))
assert numpy.all( f(x_, reps_) == numpy.tile(x_, reps_))
def test_tile_grad(): def test_tile_grad():
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论