public void RunTest()
{
double[][] inputs;
int[] outputs;
int training = 6000;
DecisionTree tree = ReducedErrorPruningTest.createNurseryExample(out inputs, out outputs, training);
int nodeCount = 0;
foreach (var node in tree)
nodeCount++;
var pruningInputs = inputs.Submatrix(training, inputs.Length - 1);
var pruningOutputs = outputs.Submatrix(training, inputs.Length - 1);
ErrorBasedPruning prune = new ErrorBasedPruning(tree, pruningInputs, pruningOutputs);
prune.Threshold = 0.1;
double lastError, error = Double.PositiveInfinity;
do
{
lastError = error;
error = prune.Run();
} while (error < lastError);
int nodeCount2 = 0;
foreach (var node in tree)
nodeCount2++;
Assert.AreEqual(0.28922413793103446, error);
Assert.AreEqual(447, nodeCount);
Assert.AreEqual(424, nodeCount2);
}