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);
 }
Example #5
0
        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);
        }