code: def test_SobolGeneratorOnlineRestart(self) -> None:
      # Ensure a single batch generation can also equivalently done by
      # a partial generation, re-initialization of a new SobolGenerator,
      # and a final generation.
      generator = SobolGenerator(seed=0)
      n_tunable = fixed_param_index = 3
      bounds = self._create_bounds(n_tunable=n_tunable, n_fixed=1)
      generated_points_single_batch, _ = generator.gen(
          n=3,
          bounds=bounds,
          fixed_features={fixed_param_index: 1},
          rounding_func=lambda x: x,
      )
  
      generator_first_batch = SobolGenerator(seed=0)
      generated_points_first_batch, _ = generator_first_batch.gen(
          n=1,
          bounds=bounds,
          fixed_features={fixed_param_index: 1},
          rounding_func=lambda x: x,
      )
      generator_second_batch = SobolGenerator(
          init_position=generator_first_batch.init_position, seed=0
      )
      generated_points_second_batch, _ = generator_second_batch.gen(
          n=2,
          bounds=bounds,
          fixed_features={fixed_param_index: 1},
          rounding_func=lambda x: x,
      )
  
      generated_points_two_trials = np.vstack(
          (generated_points_first_batch, generated_points_second_batch)
      )
      self.assertTrue(
          np.shape(generated_points_single_batch)
          == np.shape(generated_points_two_trials)
      )
      self.assertTrue(
          np.allclose(
              generated_points_single_batch, generated_points_two_trials
          )
      )
  
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 11 for calling the SobolGeneratorTest obj's underlying member method code with example usage: obj.test_SobolGeneratorOnlineRestart() without return types