code: def test_bounds(self):
      space = [
          {
              "name": "var_1",
              "type": "continuous",
              "domain": (-3, 1),
              "dimensionality": 1,
          },
          {"name": "var_2", "type": "discrete", "domain": (0, 1, 2, 3)},
          {"name": "var_3", "type": "categorical", "domain": (2, 4)},
      ]
  
      design_space = Design_space(space)
      bounds = design_space.get_bounds()
  
      # Countinuous variable bound
      self.assertIn((-3, 1), bounds)
      # Discrete variable bound
      self.assertIn((0, 3), bounds)
      # Categorical variable bound
      self.assertIn((0, 1), bounds)
  
imports: import numpy
  import unittest
  from GPyOpt.core.task.space import Design_space
  from GPyOpt.core.task.variables import BanditVariable, DiscreteVariable, CategoricalVariable, ContinuousVariable
  from GPyOpt.core.errors import InvalidConfigError
label_desc: Use image node_id 11 for calling the TestDesignSpace obj's underlying member method code with example usage: obj.test_bounds() without return types