[ParameterizedTests] added test functionality

This commit is contained in:
Max Zwiessele 2014-10-31 17:12:31 +00:00
parent 4183b6665e
commit 0fe50232a6

View file

@ -11,6 +11,7 @@ from GPy.core.parameterization.observable_array import ObsAr
from GPy.core.parameterization.transformations import NegativeLogexp, Logistic from GPy.core.parameterization.transformations import NegativeLogexp, Logistic
from GPy.core.parameterization.parameterized import Parameterized from GPy.core.parameterization.parameterized import Parameterized
from GPy.core.parameterization.param import Param from GPy.core.parameterization.param import Param
from GPy.core.parameterization.index_operations import ParameterIndexOperations
class ArrayCoreTest(unittest.TestCase): class ArrayCoreTest(unittest.TestCase):
def setUp(self): def setUp(self):
@ -41,6 +42,7 @@ class ParameterizedTest(unittest.TestCase):
self.test1.kern = self.rbf+self.white self.test1.kern = self.rbf+self.white
self.test1.link_parameter(self.test1.kern) self.test1.link_parameter(self.test1.kern)
self.test1.link_parameter(self.param, 0) self.test1.link_parameter(self.param, 0)
# print self.test1: # print self.test1:
#============================================================================= #=============================================================================
# test_model. | Value | Constraint | Prior | Tied to # test_model. | Value | Constraint | Prior | Tied to
@ -87,8 +89,8 @@ class ParameterizedTest(unittest.TestCase):
self.test1.kern.unlink_parameter(self.white) self.test1.kern.unlink_parameter(self.white)
self.assertIs(self.test1._fixes_,None) self.assertIs(self.test1._fixes_,None)
self.assertIsInstance(self.white.constraints, ParameterIndexOperations)
self.assertListEqual(self.white._fixes_.tolist(), [FIXED]) self.assertListEqual(self.white._fixes_.tolist(), [FIXED])
self.assertEquals(self.white.constraints._offset, 0)
self.assertIs(self.test1.constraints, self.rbf.constraints._param_index_ops) self.assertIs(self.test1.constraints, self.rbf.constraints._param_index_ops)
self.assertIs(self.test1.constraints, self.param.constraints._param_index_ops) self.assertIs(self.test1.constraints, self.param.constraints._param_index_ops)
@ -132,6 +134,13 @@ class ParameterizedTest(unittest.TestCase):
self.test1.kern.unlink_parameter(self.rbf) self.test1.kern.unlink_parameter(self.rbf)
self.assertListEqual(self.test1.constraints[GPy.transformations.Square()].tolist(), []) self.assertListEqual(self.test1.constraints[GPy.transformations.Square()].tolist(), [])
def test_constraints_link_unlink(self):
self.test1.unlink_parameter(self.test1.kern)
self.test1.kern.rbf.unlink_parameter(self.test1.kern.rbf.lengthscale)
self.test1.kern.rbf.link_parameter(self.test1.kern.rbf.lengthscale)
self.test1.kern.rbf.unlink_parameter(self.test1.kern.rbf.lengthscale)
self.test1.link_parameter(self.test1.kern)
def test_constraints_views(self): def test_constraints_views(self):
self.assertEqual(self.white.constraints._offset, self.param.size+self.rbf.size) self.assertEqual(self.white.constraints._offset, self.param.size+self.rbf.size)
self.assertEqual(self.rbf.constraints._offset, self.param.size) self.assertEqual(self.rbf.constraints._offset, self.param.size)
@ -171,7 +180,6 @@ class ParameterizedTest(unittest.TestCase):
self.assertEqual(val, self.testmodel.kern.lengthscale) self.assertEqual(val, self.testmodel.kern.lengthscale)
def test_add_parameter_in_hierarchy(self): def test_add_parameter_in_hierarchy(self):
from GPy.core import Param
self.test1.kern.rbf.link_parameter(Param("NEW", np.random.rand(2), NegativeLogexp()), 1) self.test1.kern.rbf.link_parameter(Param("NEW", np.random.rand(2), NegativeLogexp()), 1)
self.assertListEqual(self.test1.constraints[NegativeLogexp()].tolist(), range(self.param.size+1, self.param.size+1 + 2)) self.assertListEqual(self.test1.constraints[NegativeLogexp()].tolist(), range(self.param.size+1, self.param.size+1 + 2))
self.assertListEqual(self.test1.constraints[GPy.transformations.Logistic(0,1)].tolist(), range(self.param.size)) self.assertListEqual(self.test1.constraints[GPy.transformations.Logistic(0,1)].tolist(), range(self.param.size))