public void Test09BilinearInterpolateTest()
        {
            double[] rowArray               = null;
            double   columnTarget           = 0;
            double   rowTarget              = 0;
            double   expected               = 0;
            SABRInterpolationInterface siif = SABRInterpolationInterface.Instance();
            double actual = siif.BilinearInterpolate(_bilinColumns,
                                                     rowArray, _bilinData, columnTarget, rowTarget);

            Assert.AreEqual(expected, actual);
        }
        public void Test11BilinearInterpolateTest()
        {
            double[] columnTarget           = _bilinColumnTarget;
            double[] rowTarget              = _bilinRowTarget;
            double[] expected               = _bilinExpected;
            SABRInterpolationInterface siif = SABRInterpolationInterface.Instance();

            for (int i = 0; i < rowTarget.Length; i++)
            {
                double actual = siif.BilinearInterpolate(_bilinColumns,
                                                         _bilinRows, _bilinData,
                                                         columnTarget[i], rowTarget[i]);
                Assert.AreEqual(expected[i], Math.Round(actual, 4));
            }
        }
        public void Test06CubicHermiteSplineInterpolateTest()
        {
            double expected     = 10.99; //0
            double target       = 10000;
            string expectedFail = "Cubic Hermite Spline now supports extrapolation";

            try
            {
                SABRInterpolationInterface siif = SABRInterpolationInterface.Instance();
                double actual = siif.CubicHermiteSplineInterpolate(_chsXArray, _chsYArray, target);
                Assert.AreEqual(expected, actual);
            }
            catch (Exception ex)
            {
                Assert.AreEqual(expectedFail, ex.Message);
            }
        }