code: def test_NormalQMCEngineInvTransform(self):
      for d in (1, 2):
          engine = NormalQMCEngine(d=d, inv_transform=True)
          samples = engine.draw()
          self.assertEqual(samples.dtype, torch.float)
          self.assertEqual(samples.shape, torch.Size([1, d]))
          samples = engine.draw(n=5)
          self.assertEqual(samples.shape, torch.Size([5, d]))
          # test double dtype
          samples = engine.draw(dtype=torch.double)
          self.assertEqual(samples.dtype, torch.double)
          self.assertEqual(samples.shape, torch.Size([1, d]))
  
imports: import itertools
  import math
  import numpy
  import torch
  from botorch.sampling.qmc import MultivariateNormalQMCEngine, NormalQMCEngine
  from botorch.utils.testing import BotorchTestCase
  from scipy.stats import shapiro
label_desc: Use image node_id 2 for calling the NormalQMCTests obj's underlying member method code with example usage: obj.test_NormalQMCEngineInvTransform() without return types