public MultiValueSplitSelectorForCategoricalOutcome(
     IDataSplitter categoricalSplitter, 
     IBinaryNumericDataSplitter binarySplitter,
     IBinaryNumericAttributeSplitPointSelector binaryNumericBestSplitPointSelector)
     : base(categoricalSplitter, binarySplitter, binaryNumericBestSplitPointSelector)
 {
 }
 public BinarySplitSelectorForCategoricalOutcome(
     IBinaryDataSplitter binaryDataSplitter, 
     IBinaryNumericDataSplitter binaryNumericDataSplitter,
     IBinaryNumericAttributeSplitPointSelector binaryNumericBestSplitPointSelector)
     : base(binaryDataSplitter, binaryNumericDataSplitter, binaryNumericBestSplitPointSelector)
 {
 }
 protected BaseSplitSelectorForCategoricalOutcome(
     IDataSplitter binarySplitter, 
     IBinaryNumericDataSplitter binaryNumericSplitter, 
     IBinaryNumericAttributeSplitPointSelector binaryNumericBestSplitPointSelector)
 {
     CategoricalDataSplitter = binarySplitter;
     BinaryNumericDataSplitter = binaryNumericSplitter;
     BinaryNumericBestSplitingPointSelector = binaryNumericBestSplitPointSelector;
 }
 public BestSplitSelectorsTests()
 {
     ICategoricalImpurityMeasure<string> shannonEntropy = new ShannonEntropy<string>();
     IBinaryDataSplitter binaryDataSplitter = new BinaryDiscreteDataSplitter();
     binaryNumericBestSplitPointSelector = new ClassBreakpointsNumericSplitFinder();
     binaryBestSplitSelector = new BinarySplitSelectorForCategoricalOutcome(binaryDataSplitter, binaryNumericDataSplitter, binaryNumericBestSplitPointSelector);
     categoricalBinarySplitQualityChecker = new InformationGainCalculator<string>(shannonEntropy, shannonEntropy);
     categoricalMultiValueSplitQualityChecker = new InformationGainCalculator<string>(shannonEntropy, shannonEntropy);
     multiValueCategoricalDataSplitter = new MultiValueDiscreteDataSplitter();
     multiValueBestSplitSelector = new MultiValueSplitSelectorForCategoricalOutcome(multiValueCategoricalDataSplitter, binaryNumericDataSplitter, binaryNumericBestSplitPointSelector);
     dynamicProgrammingBestNumericSplitFinder = new DynamicProgrammingNumericSplitFinder();
 }