public void CanGetVariableCount() { var storage = new MdnnDoubleSpace(Samples, Variables); Assert.AreEqual(Samples, storage.Samples); Assert.AreEqual(Variables, storage.Variables); }
public void GetMahalanobisDistanceComputesCorrectly(double[] sampleValues, double expectedMd) { var space = new MdnnDoubleSpace(GetGoodSpaceData()); var sample = new MdnnDoubleSample(sampleValues); var result = GetMahalanobisDistance(space, sample); Assert.IsTrue(Math.Abs(result - expectedMd) < 0.1); }
public void FindUsefulVariablesDeterminesCorrectUsefulVariables() { var expected = new[] { false, true, true, true, false, true, true, true, true }; var goodSpace = new MdnnDoubleSpace(GetGoodSpaceData()); var badSpace = new MdnnDoubleSpace(GetBadSpaceData()); var result = FindUsefulVariables(goodSpace, badSpace); CollectionAssert.AreEqual(expected, result); }
public void CalculateZCorrectlyDeterminesZeroZ() { var matrix = new double[, ] { { 0, 0, 0 }, { 0, 0, 0 } }; var space = new MdnnDoubleSpace(matrix); var vector = new double[] { 0, 0, 0 }; var sample = new MdnnDoubleSample(vector); var z = CalculateZ(space, sample); CollectionAssert.AreEqual(vector, z.Storage); }
public void MultiplyGetsCorrectResultForSpaceAndSample() { var values1 = new double[, ] { { 1, -1, 2 }, { 0, -3, 1 } }; var space = new MdnnDoubleSpace(values1); var values2 = new double[] { 2, 1 }; var sample = new MdnnDoubleSample(values2); var result = new MdnnDoubleMtsMathProvider().Multiply(sample, space); var expected = new double[] { 2, -5, 5 }; CollectionAssert.AreEqual(expected, result.Storage); }