/** * Copyright (C) 2009 - 2011 by OpenGamma Inc. * * Please see distribution for license. */ package com.opengamma.analytics.financial.model.finitedifference; import org.testng.annotations.Test; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class RichardsonExtrapolationFiniteDifferenceTest { private static final ConvectionDiffusionPDESolverTestCase TESTER = new ConvectionDiffusionPDESolverTestCase(); private static final ConvectionDiffusionPDESolver BASE_SOLVER = new ThetaMethodFiniteDifference(1.0, false); private static final ConvectionDiffusionPDESolver SOLVER = new RichardsonExtrapolationFiniteDifference(BASE_SOLVER); @Test public void testBlackScholesEquation() { int timeSteps = 10; int priceSteps = 100; double lowerMoneyness = 0.4; double upperMoneyness = 3.0; double volTol = 1e-2; // These tolerances are not as good as running Crank-Nicolson with 20 time steps double priceTol = 5e-2; double deltaTol = 1e-2; double gammaTol = 5e-2; boolean print = false; // set to false before pushing TESTER.testTimeExtrapolation(SOLVER, timeSteps, priceSteps, lowerMoneyness, upperMoneyness, volTol, priceTol, deltaTol, gammaTol, print); } }