private void ProcessLeaf(Feature node) { if (node.SubFeaturesCompleted) return; IEnumerable<String> randomFeatures = randomGen.GetRandomFeatureList(node.Name); foreach (var randomFeature in randomFeatures) { //Limiting depth of recursive features if (docTree.GetNestedDepth(node, randomFeature) >= configuration.GetMaxNestingDepth(randomFeature)) { continue; } int childCount = GetChildCount(node.Name, randomFeature); for (int i = 0; i < childCount; i++) { if (node.GetSubFeatureCount(randomFeature) < childCount) { node.AddSubElement(FeatureFactory.CreateFeature(randomFeature, DataProvider)); } } } node.ShuffleChilds(); node.SubFeaturesCompleted = true; }
private bool IsLeaf(Feature node) { if (node.GetSubFeatureCount() == 0) { return true; } return false; }