AmericanVanillaOptionDefinition call = new AmericanVanillaOptionDefinition(STRIKE, TENTH_YEAR, true);
AmericanVanillaOptionDefinition put = new AmericanVanillaOptionDefinition(STRIKE, TENTH_YEAR, false);
final VolatilitySurface surface = new VolatilitySurface(ConstantDoublesSurface.from(SIGMA1));
StandardOptionDataBundle vars = new StandardOptionDataBundle(CURVE, B, surface, SPOT1, DATE);
assertResult(model.getGreeks(call, vars, GREEK_SET), 0.0205, eps);
vars = vars.withSpot(SPOT2);
assertResult(model.getGreeks(call, vars, GREEK_SET), 1.8757, eps);
vars = vars.withSpot(SPOT3);
assertResult(model.getGreeks(call, vars, GREEK_SET), 10, eps);
vars = vars.withVolatilitySurface(new VolatilitySurface(ConstantDoublesSurface.from(SIGMA2))).withSpot(SPOT1);
assertResult(model.getGreeks(call, vars, GREEK_SET), 0.3151, eps);