final ZonedDateTime referenceDate = DateUtils.getUTCDate(2012, 8, 17);
final SwapFixedCoupon<Coupon> swapToday = SWAP_FIXED_IBOR_DEFINITION.toDerivative(referenceDate, FIXING_TS_3_6);
final ZonedDateTime forwardHorizonDate = referenceDate.minusDays(1);
final double forwardHorizon = TimeCalculator.getTimeBetween(referenceDate, forwardHorizonDate); // !!! Negative horizon
final TodayPaymentCalculator forwardCalculator = TodayPaymentCalculator.getInstance(forwardHorizon);
final MultipleCurrencyAmount paymentIfLookingForward = swapToday.accept(forwardCalculator);
final ZonedDateTime backwardHorizonDate = referenceDate.minusDays(1);
final double backwardHorizon = TimeCalculator.getTimeBetween(referenceDate, backwardHorizonDate); // !!! Negative horizon
final TodayPaymentCalculator backwardCalculator = TodayPaymentCalculator.getInstance(backwardHorizon);
final MultipleCurrencyAmount paymentIfLookingBackward = swapToday.accept(backwardCalculator);
assertEquals("TodayPaymentCalculator: fixed-coupon swap", paymentIfLookingForward.getAmount(USD6MLIBOR3M.getCurrency()), paymentIfLookingBackward.getAmount(USD6MLIBOR3M.getCurrency()),
TOLERANCE_PV);
}