public void CalculateEntropyTest_TwoClasses_UnevenDistribution() { //Given var builder = new TreeBuilder(); var trainingSet = new List <IrisRecord> { new IrisRecord { Classification = "Iris-setosa" }, new IrisRecord { Classification = "Iris-versicolor" }, new IrisRecord { Classification = "Iris-versicolor" }, new IrisRecord { Classification = "Iris-versicolor" }, new IrisRecord { Classification = "Iris-versicolor" }, new IrisRecord { Classification = "Iris-versicolor" }, new IrisRecord { Classification = "Iris-versicolor" }, new IrisRecord { Classification = "Iris-versicolor" }, new IrisRecord { Classification = "Iris-versicolor" }, new IrisRecord { Classification = "Iris-versicolor" }, }; var classification = typeof(IrisRecord).GetClassificationProperty(); var expected = 0.47; var delta = 0.01; //When var entropy = builder.CalculateEntropy(trainingSet, classification); //Then entropy.Should().BeInRange(expected - delta, expected + delta); }