提交 32d80f56 authored 作者: nouiz's avatar nouiz

Merge pull request #262 from delallea/test_fix

Fixed some tests with compute_test_value = ignore
......@@ -405,11 +405,12 @@ class PureOp(object):
if run_perform:
# Original values should not be destroyed:
# copy the values of the inputs in destroy_map
destroyed_inputs = []
destroyed_inputs_idx = set()
if getattr(node.op, 'destroy_map', None):
for i_pos_list in node.op.destroy_map.itervalues():
destroyed_inputs_idx.extend(node.inputs[i_pos_list])
for inp in destroyed_inputs:
destroyed_inputs_idx.update(i_pos_list)
for inp_idx in destroyed_inputs_idx:
inp = node.inputs[inp_idx]
storage_map[inp] = [storage_map[inp][0].copy()]
# Prepare storage_map and compute_map for the outputs
......
......@@ -340,7 +340,12 @@ class TestMergeOptimizer:
x = MyVariable('x')
y = Constant(MyType(), 2, name = 'y')
z = Constant(MyType(), 2, name = 'z')
e1 = op1(y, z)
ctv_backup = config.compute_test_value
config.compute_test_value = 'off'
try:
e1 = op1(y, z)
finally:
config.compute_test_value = ctv_backup
g = Env([x, y, z], [e1])
MergeOptimizer().optimize(g)
strg = str(g)
......
......@@ -1965,7 +1965,12 @@ class T_subtensor(unittest.TestCase):
def test1_err_bounds(self):
n = self.shared(numpy.ones(3, dtype=self.dtype))
t = n[7]
ctv_backup = config.compute_test_value
config.compute_test_value = 'off'
try:
t = n[7]
finally:
config.compute_test_value = ctv_backup
self.assertTrue(isinstance(t.owner.op, Subtensor))
# Silence expected error messages
_logger = logging.getLogger('theano.gof.opt')
......@@ -2081,21 +2086,26 @@ class T_subtensor(unittest.TestCase):
def test2_err_bounds0(self):
n = self.shared(numpy.ones((2,3), dtype=self.dtype)*5)
for idx in [(0,4),(0,-4)]:
t = n[idx]
self.assertTrue(isinstance(t.owner.op, Subtensor))
# Silence expected warnings
_logger = logging.getLogger('theano.gof.opt')
oldlevel = _logger.level
_logger.setLevel(logging.CRITICAL)
try:
ctv_backup = config.compute_test_value
config.compute_test_value = 'off'
try:
for idx in [(0,4),(0,-4)]:
t = n[idx]
self.assertTrue(isinstance(t.owner.op, Subtensor))
# Silence expected warnings
_logger = logging.getLogger('theano.gof.opt')
oldlevel = _logger.level
_logger.setLevel(logging.CRITICAL)
try:
tval = self.eval_output_and_check([t])
assert 0
except IndexError, e:
pass
finally:
_logger.setLevel(oldlevel)
try:
tval = self.eval_output_and_check([t])
assert 0
except IndexError, e:
pass
finally:
_logger.setLevel(oldlevel)
finally:
config.compute_test_value = ctv_backup
def test2_err_bounds1(self):
n = self.shared((numpy.ones((2,3), dtype=self.dtype)*5))
......@@ -3434,7 +3444,12 @@ class t_dot(unittest.TestCase):
#def test_dot_3d_3d(self): self.cmp_dot(self.rand(4,5,6), self.rand(8,6,7))
def not_aligned(self, x, y):
z = dot(x,y)
ctv_backup = config.compute_test_value
config.compute_test_value = 'off'
try:
z = dot(x,y)
finally:
config.compute_test_value = ctv_backup
# constant folding will complain to _logger that things are not aligned
# this is normal, testers are not interested in seeing that output.
_logger = logging.getLogger('theano.gof.opt')
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论