code: def test_lognorm_to_norm(self):
      for dtype in (torch.float, torch.double):
          # independent case
          mu = torch.tensor(
              [0.25, 0.5, 1.0], device=self.device, dtype=dtype
          )
          diag = torch.tensor(
              [0.5, 2.0, 1.0], device=self.device, dtype=dtype
          )
          Cov = torch.diag_embed((math.exp(1) - 1) * diag)
          mu_n, Cov_n = lognorm_to_norm(mu, Cov)
          mu_n_expected = torch.tensor(
              [-2.73179, -2.03864, -0.5],
              device=self.device,
              dtype=dtype,
          )
          diag_expected = torch.tensor(
              [2.69099, 2.69099, 1.0], device=self.device, dtype=dtype
          )
          self.assertAllClose(mu_n, mu_n_expected)
          self.assertAllClose(Cov_n, torch.diag_embed(diag_expected))
  
          # correlated case
          Z = torch.zeros(3, 3, device=self.device, dtype=dtype)
          Z[0, 2] = math.sqrt(math.exp(1)) - 1
          Z[2, 0] = math.sqrt(math.exp(1)) - 1
          mu = torch.ones(3, device=self.device, dtype=dtype)
          Cov = torch.diag_embed(mu * (math.exp(1) - 1)) + Z
          mu_n, Cov_n = lognorm_to_norm(mu, Cov)
          mu_n_expected = -0.5 * torch.ones(
              3, device=self.device, dtype=dtype
          )
          Cov_n_expected = torch.tensor(
              [[1.0, 0.0, 0.5], [0.0, 1.0, 0.0], [0.5, 0.0, 1.0]],
              device=self.device,
              dtype=dtype,
          )
          self.assertAllClose(mu_n, mu_n_expected, atol=1e-4)
          self.assertAllClose(Cov_n, Cov_n_expected, atol=1e-4)
  
file_path: botorch/test/models/transforms/test_utils.py
imports: import math
  from itertools import product
  import torch
  from botorch.models.transforms.utils import expand_and_copy_tensor, lognorm_to_norm, norm_to_lognorm, norm_to_lognorm_mean, norm_to_lognorm_variance
  from botorch.utils.testing import BotorchTestCase
label_desc: Use image node_id 1 for calling the TestTransformUtils obj's underlying member method code with example usage: obj.test_lognorm_to_norm() without return types