code: def test_NormalQMCEngineShapiroInvTransform(self):
      engine = NormalQMCEngine(d=2, seed=12345, inv_transform=True)
      samples = engine.draw(n=256)
      self.assertEqual(samples.dtype, torch.float)
      self.assertTrue(torch.all(torch.abs(samples.mean(dim=0)) < 1e-2))
      self.assertTrue(
          torch.all(torch.abs(samples.std(dim=0) - 1) < 1e-2)
      )
      # perform Shapiro-Wilk test for normality
      for i in (0, 1):
          _, pval = shapiro(samples[:, i])
          self.assertGreater(pval, 0.9)
      # make sure samples are uncorrelated
      cov = np.cov(samples.numpy().transpose())
      self.assertLess(np.abs(cov[0, 1]), 1e-2)
  
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 7 for calling the NormalQMCTests obj's underlying member method code with example usage: obj.test_NormalQMCEngineShapiroInvTransform() without return types