code: def test_keep_unselected_feature(self, get_iris_data):
      ground_truth = np.array(
          [
              [4, 2, 3, 3, 4, 6, 4, 4, 1, 3, 4, 4, 2, 2, 6],
              [6, 6, 4, 5, 5, 4, 4, 4, 3, 4, 2, 4, 4, 4, 3],
              [3, 4, 6, 6, 3, 3, 4, 4, 2, 4, 4, 0, 3, 4, 5],
              [2, 5, 3, 4, 3, 3, 3, 3, 0, 1, 1, 3, 0, 1, 1],
              [0, 2, 0, 1, 1, 3, 2, 1, 0, 1, 3, 1, 1, 1, 1],
              [2, 1, 2, 1, 1, 0, 0, 1, 1, 2, 4, 3, 0, 2, 1],
              [1, 2, 1, 0, 1, 2, 1, 1, 1, 1, 3, 1, 2, 1, 2],
              [2, 1, 1, 1, 4, 3, 1, 2, 1, 1, 3, 2, 5, 1, 0],
              [3, 1, 1, 1, 3, 3, 1, 2, 1, 2, 1, 5, 1, 1, 1],
              [2, 4, 3, 2, 3, 3, 3, 1, 3, 3, 2, 1, 2, 4, 2],
          ]
      )  # ground truth is generated by manually use DecionTree to extract thresholds
  
      dt_multi = DecisionTreeSupervisedDiscretiserMethod(
          tree_params={"max_depth": 3, "random_state": 2020},
          mode="multi",
          split_unselected_feat=True,
      )
      tree_discretiser = dt_multi.fit(
          feat_names=[
              "sepal length (cm)",
              "sepal width (cm)",
              "petal length (cm)",
              "petal width (cm)",
          ],
          dataframe=get_iris_data,
          target_continuous=False,
          target="target",
      )
      output = tree_discretiser.transform(
          get_iris_data[["sepal width (cm)"]]
      ).values
      assert (ground_truth == output.reshape(-1, 15)).all()
  
file_path: causalnex/tests/discretiser/test_decision_tree.py
imports: import numpy
  import pytest
  from causalnex.discretiser.discretiser_strategy import DecisionTreeSupervisedDiscretiserMethod
label_desc: Use image node_id 5 for calling the TestDecisionTree obj's underlying member method code with example usage: obj.test_keep_unselected_feature(get_iris_data) without return types