HWCap() public method

Calculates the price of a cap within the Hull-White model.
public HWCap ( double a, double sigma, double K, double deltaK, double T ) : double
a double /// Hull-White alpha parameter. ///
sigma double /// Hull-White sigma parameter. ///
K double /// Strike rate. ///
deltaK double /// Time period between caplets expressed in year fraction. ///
T double /// Cap maturity. ///
return double
        public void Test()
        {
            double[,] values = { { .5,  .015 },
                                 {  1, .0165 },
                                 {  2, .0168 },
                                 {  3, .0172 },
                                 {  5, .0182 },
                                 {  8, .0210 },
                                 { 10,  .025 },
                                 { 15,  .031 },
                                 { 20,  .035 },
                                 { 30,  .037 },
                                 { 40,  .038 }, };

            Function zeroratecurve = new PFunction(null);

            zeroratecurve.Expr = values;
            (zeroratecurve as PFunction).m_Function.iType = EInterpolationType.LINEAR;

            // Execute the test.
            CapHW1 hwc = new CapHW1(zeroratecurve);

            // CAP and FLOOR Tests.
            double[] results = new double[2];
            results[0] = hwc.HWCap(0.14, 0.02, 0.02, 0.5, 1);
            results[1] = hwc.HWCap(0.14, 0.02, 0.02, 0.5, 2);

            Console.WriteLine("CAP 2 col 1 row:" + results[0]);
            Console.WriteLine("CAP 2 col 2 row:" + results[1]);

            // Check the results with previously manually calculated values.
            double[] targets = { 0.00214717607719883, 0.0084939015243779 };

            double eps = 10e-6;

            for (int r = 0; r < results.Length; r++)
            {
                Assert.LessOrEqual(Math.Abs(targets[r] - results[r]), eps);
            }
        }
        public void Test()
        {
            double[,] values = { { .5, .015 },
                                 { 1, .0165 },
                                 { 2, .0168 },
                                 { 3, .0172 },
                                 { 5, .0182 },
                                 { 8, .0210 },
                                 { 10, .025 },
                                 { 15, .031 },
                                 { 20, .035 },
                                 { 30, .037 },
                                 { 40, .038 },
                               };

            Function zeroratecurve = new PFunction(null);
            zeroratecurve.Expr = values;
            (zeroratecurve as PFunction).m_Function.iType = EInterpolationType.LINEAR;

            // Execute the test.
            CapHW1 hwc = new CapHW1(zeroratecurve);

            // CAP and FLOOR Tests.
            double[] results = new double[2];
            results[0] = hwc.HWCap(0.14, 0.02, 0.02, 0.5, 1);
            results[1] = hwc.HWCap(0.14, 0.02, 0.02, 0.5, 2);

            Console.WriteLine("CAP 2 col 1 row:" + results[0]);
            Console.WriteLine("CAP 2 col 2 row:" + results[1]);

            // Check the results with previously manually calculated values.
            double[] targets = { 0.00214717607719883, 0.0084939015243779 };

            double eps = 10e-6;

            for (int r = 0; r < results.Length; r++)
            {
                Assert.LessOrEqual(Math.Abs(targets[r] - results[r]), eps);
            }
        }