code: def test_get_weighted_mc_objective_and_objective_thresholds(
      self,
  ) -> None:
      objective_weights = torch.tensor([0.0, 1.0, 0.0, 1.0])
      objective_thresholds = torch.arange(4, dtype=torch.float)
      (
          weighted_obj,
          new_obj_thresholds,
      ) = get_weighted_mc_objective_and_objective_thresholds(
          objective_weights=objective_weights,
          objective_thresholds=objective_thresholds,
      )
      self.assertTrue(
          torch.equal(weighted_obj.weights, objective_weights[[1, 3]])
      )
      self.assertEqual(weighted_obj.outcomes.tolist(), [1, 3])
      self.assertTrue(
          torch.equal(new_obj_thresholds, objective_thresholds[[1, 3]])
      )
  
imports: from contextlib import ExitStack
  from typing import Any, cast, Dict, Tuple
  from unittest import mock
  import numpy
  import torch
  from ax.core.search_space import SearchSpaceDigest
  from ax.models.torch.botorch_moo import MultiObjectiveBotorchModel
  from ax.models.torch.botorch_moo_defaults import get_outcome_constraint_transforms, get_qLogEHVI, get_qLogNEHVI, get_weighted_mc_objective_and_objective_thresholds, infer_objective_thresholds, pareto_frontier_evaluator
  from ax.models.torch.utils import _get_X_pending_and_observed
  from ax.utils.common.testutils import TestCase
  from botorch.utils.datasets import SupervisedDataset
  from botorch.utils.multi_objective.hypervolume import infer_reference_point
  from botorch.utils.sampling import manual_seed
  from botorch.utils.testing import MockModel, MockPosterior
  from torch._tensor import Tensor
label_desc: Use image node_id 2 for calling the BotorchMOODefaultsTest obj's underlying member method code with example usage: obj.test_get_weighted_mc_objective_and_objective_thresholds() without return types