SmileDeltaTermStructureDataBundle extends ForexOptionDataBundle<SmileDeltaTermStructureParametersStrikeInterpolation> { @Override public SmileDeltaTermStructureDataBundle with(final YieldCurveBundle ycBundle) { return new SmileDeltaTermStructureDataBundle(ycBundle, getVolatilityModel(), getCurrencyPair()); } SmileDeltaTermStructureDataBundle(final YieldCurveBundle ycBundle, final SmileDeltaTermStructureParametersStrikeInterpolation smile, final Pair<Currency, Currency> currencyPair); static SmileDeltaTermStructureDataBundle from(final YieldCurveBundle ycBundle, final SmileDeltaTermStructureParametersStrikeInterpolation smile, final Pair<Currency, Currency> currencyPair); @Override SmileDeltaTermStructureDataBundle copy(); @Override SmileDeltaTermStructureDataBundle with(final YieldCurveBundle ycBundle); @Override SmileDeltaTermStructureDataBundle with(final SmileDeltaTermStructureParametersStrikeInterpolation volatilityModel);  }
@Test public void testBuilders() { final SmileDeltaTermStructureDataBundle fxData = new SmileDeltaTermStructureDataBundle(CURVES, SMILES, CCYS); assertEquals(FX_DATA, fxData); SmileDeltaTermStructureDataBundle other = fxData.with(TestsDataSetsForex.createCurvesForex2()); assertEquals(FX_DATA, fxData); assertFalse(other.equals(fxData)); other = FX_DATA.with(TestsDataSetsForex.smile5points(REFERENCE_DATE, 0.1)); assertEquals(FX_DATA, fxData); assertFalse(other.equals(fxData)); }