private static void test(DescriptiveAnalysis analysis)
{
var columnNames = analysis.ColumnNames;
var correlation = analysis.CorrelationMatrix;
var covariance = analysis.CovarianceMatrix;
var deviationScores = analysis.DeviationScores;
var distinct = analysis.Distinct;
var kurtosis = analysis.Kurtosis;
var means = analysis.Means;
var medians = analysis.Medians;
var modes = analysis.Modes;
var ranges = analysis.Ranges;
var samples = analysis.Samples;
var skewness = analysis.Skewness;
var source = analysis.Source;
var standardDeviation = analysis.StandardDeviations;
var standardErrors = analysis.StandardErrors;
var standardScores = analysis.StandardScores;
var sums = analysis.Sums;
var variables = analysis.Variables;
var variances = analysis.Variances;
var quartiles = analysis.Quartiles;
var inner = analysis.InnerFences;
var outer = analysis.OuterFences;
Assert.IsTrue(columnNames.IsEqual(new string[]
{
"Column 0",
"Column 1",
"Column 2",
}));
Assert.IsTrue(correlation.IsEqual(new double[,]
{
{ 1.00000000000000000, -0.24074447786944278, 0 },
{ -0.24074447786944278, 1.00000000000000000, 0 },
{ 0.00000000000000000, 0.00000000000000000, 0 }
}));
Assert.IsTrue(covariance.IsEqual(new double[,]
{
{ 0.3, -3.1, 0.0 },
{ -3.1, 552.7, 0.0 },
{ 0.0, 0.0, 0.0 }
}));
Assert.IsTrue(deviationScores.IsEqual(new double[,]
{
{ -0.39999999999999991, 8.7999999999999972, 0.0 },
{ 0.60000000000000009, -31.200000000000003, 0.0 },
{ -0.39999999999999991, 21.799999999999997, 0.0 },
{ -0.39999999999999991, -18.200000000000003, 0.0 },
{ 0.60000000000000009, 18.799999999999997, 0.0 }
}));
Assert.IsTrue(distinct.IsEqual(new int[] { 2, 5, 1 }));
Assert.IsTrue(kurtosis.IsEqual(new double[] { -3.3333333333333321, -2.213664721197441, double.NaN }));
Assert.IsTrue(means.IsEqual(new double[] { 1.4, 43.2, 5.0 }));
Assert.IsTrue(medians.IsEqual(new double[] { 1.0, 52.0, 5.0 }));
Assert.IsTrue(modes.IsEqual(new double[] { 1.0, 12.0, 5.0 }));
Assert.IsTrue(ranges.Apply(p => p.Min).IsEqual(new double[] { 1, 12, 5 }));
Assert.IsTrue(ranges.Apply(p => p.Max).IsEqual(new double[] { 2, 65, 5 }));
Assert.IsTrue(samples == 5);
Assert.IsTrue(skewness.IsEqual(new double[] { 0.60858061945018527, -0.60008123614710385, double.NaN }));
Assert.IsTrue(source.IsEqual(new double[,]
{
{ 1, 52, 5 },
{ 2, 12, 5 },
{ 1, 65, 5 },
{ 1, 25, 5 },
{ 2, 62, 5 },
}));
Assert.IsTrue(standardDeviation.IsEqual(new double[] { 0.54772255750516607, 23.509572518444482, 0.0 }));
Assert.IsTrue(standardErrors.IsEqual(new double[] { 0.24494897427831777, 10.513800454640558, 0.0 }));
Assert.IsTrue(standardScores.IsEqual(new double[,]
{
{ -0.73029674334022132, 0.37431561093235277, 0.0 },
{ 1.0954451150103324, -1.3271189842147058, 0.0 },
{ -0.73029674334022132, 0.92728185435514676, 0.0 },
{ -0.73029674334022132, -0.77415274079191176, 0.0 },
{ 1.0954451150103324, 0.79967425971911732, 0.0 },
}));
Assert.IsTrue(sums.IsEqual(new double[] { 7, 216.0, 25 }));
Assert.IsTrue(variables == 3);
Assert.IsTrue(variances.IsEqual(new double[] { 0.3, 552.7, 0.0 }));
Assert.AreEqual(3, quartiles.Length);
Assert.AreEqual(1, quartiles[0].Min);
Assert.AreEqual(2, quartiles[0].Max);
Assert.AreEqual(18.5, quartiles[1].Min);
Assert.AreEqual(63.5, quartiles[1].Max);
Assert.AreEqual(18.5 - 1.5 * (63.5 - 18.5), inner[1].Min);
Assert.AreEqual(63.5 + 1.5 * (63.5 - 18.5), inner[1].Max);
Assert.AreEqual(18.5 - 3 * (63.5 - 18.5), outer[1].Min);
Assert.AreEqual(63.5 + 3 * (63.5 - 18.5), outer[1].Max);
Assert.AreEqual(5, quartiles[2].Min);
Assert.AreEqual(5, quartiles[2].Max);
}