code: def test_moo_predictive_entropy_search(
      self, use_model_list=False, maximize=False
  ):
      torch.manual_seed(1)
      tkwargs = {"device": self.device}
  
      for (
          dtype,
          num_objectives,
          standardize_model,
      ) in product(
          (torch.float, torch.double),
          (1, 2, 3),
          (False, True),
      ):
          tkwargs["dtype"] = dtype
          input_dim = 2
          train_X = torch.rand(4, input_dim, **tkwargs)
          train_Y = torch.rand(4, num_objectives, **tkwargs)
          model = get_model(
              train_X, train_Y, use_model_list, standardize_model
          )
  
          num_pareto_samples = 3
          num_pareto_points = 1 if num_objectives == 1 else 4
  
          pareto_sets = dummy_sample_pareto_sets(
              model, num_pareto_samples, num_pareto_points
          )
  
          # test acquisition
          X_pending_list = [None, torch.rand(2, input_dim, **tkwargs)]
          for i in range(len(X_pending_list)):
              X_pending = X_pending_list[i]
              acq = qMultiObjectivePredictiveEntropySearch(
                  model=model,
                  pareto_sets=pareto_sets,
                  maximize=maximize,
                  X_pending=X_pending,
              )
  
              test_Xs = [
                  torch.rand(4, 1, input_dim, **tkwargs),
                  torch.rand(4, 3, input_dim, **tkwargs),
                  torch.rand(4, 5, 1, input_dim, **tkwargs),
                  torch.rand(4, 5, 3, input_dim, **tkwargs),
              ]
  
              for test_X in test_Xs:
                  acq_X = acq(test_X)
                  # assess shape
                  self.assertTrue(acq_X.shape == test_X.shape[:-2])
  
file_path: botorch/test/acquisition/multi_objective/test_predictive_entropy_search.py
imports: from itertools import product
  import torch
  from botorch.acquisition.multi_objective.predictive_entropy_search import _safe_update_omega, _update_damping, qMultiObjectivePredictiveEntropySearch
  from botorch.exceptions import UnsupportedError
  from botorch.models.gp_regression import SingleTaskGP
  from botorch.models.model_list_gp_regression import ModelListGP
  from botorch.models.transforms.outcome import Standardize
  from botorch.utils.testing import BotorchTestCase
label_desc: Use image node_id 2 for calling the TestQMultiObjectivePredictiveEntropySearch obj's underlying member method code with example usage: obj.test_moo_predictive_entropy_search(use_model_list, maximize) without return types