code: def test_gp_model(self):
      rs = np.random.RandomState(1)
      X, Y, n_dims = get_cont_data(rs)
      model = get_gp(n_dims, rs, normalize_y=True)
      self.assertTrue(model.normalize_y)
      self.assertIsNone(model.gp)
      self.assertEqual(np.shape(model.hypers), (0,))
      self.assertEqual(model.is_trained, False)
      self.assertEqual(bool(model.property_dict), False)
  
      mll = model._get_gaussian_process(X, Y)
      self.assertIsInstance(mll, ExactMarginalLogLikelihood)
      self.assertIsInstance(mll.model, ExactGP)
  
imports: import unittest.mock
  import numpy
  import pyro
  import torch
  from botorch.models.kernels.categorical import CategoricalKernel
  from gpytorch.constraints.constraints import Interval
  from gpytorch.kernels import MaternKernel, ProductKernel, ScaleKernel
  from gpytorch.likelihoods.gaussian_likelihood import GaussianLikelihood
  from gpytorch.mlls.exact_marginal_log_likelihood import ExactMarginalLogLikelihood
  from gpytorch.models.exact_gp import ExactGP
  from gpytorch.priors import HorseshoePrior, LogNormalPrior, UniformPrior
  from gpytorch.utils.errors import NotPSDError
  from smac.configspace import CategoricalHyperparameter, ConfigurationSpace, UniformFloatHyperparameter
  from smac.model.gaussian_process.gpytorch_gaussian_process import GPyTorchGaussianProcess
  from ._test_gp import TestGP, get_cat_data, get_cont_data
label_desc: Use image node_id 1 for calling the TestGPGPyTorch obj's underlying member method code with example usage: obj.test_gp_model() without return types