code: def _test_GetQNEHVI(self, acqf_name: str, mock_acqf):
      # make sure ref_point is specified
      with self.assertRaises(ValueError):
          acqf = get_acquisition_function(
              acquisition_function_name=acqf_name,
              model=self.model,
              objective=self.objective,
              X_observed=self.X_observed,
              X_pending=self.X_pending,
              mc_samples=self.mc_samples,
              seed=self.seed,
          )
      acqf = get_acquisition_function(
          acquisition_function_name=acqf_name,
          model=self.model,
          objective=self.objective,
          X_observed=self.X_observed,
          X_pending=self.X_pending,
          mc_samples=self.mc_samples,
          seed=self.seed,
          ref_point=self.ref_point,
      )
      self.assertEqual(acqf, mock_acqf.return_value)
      mock_acqf.assert_called_once_with(
          constraints=None,
          eta=1e-3,
          model=self.model,
          X_baseline=self.X_observed,
          objective=self.objective,
          ref_point=self.ref_point,
          sampler=mock.ANY,
          prune_baseline=True,
          alpha=0.0,
          X_pending=self.X_pending,
          marginalize_dim=None,
          cache_root=True,
      )
      args, kwargs = mock_acqf.call_args
      self.assertEqual(args, ())
      sampler = kwargs["sampler"]
      self.assertEqual(
          sampler.sample_shape, torch.Size([self.mc_samples])
      )
      self.assertEqual(sampler.seed, 1)
      # test with non-qmc
      acqf = get_acquisition_function(
          acquisition_function_name=acqf_name,
          model=self.model,
          objective=self.objective,
          X_observed=self.X_observed,
          X_pending=self.X_pending,
          mc_samples=self.mc_samples,
          seed=2,
          ref_point=self.ref_point,
      )
      self.assertEqual(mock_acqf.call_count, 2)
      args, kwargs = mock_acqf.call_args
      self.assertEqual(args, ())
      self.assertEqual(kwargs["ref_point"], self.ref_point)
      sampler = kwargs["sampler"]
      ref_point = kwargs["ref_point"]
      self.assertEqual(ref_point, self.ref_point)
      self.assertEqual(
          sampler.sample_shape, torch.Size([self.mc_samples])
      )
      self.assertEqual(sampler.seed, 2)
  
      # test passing alpha
      acqf = get_acquisition_function(
          acquisition_function_name=acqf_name,
          model=self.model,
          objective=self.objective,
          X_observed=self.X_observed,
          X_pending=self.X_pending,
          mc_samples=self.mc_samples,
          seed=2,
          ref_point=self.ref_point,
          alpha=0.01,
      )
      self.assertEqual(mock_acqf.call_count, 3)
      args, kwargs = mock_acqf.call_args
      self.assertEqual(kwargs["alpha"], 0.01)
  
imports: import math
  from unittest import mock
  import torch
  from botorch.acquisition import logei, monte_carlo
  from botorch.acquisition.factory import get_acquisition_function
  from botorch.acquisition.multi_objective import logei, MCMultiOutputObjective, monte_carlo
  from botorch.acquisition.objective import MCAcquisitionObjective, ScalarizedPosteriorTransform
  from botorch.acquisition.utils import compute_best_feasible_objective
  from botorch.utils.multi_objective.box_decompositions.non_dominated import FastNondominatedPartitioning, NondominatedPartitioning
  from botorch.utils.testing import BotorchTestCase, MockModel, MockPosterior
  from gpytorch.distributions import MultivariateNormal
  from torch import Tensor
label_desc: Use image node_id 16 for calling the TestGetAcquisitionFunction obj's underlying member method code with example usage: obj._test_GetQNEHVI(acqf_name, mock_acqf) without return types