From fbb460d4d0a5ed7d4222f8b3cb7f4d705bfaba74 Mon Sep 17 00:00:00 2001 From: Sait Cakmak Date: Tue, 27 Feb 2024 15:06:05 -0800 Subject: [PATCH] Patch codecov for SaasFullyBayesianSingleTaskGP & FullyBayesianPosterior Summary: -- Reviewed By: Balandat, SebastianAment Differential Revision: D54278602 fbshipit-source-id: 259fc73e03a68a13507b1574c50ca21fca5d86b2 --- test/models/test_fully_bayesian.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/test/models/test_fully_bayesian.py b/test/models/test_fully_bayesian.py index f0a4b7d1b6..86f4ad247f 100644 --- a/test/models/test_fully_bayesian.py +++ b/test/models/test_fully_bayesian.py @@ -50,7 +50,11 @@ SaasPyroModel, ) from botorch.models.transforms import Normalize, Standardize -from botorch.posteriors.fully_bayesian import batched_bisect, GaussianMixturePosterior +from botorch.posteriors.fully_bayesian import ( + batched_bisect, + FullyBayesianPosterior, + GaussianMixturePosterior, +) from botorch.sampling.get_sampler import get_sampler from botorch.utils.datasets import SupervisedDataset from botorch.utils.multi_objective.box_decompositions.non_dominated import ( @@ -752,6 +756,15 @@ def test_condition_on_observation(self): torch.Size([num_models, num_train + num_cond, num_dims]), ) + # With batch size only on Y. + cond_model = model.condition_on_observations( + cond_X_nobatch, cond_Y, noise=cond_Yvar + ) + self.assertEqual( + cond_model.train_inputs[0].shape, + torch.Size([num_models, num_train + num_cond, num_dims]), + ) + # test repeated conditining repeat_cond_X = cond_X + 5 repeat_cond_model = cond_model.condition_on_observations( @@ -815,6 +828,17 @@ def f(x): dist.cdf(x), q * torch.ones(1, 5, 1, **tkwargs), atol=1e-4 ) + def test_deprecated_posterior(self) -> None: + mean = torch.randn(1, 5) + variance = torch.rand(1, 5) + covar = torch.diag_embed(variance) + mvn = MultivariateNormal(mean, to_linear_operator(covar)) + with self.assertWarnsRegex( + DeprecationWarning, "`FullyBayesianPosterior` is marked for deprecation" + ): + posterior = FullyBayesianPosterior(distribution=mvn) + self.assertIsInstance(posterior, GaussianMixturePosterior) + class TestPyroCatchNumericalErrors(BotorchTestCase): def tearDown(self):