public void DescriptiveAnalysisConstructorTest()
{
double[,] data = Matrix.Magic(3);
string[] columnNames = { "x", "y", "z" };
DescriptiveAnalysis target = new DescriptiveAnalysis(data, columnNames);
target.Compute();
Assert.AreEqual("x", target.ColumnNames[0]);
Assert.AreEqual("y", target.ColumnNames[1]);
Assert.AreEqual("z", target.ColumnNames[2]);
Assert.IsTrue(target.CorrelationMatrix.IsEqual(new double[,]
{
{ 1.0000, -0.7559, 0.1429 },
{ -0.7559, 1.0000, -0.7559 },
{ 0.1429, -0.7559, 1.0000 },
}, atol: 0.0001));
Assert.IsTrue(target.CovarianceMatrix.IsEqual(new double[,]
{
{ 7, -8, 1 },
{ -8, 16, -8 },
{ 1, -8, 7 },
}, atol: 0.00000001));
Assert.IsTrue(target.StandardScores.IsEqual(new double[,]
{
{ 1.1339, -1.0000, 0.3780 },
{ -0.7559, 0, 0.7559 },
{ -0.3780, 1.0000, -1.1339 },
}, atol: 0.001));
Assert.IsTrue(target.Means.IsEqual(new double[] { 5, 5, 5 }));
Assert.IsTrue(target.StandardDeviations.IsEqual(new double[] { 2.6458, 4.0000, 2.6458 }, 0.001));
Assert.IsTrue(target.Medians.IsEqual(new double[] { 4, 5, 6 }));
Assert.AreEqual(3, target.Ranges[0].Min);
Assert.AreEqual(8, target.Ranges[0].Max);
Assert.AreEqual(1, target.Ranges[1].Min);
Assert.AreEqual(9, target.Ranges[1].Max);
Assert.AreEqual(2, target.Ranges[2].Min);
Assert.AreEqual(7, target.Ranges[2].Max);
Assert.AreEqual(3, target.Samples);
Assert.AreEqual(3, target.Variables);
Assert.IsTrue(target.Source.IsEqual(Matrix.Magic(3)));
Assert.IsTrue(target.Sums.IsEqual(new double[] { 15, 15, 15 }));
Assert.IsTrue(target.Variances.IsEqual(new double[] { 7, 16, 7 }));
Assert.AreEqual(3, target.Quartiles[0].Min);
Assert.AreEqual(8, target.Quartiles[0].Max);
Assert.AreEqual(1, target.Quartiles[1].Min);
Assert.AreEqual(9, target.Quartiles[1].Max);
Assert.AreEqual(2, target.Quartiles[2].Min);
Assert.AreEqual(7, target.Quartiles[2].Max);
}