gpytorch/variational/grid_interpolation_variational_strategy.py

Killed 55 out of 76 mutants

Survived

Survived mutation testing. These mutants show holes in your test suite.

Mutant 270

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -35,7 +35,7 @@
     def __init__(self, model, grid_size, grid_bounds, variational_distribution):
         grid = torch.zeros(grid_size, len(grid_bounds))
         for i in range(len(grid_bounds)):
-            grid_diff = float(grid_bounds[i][1] - grid_bounds[i][0]) / (grid_size - 2)
+            grid_diff = float(grid_bounds[i][1] + grid_bounds[i][0]) / (grid_size - 2)
             grid[:, i] = torch.linspace(grid_bounds[i][0] - grid_diff, grid_bounds[i][1] + grid_diff, grid_size)
 
         inducing_points = torch.zeros(int(pow(grid_size, len(grid_bounds))), len(grid_bounds))

Mutant 271

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -35,7 +35,7 @@
     def __init__(self, model, grid_size, grid_bounds, variational_distribution):
         grid = torch.zeros(grid_size, len(grid_bounds))
         for i in range(len(grid_bounds)):
-            grid_diff = float(grid_bounds[i][1] - grid_bounds[i][0]) / (grid_size - 2)
+            grid_diff = float(grid_bounds[i][1] - grid_bounds[i][1]) / (grid_size - 2)
             grid[:, i] = torch.linspace(grid_bounds[i][0] - grid_diff, grid_bounds[i][1] + grid_diff, grid_size)
 
         inducing_points = torch.zeros(int(pow(grid_size, len(grid_bounds))), len(grid_bounds))

Mutant 273

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -35,7 +35,7 @@
     def __init__(self, model, grid_size, grid_bounds, variational_distribution):
         grid = torch.zeros(grid_size, len(grid_bounds))
         for i in range(len(grid_bounds)):
-            grid_diff = float(grid_bounds[i][1] - grid_bounds[i][0]) / (grid_size - 2)
+            grid_diff = float(grid_bounds[i][1] - grid_bounds[i][0]) / (grid_size + 2)
             grid[:, i] = torch.linspace(grid_bounds[i][0] - grid_diff, grid_bounds[i][1] + grid_diff, grid_size)
 
         inducing_points = torch.zeros(int(pow(grid_size, len(grid_bounds))), len(grid_bounds))

Mutant 274

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -35,7 +35,7 @@
     def __init__(self, model, grid_size, grid_bounds, variational_distribution):
         grid = torch.zeros(grid_size, len(grid_bounds))
         for i in range(len(grid_bounds)):
-            grid_diff = float(grid_bounds[i][1] - grid_bounds[i][0]) / (grid_size - 2)
+            grid_diff = float(grid_bounds[i][1] - grid_bounds[i][0]) / (grid_size - 3)
             grid[:, i] = torch.linspace(grid_bounds[i][0] - grid_diff, grid_bounds[i][1] + grid_diff, grid_size)
 
         inducing_points = torch.zeros(int(pow(grid_size, len(grid_bounds))), len(grid_bounds))

Mutant 286

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -42,7 +42,7 @@
         prev_points = None
         for i in range(len(grid_bounds)):
             for j in range(grid_size):
-                inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, i].fill_(grid[j, i])
+                inducing_points[j * grid_size ** i : (j + 2) * grid_size ** i, i].fill_(grid[j, i])
                 if prev_points is not None:
                     inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, :i].copy_(prev_points)
             prev_points = inducing_points[: grid_size ** (i + 1), : (i + 1)]

Mutant 290

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -45,7 +45,7 @@
                 inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, i].fill_(grid[j, i])
                 if prev_points is not None:
                     inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, :i].copy_(prev_points)
-            prev_points = inducing_points[: grid_size ** (i + 1), : (i + 1)]
+            prev_points = inducing_points[: grid_size * (i + 1), : (i + 1)]
 
         super(GridInterpolationVariationalStrategy, self).__init__(
             model, inducing_points, variational_distribution, learn_inducing_locations=False

Mutant 292

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -45,7 +45,7 @@
                 inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, i].fill_(grid[j, i])
                 if prev_points is not None:
                     inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, :i].copy_(prev_points)
