code: def test_ALEBOSobolModel(self) -> None:
      B = np.array([[1.0, 2.0, 3.0], [2.0, 3.0, 4.0]])
      Q = np.linalg.pinv(B) @ B
      # Test setting attributes
      m = ALEBOInitializer(B=B)
      self.assertTrue(np.allclose(Q, m.Q))
  
      # Test gen
      Z, w = m.gen(5, bounds=[(-1.0, 1.0)] * 3)
      self.assertEqual(Z.shape, (5, 3))
      self.assertTrue(Z.min() >= -1.0)
      self.assertTrue(Z.max() <= 1.0)
      # Verify that it is in the subspace
      self.assertTrue(np.allclose(Q @ Z.transpose(), Z.transpose()))
  
      m = ALEBOInitializer(B=B, nsamp=1)
      with self.assertRaises(ValueError):
          m.gen(2, bounds=[(-1.0, 1.0)] * 3)
  
imports: import numpy
  from ax.models.random.alebo_initializer import ALEBOInitializer
  from ax.utils.common.testutils import TestCase
label_desc: Use image node_id 1 for calling the ALEBOSobolTest obj's underlying member method code with example usage: obj.test_ALEBOSobolModel() without return types