예제 #1
0
        public void linearDataExtrapolatesLinearValues()
        {
            double[] data = new double[100];
            for (int i = 0; (i < data.Length); i++)
            {
                data[i] = ((0.25 * i) * -1);
            }

            var builder = new InterpolatorBuilder();

            for (int degree = 1; (degree < 3); degree++)
            {
                builder.Width  = 7;
                builder.Degree = degree;
                LoessInterpolator loess = builder.interpolate(data);

                double y = loess.smoothOnePoint(-100, 0, (data.Length - 1));
                Assert.True(y != 0);
                Assert.Equal(((0.25 * -100) * -1), y, 5);


                y = loess.smoothOnePoint(1000, 0, (data.Length - 1));
                Assert.True(y != 0);
                Assert.Equal(((0.25 * 1000) * -1), y, 5);
                //
            }
        }
예제 #2
0
 //  Utility functions...
 private void checkFitToData(double[] data, LoessInterpolator loess, int precision)
 {
     for (int i = 0; (i < data.Length); i++)
     {
         Double y = loess.smoothOnePoint(i, 0, (data.Length - 1));
         Assert.True(y != 0);
         Assert.Equal(data[i], y, precision);
         //ssertEquals(String.format("Bad value at %d", i), data[i], y, eps);
     }
 }