-            prev_points = inducing_points[: grid_size ** (i + 1), : (i + 1)]
+            prev_points = inducing_points[: grid_size ** (i + 2), : (i + 1)]
 
         super(GridInterpolationVariationalStrategy, self).__init__(
             model, inducing_points, variational_distribution, learn_inducing_locations=False

Mutant 293

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -45,7 +45,7 @@
                 inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, i].fill_(grid[j, i])
                 if prev_points is not None:
                     inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, :i].copy_(prev_points)
-            prev_points = inducing_points[: grid_size ** (i + 1), : (i + 1)]
+            prev_points = inducing_points[: grid_size ** (i + 1), : (i - 1)]
 
         super(GridInterpolationVariationalStrategy, self).__init__(
             model, inducing_points, variational_distribution, learn_inducing_locations=False

Mutant 294

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -45,7 +45,7 @@
                 inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, i].fill_(grid[j, i])
                 if prev_points is not None:
                     inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, :i].copy_(prev_points)
-            prev_points = inducing_points[: grid_size ** (i + 1), : (i + 1)]
+            prev_points = inducing_points[: grid_size ** (i + 1), : (i + 2)]
 
         super(GridInterpolationVariationalStrategy, self).__init__(
             model, inducing_points, variational_distribution, learn_inducing_locations=False

Mutant 295

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -45,7 +45,7 @@
                 inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, i].fill_(grid[j, i])
                 if prev_points is not None:
                     inducing_points[j * grid_size ** i : (j + 1) * grid_size ** i, :i].copy_(prev_points)
