code: def test_MultivariateNormalQMCEngine(self):
      for d, dtype in itertools.product(
          (1, 2, 3), (torch.float, torch.double)
      ):
          mean = torch.rand(d, device=self.device, dtype=dtype)
          cov = torch.eye(d, device=self.device, dtype=dtype)
          engine = MultivariateNormalQMCEngine(mean=mean, cov=cov)
          samples = engine.draw()
          self.assertEqual(samples.dtype, dtype)
          self.assertEqual(samples.device.type, self.device.type)
          self.assertEqual(samples.shape, torch.Size([1, d]))
          samples = engine.draw(n=5)
          self.assertEqual(samples.shape, torch.Size([5, 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 5 for calling the MultivariateNormalQMCTests obj's underlying member method code with example usage: obj.test_MultivariateNormalQMCEngine() without return types