# Path: DSTK/FeatureBinning/decision_tree_binner.py
# def _recurse_tree(tree, lst, mdlp, node_id=0, depth=0, min_val=np.NINF, max_val=np.PINF):
# def _convert_count_buckets_to_split_and_vals(sorted_nodes):
# def _check_mdlp_stop(tree, node_id):
# def _calculate_entropy(array):
# def _calculate_gain(tree, node_id):
# def _calculate_noise_delta(tree, node_id):
# def _get_variables_for_entropy_calculation(tree, node_id):
#     def is_fit(self):
#     def values(self):
#     def splits(self):
#     def is_fit(self, is_fit):
#     def values(self, values):
#     def splits(self, splits):
#     def __init__(self, name, **kwargs):
#     def fit(self, values, target):
# class DecisionTreeBinner(BaseBinner):


import sklearn.datasets as ds
import numpy as np
from DSTK.FeatureBinning import decision_tree_binner as tfb

cancer_ds = ds.load_breast_cancer()
data = cancer_ds['data']
target = cancer_ds['target']


def test_recursion():

# Path: DSTK/FeatureBinning/decision_tree_binner.py
# def _recurse_tree(tree, lst, mdlp, node_id=0, depth=0, min_val=np.NINF, max_val=np.PINF):
# def _convert_count_buckets_to_split_and_vals(sorted_nodes):
# def _check_mdlp_stop(tree, node_id):
# def _calculate_entropy(array):
# def _calculate_gain(tree, node_id):
# def _calculate_noise_delta(tree, node_id):
# def _get_variables_for_entropy_calculation(tree, node_id):
#     def is_fit(self):
#     def values(self):
#     def splits(self):
#     def is_fit(self, is_fit):
#     def values(self, values):
#     def splits(self, splits):
#     def __init__(self, name, **kwargs):
#     def fit(self, values, target):
# class DecisionTreeBinner(BaseBinner):


# Path: DSTK/tests/test_feature_binner/test_recursive_feature_binner.py
import sklearn.datasets as ds
import numpy as np
from DSTK.FeatureBinning import decision_tree_binner as tfb


cancer_ds = ds.load_breast_cancer()
data = cancer_ds['data']
target = cancer_ds['target']


def test_recursion():

    binner = tfb.DecisionTreeBinner('test', max_leaf_nodes=4)