public void CreateInterpolator_ReturnedFunctionEvaluatedInMiddleOfXInputs_ReturnsMiddleOfYInputs()
        {
            var xCoords = new[] { 1.2, 2.0, 3.4 };
            var yCoords = new[] { 15.5, 23.48, -41.5 };

            var linearInterpolatorFactor = new LinearInterpolatorFactory();

            Func <double, double> interpolator = linearInterpolatorFactor.CreateInterpolator(xCoords, yCoords);

            double x         = 1.6;
            double y         = interpolator(x);
            double expectedY = 15.5 + (23.48 - 15.5) / 2.0;

            Assert.Equal(expectedY, y);
        }
        public void CreateInterpolator_ReturnsFunctionWhichEvaluatesToInputs()
        {
            var xCoords = new[] { 1.2, 1.8, 2.5 };
            var yCoords = new[] { 46.56, -1.58, 8.556 };

            var linearInterpolatorFactor = new LinearInterpolatorFactory();

            Func <double, double> interpolator = linearInterpolatorFactor.CreateInterpolator(xCoords, yCoords);

            for (int i = 0; i < xCoords.Length; i++)
            {
                double x         = xCoords[i];
                double y         = interpolator(x);
                double expectedY = yCoords[i];
                Assert.Equal(expectedY, y);
            }
        }