def test_expand(self): grammar = CKSGrammar(base_kernel_names=['SE', 'RQ']) grammar.build(n_dims=2) scored_kernel = GPModel(self.se0) scored_kernel.score = 1 result = grammar.expand([scored_kernel]) self.assertIsInstance(result, list)
def test_to_dict(self): test_cases = ( (None, 'None score'), (10., 'Positive score') ) for score, description in test_cases: with self.subTest(description=description): kernel = Covariance(RBF(1) * RBF(1) + RationalQuadratic(1)) gp_model = GPModel(kernel) gp_model.score = score actual = gp_model.to_dict() self.assertIsInstance(actual, dict) self.assertIn('likelihood', actual) self.assertIn('covariance', actual) self.assertIn('score', actual) self.assertEqual(None, actual['likelihood']) self.assertEqual(gp_model.covariance.to_dict(), actual['covariance']) self.assertEqual(gp_model.score, actual['score'])
def test_remove_duplicate_gp_models(self): k1 = GPModel(Covariance(RBF(1))) k1.score = 10 k2 = GPModel(Covariance(RBF(1))) k2.score = 9 k3 = GPModel(Covariance(RBF(1))) k4 = GPModel(Covariance(RBF(1))) k5 = GPModel(Covariance(RBF(1))) k6 = GPModel(Covariance(RBF(1, lengthscale=0.5))) k7 = GPModel(Covariance(RationalQuadratic(1))) # Always keep k1 then k2 then k3 etc. result = remove_duplicate_gp_models([k1, k2, k3, k4, k5, k6, k7]) self.assertListEqual(result, [k1, k7]) result = remove_duplicate_gp_models([k1, k2, k3, k4, k5, k7]) self.assertListEqual(result, [k1, k7]) result = remove_duplicate_gp_models([k1, k2, k3, k4, k7]) self.assertListEqual(result, [k1, k7]) result = remove_duplicate_gp_models([k1, k2, k3, k7]) self.assertListEqual(result, [k1, k7]) result = remove_duplicate_gp_models([k1, k2, k7]) self.assertListEqual(result, [k1, k7]) result = remove_duplicate_gp_models([k1, k7]) self.assertListEqual(result, [k1, k7]) result = remove_duplicate_gp_models([k2, k3, k4, k5, k6, k7]) self.assertListEqual(result, [k2, k7]) result = remove_duplicate_gp_models([k2, k3, k4, k5, k7]) self.assertListEqual(result, [k2, k7]) result = remove_duplicate_gp_models([k2, k3, k4, k7]) self.assertListEqual(result, [k2, k7]) result = remove_duplicate_gp_models([k2, k3, k7]) self.assertListEqual(result, [k2, k7]) result = remove_duplicate_gp_models([k2, k7]) self.assertListEqual(result, [k2, k7]) result = remove_duplicate_gp_models([k3, k4, k5, k6, k7]) self.assertTrue(result == [k3, k7] or result == [k4, k7]) result = remove_duplicate_gp_models([k3, k4, k5, k7]) self.assertTrue(result == [k3, k7] or result == [k4, k7]) result = remove_duplicate_gp_models([k4, k3, k5, k6, k7]) self.assertTrue(result == [k3, k7] or result == [k4, k7]) result = remove_duplicate_gp_models([k4, k3, k5, k7]) self.assertTrue(result == [k3, k7] or result == [k4, k7]) result = remove_duplicate_gp_models([k3, k4, k5, k7]) self.assertTrue(result == [k3, k7] or result == [k4, k7]) result = remove_duplicate_gp_models([k3, k4, k7]) self.assertTrue(result == [k3, k7] or result == [k4, k7]) result = remove_duplicate_gp_models([k4, k3, k7]) self.assertTrue(result == [k3, k7] or result == [k4, k7]) result = remove_duplicate_gp_models([k3, k7]) self.assertListEqual(result, [k3, k7]) result = remove_duplicate_gp_models([k4, k7]) self.assertListEqual(result, [k4, k7]) result = remove_duplicate_gp_models([k5, k6, k7]) self.assertTrue(result == [k5, k7] or result == [k6, k7]) result = remove_duplicate_gp_models([k6, k5, k7]) self.assertTrue(result == [k5, k7] or result == [k6, k7])