public void RunTest()
{
double[][] inputs;
int[] outputs;
int training = 6000;
DecisionTree tree = 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);
var prune = new ReducedErrorPruning(tree, pruningInputs, pruningOutputs);
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.19454022988505748, error);
Assert.AreEqual(447, nodeCount);
Assert.AreEqual(4, nodeCount2);
}