code: def test_column_wise_clamp_full_dim_tensors(self):
      X = torch.tensor(
          [[[-1, 2, 0.5], [0.5, 3, 1.5]], [[0.5, 1, 0], [2, -2, 3]]]
      )
      lower = torch.tensor(
          [[[0, 0.5, 1], [0, 2, 2]], [[0, 2, 0], [1, -1, 0]]]
      )
      upper = torch.tensor(
          [[[1, 1.5, 1], [1, 4, 3]], [[1, 3, 0.5], [3, 1, 2.5]]]
      )
      X_expected = torch.tensor(
          [[[0, 1.5, 1], [0.5, 3, 2]], [[0.5, 2, 0], [2, -1, 2.5]]]
      )
      X_clmp = columnwise_clamp(X, lower, upper)
      self.assertTrue(torch.equal(X_clmp, X_expected))
      X_clmp = columnwise_clamp(X, lower - 5, upper + 5)
      self.assertTrue(torch.equal(X_clmp, X))
      with self.assertRaises(ValueError):
          X_clmp = columnwise_clamp(
              X, torch.ones_like(X), torch.zeros_like(X)
          )
      with self.assertRaises(RuntimeError):
          X_clmp = columnwise_clamp(
              X, lower.unsqueeze(-3), upper.unsqueeze(-3)
          )
  
imports: from __future__ import annotations
  import warnings
  import torch
  from botorch import settings
  from botorch.acquisition.fixed_feature import FixedFeatureAcquisitionFunction
  from botorch.acquisition.monte_carlo import qExpectedImprovement, qNoisyExpectedImprovement
  from botorch.acquisition.multi_objective.max_value_entropy_search import qMultiObjectiveMaxValueEntropy
  from botorch.acquisition.multi_objective.monte_carlo import qExpectedHypervolumeImprovement, qNoisyExpectedHypervolumeImprovement
  from botorch.exceptions import BotorchError
  from botorch.exceptions.warnings import BotorchWarning
  from botorch.models import ModelListGP, SingleTaskGP
  from botorch.models.transforms.input import Warp
  from botorch.optim.utils import columnwise_clamp, fix_features, get_X_baseline
  from botorch.sampling.normal import IIDNormalSampler
  from botorch.utils.multi_objective.box_decompositions.non_dominated import FastNondominatedPartitioning
  from botorch.utils.testing import BotorchTestCase, MockModel, MockPosterior
label_desc: Use image node_id 5 for calling the TestColumnWiseClamp obj's underlying member method code with example usage: obj.test_column_wise_clamp_full_dim_tensors() without return types