code: def test_fit_and_transform_all_feature_classes(self):
      # >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
      # All feature classes together
      # >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
  
      fbt = FeatureBinarizerFromTrees(
          colCateg=self.col_categorical,
          treeNum=1,
          treeDepth=None,
          threshRound=2,
          returnOrd=True,
          randomState=self.random_state,
      )
  
      # Reduce the number of numerical features, otherwise the categorical and binary features won't be selected.
      cols = (
          self.col_categorical + self.col_binary + self.col_ordinal[0:2]
      )
      fbt.fit(self.X_train[cols], self.y_train)
      T = fbt.transform(self.X_test[cols])
      self.assertTrue(type(T) is tuple)
      self.assertTrue(type(T[0]) is DataFrame)
      self.assertTrue(type(T[1]) is DataFrame)
      U: DataFrame = T[1]
      T: DataFrame = T[0]
      self.assertListEqual(U.columns.to_list(), fbt.ordinal)
  
      self.assertListEqual(list(fbt.enc.keys()), self.col_categorical)
      self.assertTrue(type(list(fbt.enc.values())[0]) is OneHotEncoder)
      self.assertTrue(type(list(fbt.thresh.values())[0]) is ndarray)
      self.assertListEqual(list(fbt.maps.keys()), self.col_binary)
      self.assertListEqual(
          list(fbt.thresh.keys()), ["mean radius", "mean texture"]
      )
  
      a = T[("mean texture", "<=", 27.24)].to_numpy()
      b = (self.X_test["mean texture"] <= 27.24).astype(int).to_numpy()
      self.assertTrue(np.all(a == b))
      a = T[("mean texture", ">", 27.24)].to_numpy()
      b = 1 - b
      self.assertTrue(np.all(a == b))
  
      # >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
      # Test NaN, None during transform.
      #
      # In the past, Numpy raised a warning when doing vector comparisons against Nan/None,
      # but this is no longer the case.
      # >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
  
      Xn: DataFrame = self.X_test.copy(True)
      idx = Xn.sample(10).index
      Xn.loc[idx, "mean radius"] = np.NaN
      Xn.loc[idx, "cat alpha"] = None
      T: DataFrame = fbt.transform(Xn)[0]
      # For continuous values, the NaN values do not qualify for any range.
      self.assertFalse(
          (T.loc[idx, "mean radius"] == 1).to_numpy().any()
      )
      # For categorical values, the None values do not qualify for any comparisons.
      self.assertTrue(
          (T.loc[idx, ("cat alpha", "==")] == 0).to_numpy().all()
      )
      self.assertTrue(
          (T.loc[idx, ("cat alpha", "!=")] == 1).to_numpy().all()
      )
  
file_path: AIX360/tests/rbm/test_Feature_Binarizer_From_Trees.py
imports: from unittest import TestCase
  import numpy
  from numpy import ndarray
  from pandas import DataFrame
  from sklearn.datasets import load_breast_cancer
  from sklearn.model_selection import train_test_split
  from sklearn.preprocessing import OneHotEncoder, StandardScaler
  from aix360.algorithms.rbm import FeatureBinarizerFromTrees
label_desc: Use image node_id 8 for calling the TestFeatureBinarizerFromTrees obj's underlying member method code with example usage: obj.test_fit_and_transform_all_feature_classes() without return types