code: def test_init(self):
      trunc = next(iter(self.distributions))
      with self.assertRaisesRegex(
          SyntaxError, "Missing required argument `bounds`"
      ):
          TruncatedMultivariateNormal(
              loc=trunc.loc, covariance_matrix=trunc.covariance_matrix
          )
  
      with self.assertRaisesRegex(
          ValueError, r"Expected bounds.shape\[-1\] to be 2"
      ):
          TruncatedMultivariateNormal(
              loc=trunc.loc,
              covariance_matrix=trunc.covariance_matrix,
              bounds=torch.empty(
                  trunc.covariance_matrix.shape[:-1] + (1,)
              ),
          )
  
      with self.assertRaisesRegex(
          ValueError, "`bounds` must be strictly increasing"
      ):
          TruncatedMultivariateNormal(
              loc=trunc.loc,
              covariance_matrix=trunc.covariance_matrix,
              bounds=trunc.bounds.roll(shifts=1, dims=-1),
          )
  
file_path: botorch/test/utils/probability/test_truncated_multivariate_normal.py
imports: from __future__ import annotations
  from itertools import count
  from typing import Sequence, Tuple
  import torch
  from botorch.utils.probability.mvnxpb import MVNXPB
  from botorch.utils.probability.truncated_multivariate_normal import TruncatedMultivariateNormal
  from botorch.utils.testing import BotorchTestCase
  from torch import Tensor
  from torch.distributions import MultivariateNormal
  from torch.special import ndtri
label_desc: Use image node_id 3 for calling the TestTruncatedMultivariateNormal obj's underlying member method code with example usage: obj.test_init() without return types