public void OneWayAnovaConstructorTest2()
{
// Test for unequal sample sizes
double[][] samples =
{
new double[] { 6, 8, 4, 5 },
new double[] { 8, 12, 9, 11, 6, 8 },
new double[] { 13, 9, 11, 8, 12 },
};
double mean1 = samples[0].Mean();
double dev1 = samples[0].StandardDeviation();
double mean2 = samples[1].Mean();
double dev2 = samples[1].StandardDeviation();
double mean3 = samples[2].Mean();
double dev3 = samples[2].StandardDeviation();
OneWayAnova anova = new OneWayAnova(samples);
Assert.AreEqual(anova.Table.Count, 3);
Assert.AreEqual("Between-Groups", anova.Table[0].Source);
Assert.AreEqual(53.383333333333326, anova.Table[0].SumOfSquares); // Sb
Assert.AreEqual(2, anova.Table[0].DegreesOfFreedom); // df
Assert.AreEqual(26.691666666666663, anova.Table[0].MeanSquares); // MSb
Assert.AreEqual(6.4124124124124107, anova.Table[0].Statistic);
Assert.AreEqual(0.012757639347451104, anova.Table[0].Significance.PValue);
Assert.IsFalse(double.IsNaN(anova.Table[0].Significance.PValue));
Assert.AreEqual("Within-Groups", anova.Table[1].Source);
Assert.AreEqual(49.95000000000001, anova.Table[1].SumOfSquares); // Sw
Assert.AreEqual(12, anova.Table[1].DegreesOfFreedom); // df
Assert.AreEqual(4.1625000000000005, anova.Table[1].MeanSquares); // MSw
Assert.IsNull(anova.Table[1].Statistic);
Assert.IsNull(anova.Table[1].Significance);
Assert.AreEqual("Total", anova.Table[2].Source);
Assert.AreEqual(103.33333333333334, anova.Table[2].SumOfSquares); // Sw
Assert.AreEqual(14, anova.Table[2].DegreesOfFreedom); // df
Assert.IsNull(anova.Table[2].Statistic);
Assert.IsNull(anova.Table[2].Significance);
}