def test_LightGBM(self):
        train_data = lightgbm.Dataset(self.x_train, label=np.argmax(self.y_train, axis=1))
        test_data = lightgbm.Dataset(self.x_test, label=np.argmax(self.y_test, axis=1))

        parameters = {
            "objective": "multiclass",
            "num_class": self.n_classes,
            "metric": "multi_logloss",
            "is_unbalance": "true",
            "boosting": "gbdt",
            "num_leaves": 5,
            "feature_fraction": 0.5,
            "bagging_fraction": 0.5,
            "bagging_freq": 0,
            "learning_rate": 0.05,
            "verbose": 0,
        }

        model = lightgbm.train(
            parameters, train_data, valid_sets=test_data, num_boost_round=2, early_stopping_rounds=10
        )

        classifier = LightGBMClassifier(model=model)

        rt = RobustnessVerificationTreeModelsCliqueMethod(classifier=classifier)
        average_bound, verified_error = rt.verify(
            x=self.x_test, y=self.y_test, eps_init=0.3, nb_search_steps=10, max_clique=2, max_level=2
        )

        self.assertEqual(average_bound, 0.07634765624999999)
        self.assertEqual(verified_error, 0.85)
    def setUpClass(cls):
        master_seed(seed=1234)
        super().setUpClass()

        cls.y_train_iris_index = np.argmax(cls.y_train_iris, axis=1)
        cls.y_test_iris_index = np.argmax(cls.y_test_iris, axis=1)

        num_round = 10
        param = {
            "objective": "multiclass",
            "metric": "multi_logloss",
            "num_class": 3
        }
        train_data = lgb.Dataset(cls.x_train_iris,
                                 label=cls.y_train_iris_index)
        model = lgb.train(param,
                          train_data,
                          num_round,
                          valid_sets=[train_data])

        cls.classifier = LightGBMClassifier(model=model)