code: def test_is_linear(self) -> None:
      posterior = _get_test_posterior(
          shape=torch.Size([1, 1]),
          device=self.device,
          dtype=torch.float64,
      )
      y = torch.arange(2, dtype=torch.float64, device=self.device)[
          :, None
      ]
      standardize_tf = Standardize(m=1)
      standardize_tf(y)
  
      for transform in [
          standardize_tf,
          Power(power=0.5),
          Log(),
          ChainedOutcomeTransform(
              chained=ChainedOutcomeTransform(stand=standardize_tf)
          ),
          ChainedOutcomeTransform(log=Log()),
      ]:
          posterior_is_gpt = isinstance(
              transform.untransform_posterior(posterior),
              GPyTorchPosterior,
          )
          self.assertEqual(posterior_is_gpt, transform._is_linear)
  
imports: import itertools
  from copy import deepcopy
  import torch
  from botorch.models.transforms.outcome import Bilog, ChainedOutcomeTransform, Log, OutcomeTransform, Power, Standardize
  from botorch.models.transforms.utils import norm_to_lognorm_mean, norm_to_lognorm_variance
  from botorch.posteriors import GPyTorchPosterior, TransformedPosterior
  from botorch.utils.testing import BotorchTestCase
  from gpytorch.distributions import MultitaskMultivariateNormal, MultivariateNormal
  from linear_operator.operators import BlockDiagLinearOperator, DenseLinearOperator, DiagLinearOperator
label_desc: Use image node_id 3 for calling the TestOutcomeTransforms obj's underlying member method code with example usage: obj.test_is_linear() without return types