public void returns_the_same_as_mean_when_all_values_are_negative() { //arrange var inputData = new[] { -1.0, -2.0 }; var mean = inputData.Mean(); //act var lossMean = inputData.LossMean(); //assert Assert.AreEqual(mean, lossMean); }
public void returns_same_as_mean_when_all_values_are_positive() { //arrange var inputData = new[] { 1.0, 2.0, 3.0 }; var mean = inputData.Mean(); //act var gainMean = inputData.GainMean(); //assert Assert.AreEqual(mean, gainMean); }
public void only_uses_data_points_below_the_mean_of_all_data() { //arrange var inputData = new[] { 1.0, 2.0, 3.0, 4.0 }; var mean = inputData.Mean(); var expectedSemiDeviation = inputData.Where(x => x < mean).StandardDeviation(); //act var semiDeviation = inputData.SemiDeviation(); //assert Assert.AreEqual(expectedSemiDeviation, semiDeviation); }
public void handles_negative_values() { //arrange var inputData = new[] { -1.0, 2.0, 3.0, 4.0 }; var mean = inputData.Mean(); var expectedSemiDeviation = inputData.Where(x => x < mean).StandardDeviation(); //act var semiDeviation = inputData.SemiDeviation(); //assert Assert.AreEqual(expectedSemiDeviation, semiDeviation); }
public void FitsToMeanOnOrder0Polynomial() { // Mathematica: Fit[{{1,4.986},{2,2.347},{3,2.061},{4,-2.995},{5,-2.352},{6,-5.782}}, {1}, x] // -> -0.289167 var x = Enumerable.Range(1, 6).Select(Convert.ToDouble).ToArray(); var y = new[] { 4.986, 2.347, 2.061, -2.995, -2.352, -5.782 }; var resp = Fit.Polynomial(x, y, 0); Assert.AreEqual(1, resp.Length); Assert.AreEqual(-0.289167, resp[0], 1e-4); Assert.AreEqual(y.Mean(), resp[0], 1e-4); }