-            prev_points = inducing_points[: grid_size ** (i + 1), : (i + 1)]
+            prev_points = None
 
         super(GridInterpolationVariationalStrategy, self).__init__(
             model, inducing_points, variational_distribution, learn_inducing_locations=False

Mutant 296

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -48,7 +48,7 @@
             prev_points = inducing_points[: grid_size ** (i + 1), : (i + 1)]
 
         super(GridInterpolationVariationalStrategy, self).__init__(
-            model, inducing_points, variational_distribution, learn_inducing_locations=False
+            model, inducing_points, variational_distribution, learn_inducing_locations=True
         )
         object.__setattr__(self, "model", model)
 

Mutant 297

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -50,7 +50,7 @@
         super(GridInterpolationVariationalStrategy, self).__init__(
             model, inducing_points, variational_distribution, learn_inducing_locations=False
         )
-        object.__setattr__(self, "model", model)
+        object.__setattr__(self, "XXmodelXX", model)
 
         self.register_buffer("grid", grid)
 

Mutant 301

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -55,7 +55,7 @@
         self.register_buffer("grid", grid)
 
     def _compute_grid(self, inputs):
-        n_data, n_dimensions = inputs.size(-2), inputs.size(-1)
+        n_data, n_dimensions = inputs.size(-2), inputs.size(+1)
         batch_shape = inputs.shape[:-2]
 
         inputs = inputs.reshape(-1, n_dimensions)

Mutant 305

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -56,7 +56,7 @@
 
     def _compute_grid(self, inputs):
         n_data, n_dimensions = inputs.size(-2), inputs.size(-1)
-        batch_shape = inputs.shape[:-2]
+        batch_shape = inputs.shape[:-3]
 
         inputs = inputs.reshape(-1, n_dimensions)
         interp_indices, interp_values = Interpolation().interpolate(self.grid, inputs)

Mutant 317

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -63,7 +63,7 @@
         interp_indices = interp_indices.view(*batch_shape, n_data, -1)
         interp_values = interp_values.view(*batch_shape, n_data, -1)
 
-        if (interp_indices.dim() - 2) != len(self._variational_distribution.batch_shape):
+        if (interp_indices.dim() + 2) != len(self._variational_distribution.batch_shape):
             batch_shape = _mul_broadcast_shape(interp_indices.shape[:-2], self._variational_distribution.batch_shape)
             interp_indices = interp_indices.expand(*batch_shape, *interp_indices.shape[-2:])
             interp_values = interp_values.expand(*batch_shape, *interp_values.shape[-2:])

Mutant 318

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -63,7 +63,7 @@
         interp_indices = interp_indices.view(*batch_shape, n_data, -1)
         interp_values = interp_values.view(*batch_shape, n_data, -1)
 
-        if (interp_indices.dim() - 2) != len(self._variational_distribution.batch_shape):
+        if (interp_indices.dim() - 3) != len(self._variational_distribution.batch_shape):
             batch_shape = _mul_broadcast_shape(interp_indices.shape[:-2], self._variational_distribution.batch_shape)
             interp_indices = interp_indices.expand(*batch_shape, *interp_indices.shape[-2:])
             interp_values = interp_values.expand(*batch_shape, *interp_values.shape[-2:])

Mutant 319

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -63,7 +63,7 @@
         interp_indices = interp_indices.view(*batch_shape, n_data, -1)
         interp_values = interp_values.view(*batch_shape, n_data, -1)
 
-        if (interp_indices.dim() - 2) != len(self._variational_distribution.batch_shape):
+        if (interp_indices.dim() - 2) == len(self._variational_distribution.batch_shape):
             batch_shape = _mul_broadcast_shape(interp_indices.shape[:-2], self._variational_distribution.batch_shape)
             interp_indices = interp_indices.expand(*batch_shape, *interp_indices.shape[-2:])
             interp_values = interp_values.expand(*batch_shape, *interp_values.shape[-2:])

Mutant 321

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -64,7 +64,7 @@
         interp_values = interp_values.view(*batch_shape, n_data, -1)
 
         if (interp_indices.dim() - 2) != len(self._variational_distribution.batch_shape):
-            batch_shape = _mul_broadcast_shape(interp_indices.shape[:-2], self._variational_distribution.batch_shape)
+            batch_shape = _mul_broadcast_shape(interp_indices.shape[:-3], self._variational_distribution.batch_shape)
             interp_indices = interp_indices.expand(*batch_shape, *interp_indices.shape[-2:])
             interp_values = interp_values.expand(*batch_shape, *interp_values.shape[-2:])
         return interp_indices, interp_values

Mutant 324

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -65,7 +65,7 @@
 
         if (interp_indices.dim() - 2) != len(self._variational_distribution.batch_shape):
             batch_shape = _mul_broadcast_shape(interp_indices.shape[:-2], self._variational_distribution.batch_shape)
-            interp_indices = interp_indices.expand(*batch_shape, *interp_indices.shape[-2:])
+            interp_indices = interp_indices.expand(*batch_shape, *interp_indices.shape[-3:])
             interp_values = interp_values.expand(*batch_shape, *interp_values.shape[-2:])
         return interp_indices, interp_values
 

Mutant 327

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -66,7 +66,7 @@
         if (interp_indices.dim() - 2) != len(self._variational_distribution.batch_shape):
             batch_shape = _mul_broadcast_shape(interp_indices.shape[:-2], self._variational_distribution.batch_shape)
             interp_indices = interp_indices.expand(*batch_shape, *interp_indices.shape[-2:])
-            interp_values = interp_values.expand(*batch_shape, *interp_values.shape[-2:])
+            interp_values = interp_values.expand(*batch_shape, *interp_values.shape[-3:])
         return interp_indices, interp_values
 
     @property

Mutant 331

--- gpytorch/variational/grid_interpolation_variational_strategy.py
+++ gpytorch/variational/grid_interpolation_variational_strategy.py
@@ -70,7 +70,7 @@
         return interp_indices, interp_values
 
     @property
-    @cached(name="prior_distribution_memo")
+
     def prior_distribution(self):
         out = self.model.forward(self.inducing_points)
         res = MultivariateNormal(out.mean, out.lazy_covariance_matrix.add_jitter())