Skip to content

Commit 32916b9

Browse files
authored
Updated Tests
1 parent d78d262 commit 32916b9

File tree

1 file changed

+25
-32
lines changed

1 file changed

+25
-32
lines changed
Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import unittest
2-
import numpy as np
32
import torch
4-
from botorch_community.models.np_regression import NeuralProcessModel
53
from botorch.posteriors import GPyTorchPosterior
4+
from botorch_community.models.np_regression import NeuralProcessModel
65

76
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
87

8+
99
class TestNeuralProcessModel(unittest.TestCase):
1010
def initialize(self):
1111
self.r_hidden_dims = [16, 16]
@@ -16,39 +16,39 @@ def initialize(self):
1616
self.r_dim = 8
1717
self.z_dim = 8
1818
self.model = NeuralProcessModel(
19-
self.r_hidden_dims,
19+
torch.rand(100, self.x_dim),
20+
torch.rand(100, self.y_dim),
21+
self.r_hidden_dims,
2022
self.z_hidden_dims,
2123
self.decoder_hidden_dims,
2224
self.x_dim,
2325
self.y_dim,
2426
self.r_dim,
2527
self.z_dim,
2628
)
27-
self.x_data = np.random.rand(100, self.x_dim)
28-
self.y_data = np.random.rand(100, self.y_dim)
2929

3030
def test_r_encoder(self):
3131
self.initialize()
32-
input = torch.rand(10, self.x_dim + self.y_dim)
32+
input = torch.rand(100, self.x_dim + self.y_dim)
3333
output = self.model.r_encoder(input)
34-
self.assertEqual(output.shape, (10, self.r_dim))
34+
self.assertEqual(output.shape, (100, self.r_dim))
3535
self.assertTrue(torch.is_tensor(output))
3636

3737
def test_z_encoder(self):
3838
self.initialize()
39-
input = torch.rand(10, self.r_dim)
39+
input = torch.rand(100, self.r_dim)
4040
mean, logvar = self.model.z_encoder(input)
41-
self.assertEqual(mean.shape, (10, self.z_dim))
42-
self.assertEqual(logvar.shape, (10, self.z_dim))
41+
self.assertEqual(mean.shape, (100, self.z_dim))
42+
self.assertEqual(logvar.shape, (100, self.z_dim))
4343
self.assertTrue(torch.is_tensor(mean))
4444
self.assertTrue(torch.is_tensor(logvar))
4545

4646
def test_decoder(self):
4747
self.initialize()
48-
x_pred = torch.rand(10, self.x_dim)
48+
x_pred = torch.rand(100, self.x_dim)
4949
z = torch.rand(self.z_dim)
5050
output = self.model.decoder(x_pred, z)
51-
self.assertEqual(output.shape, (10, self.y_dim))
51+
self.assertEqual(output.shape, (100, self.y_dim))
5252
self.assertTrue(torch.is_tensor(output))
5353

5454
def test_sample_z(self):
@@ -71,50 +71,43 @@ def test_KLD_gaussian(self):
7171

7272
def test_data_to_z_params(self):
7373
self.initialize()
74-
x = torch.rand(10, self.x_dim)
75-
y = torch.rand(10, self.y_dim)
76-
mu, logvar = self.model.data_to_z_params(x, y)
74+
mu, logvar = self.model.data_to_z_params(
75+
self.model.train_X,
76+
self.model.train_Y
77+
)
7778
self.assertEqual(mu.shape, (self.z_dim,))
7879
self.assertEqual(logvar.shape, (self.z_dim,))
7980
self.assertTrue(torch.is_tensor(mu))
8081
self.assertTrue(torch.is_tensor(logvar))
8182

8283
def test_forward(self):
8384
self.initialize()
84-
x_t = torch.rand(5, self.x_dim)
85-
x_c = torch.rand(10, self.x_dim)
86-
y_c = torch.rand(10, self.y_dim)
87-
y_t = torch.rand(5, self.y_dim)
88-
output = self.model(x_t, x_c, y_c, y_t)
89-
self.assertEqual(output.shape, (5, self.y_dim))
85+
output = self.model(self.model.train_X, self.model.train_Y)
86+
self.assertEqual(output.loc.shape, (80, self.y_dim))
9087

9188
def test_random_split_context_target(self):
9289
self.initialize()
9390
x_c, y_c, x_t, y_t = self.model.random_split_context_target(
94-
self.x_data[:, 0], self.y_data, 20, 0
91+
self.model.train_X[:, 0], self.model.train_Y
9592
)
9693
self.assertEqual(x_c.shape[0], 20)
9794
self.assertEqual(y_c.shape[0], 20)
9895
self.assertEqual(x_t.shape[0], 80)
9996
self.assertEqual(y_t.shape[0], 80)
100-
97+
10198
def test_posterior(self):
10299
self.initialize()
103-
x_t = torch.rand(5, self.x_dim)
104-
x_c = torch.rand(10, self.x_dim)
105-
y_c = torch.rand(10, self.y_dim)
106-
y_t = torch.rand(5, self.y_dim)
107-
output = self.model(x_t, x_c, y_c, y_t)
108-
posterior = self.model.posterior(x_t, 0.1, 0.01, observation_noise=True)
100+
self.model(self.model.train_X, self.model.train_Y)
101+
posterior = self.model.posterior(self.model.train_X, observation_noise=True)
109102
self.assertIsInstance(posterior, GPyTorchPosterior)
110103
mvn = posterior.mvn
111-
self.assertEqual(mvn.covariance_matrix.size(), (5, 5, 5))
112-
104+
self.assertEqual(mvn.covariance_matrix.size(), (100, 100, 100))
105+
113106
def test_transform_inputs(self):
114107
self.initialize()
115108
X = torch.rand(5, 3)
116109
self.assertTrue(torch.equal(self.model.transform_inputs(X), X.to(device)))
117-
110+
118111

119112
if __name__ == "__main__":
120113
unittest.main()

0 commit comments

Comments
 (0)