code: def test_zip_and_unzip(self):
      space = [
          {
              "name": "var_1",
              "type": "continuous",
              "domain": (-3, 1),
              "dimensionality": 1,
          },
          {
              "name": "var_2",
              "type": "discrete",
              "domain": (0, 1, 2, 3),
              "dimensionality": 1,
          },
          {"name": "var_3", "type": "categorical", "domain": (2, 4, 6)},
      ]
      X = np.array([[0.0, 1, 2], [1.5, 3, 2]])
  
      design_space = Design_space(space)
      unzipped = design_space.unzip_inputs(X)
      zipped = design_space.zip_inputs(unzipped)
  
      self.assertTrue(np.array_equal(X, zipped))
  
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 13 for calling the TestDesignSpace obj's underlying member method code with example usage: obj.test_zip_and_unzip() without return types