public void coverage() { PointShifts test = PointShifts.builder(ShiftType.RELATIVE) .addShift(0, Tenor.TENOR_1W, 0.1) .addShift(0, Tenor.TENOR_1M, 0.2) .addShift(0, Tenor.TENOR_3M, 0.3) .build(); coverImmutableBean(test); PointShifts test2 = PointShifts.builder(ShiftType.ABSOLUTE) .addShift(0, Tenor.TENOR_1M, 0.2) .addShift(0, Tenor.TENOR_3M, 0.3) .build(); coverBeanEquals(test, test2); }
public void test_pointShifts() { SabrParametersSwaptionVolatilities base = SabrParametersSwaptionVolatilities.of(NAME, CONV, DATE_TIME, PARAM); PointShiftsBuilder builder = PointShifts.builder(ShiftType.ABSOLUTE); for (int i = 0; i < base.getParameterCount(); ++i) { builder.addShift(0, base.getParameterMetadata(i).getIdentifier(), 0.1d * (i + 1d)); builder.addShift(1, base.getParameterMetadata(i).getIdentifier(), 10d * (i + 1d)); } PointShifts shifts = builder.build(); MarketDataBox<ParameterizedData> resBox = shifts.applyTo(MarketDataBox.ofSingleValue(base), REF_DATA); SabrParametersSwaptionVolatilities computed0 = (SabrParametersSwaptionVolatilities) resBox.getValue(0); SabrParametersSwaptionVolatilities computed1 = (SabrParametersSwaptionVolatilities) resBox.getValue(1); for (int i = 0; i < base.getParameterCount(); ++i) { assertEquals(computed0.getParameter(i), base.getParameter(i) + 0.1d * (i + 1d)); assertEquals(computed1.getParameter(i), base.getParameter(i) + 10d * (i + 1d)); } }
PointShifts shift = PointShifts.builder(ShiftType.RELATIVE) .addShift(1, TNR_1W, 0.1) // Tenor not in the data, should be ignored .addShift(1, TNR_1M, 0.2)
PointShifts shift = PointShifts.builder(ShiftType.ABSOLUTE) .addShift(1, TNR_1W, 0.1) // Tenor not in the data, should be ignored .addShift(1, TNR_1M, 0.2)