public void testBuilders() {
final ZonedDateTime newDate = DATE.plusDays(1);
assertEquals(DATA.withDate(newDate), new GeneralLogNormalOptionDataBundle(YIELD, DRIFT_SURFACE, VOLATILITY_SURFACE, SPOT, newDate));
final YieldCurve newCurve = YieldCurve.from(ConstantDoublesCurve.from(0.05));
assertEquals(DATA.withInterestRateCurve(newCurve), new GeneralLogNormalOptionDataBundle(newCurve, DRIFT_SURFACE, VOLATILITY_SURFACE, SPOT, DATE));
final VolatilitySurface newSurface = new VolatilitySurface(ConstantDoublesSurface.from(0.9));
assertEquals(DATA.withVolatilitySurface(newSurface), new GeneralLogNormalOptionDataBundle(YIELD, DRIFT_SURFACE, newSurface, SPOT, DATE));
final DriftSurface newDrift = new DriftSurface(ConstantDoublesSurface.from(0.9));
assertEquals(DATA.withDriftSurface(newDrift), new GeneralLogNormalOptionDataBundle(YIELD, newDrift, VOLATILITY_SURFACE, SPOT, DATE));
final double newSpot = SPOT + 1;
assertEquals(DATA.withSpot(newSpot), new GeneralLogNormalOptionDataBundle(YIELD, DRIFT_SURFACE, VOLATILITY_SURFACE, newSpot, DATE));