final ZonedDateTime START_DATE = ScheduleCalculator.getAdjustedDate(SPOT_DATE, START_CMSCAP, USD_GENERATOR.getIborIndex().getBusinessDayConvention(), CALENDAR, USD_GENERATOR.getIborIndex()
.isEndOfMonth());
final ZonedDateTime END_DATE = START_DATE.plus(LENGTH_CMSCAP);
final Period capPeriod = Period.ofMonths(6);
final DayCount capDayCount = DayCountFactory.INSTANCE.getDayCount("ACT/360");
final AnnuityCapFloorCMSDefinition capDefinition = AnnuityCapFloorCMSDefinition.from(START_DATE, END_DATE, NOTIONAL, USD_SWAP_10Y, capPeriod, capDayCount, false, STRIKE, IS_CAP, CALENDAR);
final Annuity<? extends Payment> cap = capDefinition.toDerivative(REFERENCE_DATE, CURVES_NAME);
InterestRateCurveSensitivity pvcsCalculator = new InterestRateCurveSensitivity(cap.accept(PVCSC_SABR, SABR_BUNDLE));
pvcsCalculator = pvcsCalculator.cleaned();
InterestRateCurveSensitivity pvcsExpected = new InterestRateCurveSensitivity();
for (int loopcpn = 0; loopcpn < cap.getNumberOfPayments(); loopcpn++) {
pvcsExpected = pvcsExpected.plus(new InterestRateCurveSensitivity(cap.getNthPayment(loopcpn).accept(PVCSC_SABR, SABR_BUNDLE)));