From 73f44ea0d82a2076dc1d4ec17362ee1801f0cd53 Mon Sep 17 00:00:00 2001 From: Max Zwiessele Date: Mon, 14 Oct 2013 18:00:11 +0100 Subject: [PATCH] more testing --- GPy/testing/parameter_testing.py | 48 +++++++++++++++++++------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/GPy/testing/parameter_testing.py b/GPy/testing/parameter_testing.py index 919920a9..46adb3ad 100644 --- a/GPy/testing/parameter_testing.py +++ b/GPy/testing/parameter_testing.py @@ -13,7 +13,7 @@ from GPy.likelihoods.gaussian import Gaussian class Test(unittest.TestCase): - N, D, Q = 100, 1, 2 + N, D, Q = 10, 6, 4 def setUp(self): self.rbf_variance = numpy.random.rand() self.rbf_lengthscale = numpy.random.rand(self.Q) @@ -30,10 +30,9 @@ class Test(unittest.TestCase): self.Y = numpy.random.multivariate_normal(numpy.zeros(self.N), K + numpy.eye(self.N) * .2, self.D).T self.bgplvm = BayesianGPLVM(Gaussian(self.Y, variance=self.noise_variance), self.Q, self.X, self.X_variance, kernel=self.kern) - self.bgplvm.ensure_default_constraints() + self.bgplvm.ensure_default_constraints(warning=False) self.bgplvm.tie_params("noise_variance|white_variance") - self.bgplvm.constrain_fixed("rbf_var") - + self.bgplvm.constrain_fixed("rbf_var", warning=False) self.parameter = Parameterized([ Parameterized([ Param('X', self.X), @@ -48,15 +47,15 @@ class Test(unittest.TestCase): Param('white_variance', self.noise_variance), Param('noise_variance', self.noise_variance), ]) - self.parameter['.*variance'].constrain_positive() - self.parameter['.*length'].constrain_positive() + + self.parameter['.*variance'].constrain_positive(False) + self.parameter['.*length'].constrain_positive(False) self.parameter.white.tie_to(self.parameter.noise) - self.parameter.rbf_var.constrain_fixed() + self.parameter.rbf_var.constrain_fixed(False) def tearDown(self): pass - # def testGrepParamNamesTest(self): # assert(self.bgplvm.grep_param_names('X_\d') == self.parameter.grep_param_names('X_\d')) # assert(self.bgplvm.grep_param_names('X_\d+_1') == self.parameter.grep_param_names('X_\d+_1')) @@ -85,25 +84,35 @@ class Test(unittest.TestCase): assert(numpy.allclose(self.bgplvm._get_params_transformed(), self.parameter._get_params_transformed())) def testSlicing(self): - assert(numpy.alltrue(self.parameter.X[:,1] == self.X[:,1])) - assert(numpy.alltrue(self.parameter.X[:,1] == self.X[:,1])) - assert(numpy.alltrue(self.parameter.X_variance[1,1] == self.X_variance[1,1])) - import ipdb;ipdb.set_trace() - assert(numpy.alltrue(self.parameter.X_variance[:] == self.X_variance[:])) - assert(numpy.alltrue(self.parameter.X[:,:][:,0:2][:,1] == self.X[:,1])) - assert(numpy.alltrue(self.parameter.X[:,1] == self.X[:,1])) - assert(numpy.alltrue(self.parameter.X_variance[1,1] == self.X_variance[1,1])) - assert(numpy.alltrue(self.parameter.X_variance[:] == self.X_variance[:])) + assert(numpy.allclose(self.parameter.X[:,1], self.X[:,1])) + assert(numpy.allclose(self.parameter.X[:,1], self.X[:,1])) + assert(numpy.allclose(self.parameter.X_variance[1,1], self.X_variance[1,1])) + assert(numpy.allclose(self.parameter.X_variance[:], self.X_variance[:])) + assert(numpy.allclose(self.parameter.X[:,:][:,0:2][:,1], self.X[:,1])) + assert(numpy.allclose(self.parameter.X[:,1], self.X[:,1])) + assert(numpy.allclose(self.parameter.X_variance[1,1], self.X_variance[1,1])) + assert(numpy.allclose(self.parameter.X_variance[:], self.X_variance[:])) + def testSlicingSet(self): + self.parameter['.*variance'] = 1. + assert(numpy.alltrue(self.parameter['.*variance'] == 1.)) + self.parameter.X[0,:3] = 2 + assert(numpy.alltrue(self.parameter.X[0,:3] == 2)) + X = self.parameter.X.copy() + self.parameter.X[[0,4,9],[0,1,3]] -= 1 + assert(numpy.alltrue((X[[0,4,9],[0,1,3]] - 1) == self.parameter.X[[0,4,9],[0,1,3]])) + self.parameter[''] = 10 + assert(numpy.alltrue(self.parameter[''] == 10)) + def testConstraints(self): self.parameter[''].unconstrain() self.parameter.X.constrain_positive() - self.parameter.X[:,0].unconstrain_positive() + self.parameter.X[:,numpy.s_[0::2]].unconstrain_positive() assert(numpy.alltrue(self.parameter._constraints.indices()[0] == numpy.r_[1:self.N*self.Q:2])) def testNdarrayFunc(self): assert(numpy.alltrue(self.parameter.X * self.parameter.X == self.X * self.X)) - assert(numpy.alltrue(self.parameter.X * self.parameter.X == self.X * self.X)) + assert(numpy.alltrue(self.parameter.X[0,:] * self.parameter.X[1,:] == self.X[0,:] * self.X[1,:])) @@ -115,5 +124,6 @@ if __name__ == "__main__": 'Test.testNdarrayFunc', 'Test.testSetParams', 'Test.testConstraints', + 'Test.testSlicingSet', ] unittest.main()