code: def test_lattice_rule_sample_with_zero_additive_shift(self):
      generating_vectors = self.generating_vectors()
  
      expected = tf.constant(
          [
              [0.000, 0.000, 0.000, 0.000, 0.000],
              [0.125, 0.375, 0.125, 0.625, 0.875],
              [0.250, 0.750, 0.250, 0.250, 0.750],
              [0.375, 0.125, 0.375, 0.875, 0.625],
              [0.500, 0.500, 0.500, 0.500, 0.500],
              [0.625, 0.875, 0.625, 0.125, 0.375],
              [0.750, 0.250, 0.750, 0.750, 0.250],
              [0.875, 0.625, 0.875, 0.375, 0.125],
          ],
          dtype=tf.float32,
      )
  
      for dtype in [tf.float32, tf.float64]:
          actual = qmc.lattice_rule_sample(
              generating_vectors,
              5,
              8,
              additive_shift=tf.zeros_like(
                  generating_vectors, dtype=dtype
              ),
              validate_args=True,
          )
  
          with self.subTest("Values"):
              self.assertAllClose(
                  self.evaluate(actual),
                  self.evaluate(expected),
                  rtol=1e-6,
              )
          with self.subTest("DType"):
              self.assertEqual(actual.dtype, expected.dtype)
  
file_path: tf-quant-finance/tf_quant_finance/math/qmc/lattice_rule_test.py
imports: import tensorflow.compat.v2
  import tf_quant_finance
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 6 for calling the LatticeRuleTest obj's underlying member method code with example usage: obj.test_lattice_rule_sample_with_zero_additive_shift() without return types