code: def test_lgbm_implementation(self):
      warnings.filterwarnings("ignore")
      np.random.seed(0)
      X = np.random.rand(10, 1)
      X = np.array(X, dtype=np.float32)
      y = np.random.randint(2, size=10)
  
      for model in [
          lgb.LGBMClassifier(n_estimators=1, max_depth=1),
          lgb.LGBMRegressor(n_estimators=1, max_depth=1),
      ]:
          for extra_config_param in [
              "tree_trav",
              "perf_tree_trav",
              "gemm",
          ]:
              model.fit(X, y)
  
              torch_model = hummingbird.ml.convert(
                  model,
                  "torch",
                  extra_config={
                      "tree_implementation": extra_config_param
                  },
              )
              self.assertIsNotNone(torch_model)
              self.assertEqual(
                  str(type(list(torch_model.model._operators)[0])),
                  gbdt_implementation_map[extra_config_param],
              )
  
imports: import unittest
  import warnings
  import numpy
  import hummingbird.ml
  from hummingbird.ml import constants
  from hummingbird.ml._utils import lightgbm_installed, onnx_runtime_installed, tvm_installed
  from tree_utils import gbdt_implementation_map
label_desc: Use image node_id 1 for calling the TestLGBMConverter obj's underlying member method code with example usage: obj.test_lgbm_implementation() without return types