code: def test_SobolGeneratorAllTunable(self) -> None:
      generator = SobolGenerator(seed=0)
      bounds = self._create_bounds(n_tunable=3, n_fixed=0)
      generated_points, weights = generator.gen(
          n=3, bounds=bounds, rounding_func=lambda x: x
      )
      self.assertEqual(np.shape(generated_points), (3, 3))
      np_bounds = np.array(bounds)
      self.assertTrue(np.alltrue(generated_points >= np_bounds[:, 0]))
      self.assertTrue(np.alltrue(generated_points <= np_bounds[:, 1]))
      self.assertTrue(np.all(weights == 1.0))
      self.assertEqual(generator._get_state().get("init_position"), 3)
  
imports: from typing import List, Tuple
  from unittest import mock
  import numpy
  from ax.exceptions.core import SearchSpaceExhausted
  from ax.models.random.sobol import SobolGenerator
  from ax.utils.common.testutils import TestCase
  from botorch.utils.sampling import sample_polytope
label_desc: Use image node_id 3 for calling the SobolGeneratorTest obj's underlying member method code with example usage: obj.test_SobolGeneratorAllTunable() without return types