CouponFixedFxReset extends Coupon { public double paymentAmount(double fxRate) { return getNotional() * fxRate * _rate * getPaymentYearFraction(); } CouponFixedFxReset(Currency currency, double paymentTime, double paymentAccrualFactor, double notional, 
      double rate, Currency referenceCurrency, double fxFixingTime, double fxDeliveryTime); double paymentAmount(double fxRate); double getRate(); Currency getReferenceCurrency(); double getFxFixingTime(); double getFxDeliveryTime(); @Override T accept(InstrumentDerivativeVisitor<S, T> visitor, S data); @Override T accept(InstrumentDerivativeVisitor<?, T> visitor); @Override int hashCode(); @Override boolean equals(Object obj); @Override Coupon withNotional(double notional);  }
@Test public void paymentAmount() { double amountExpected = NOTIONAL * FX_FIXING_RATE * RATE * ACCRUAL_FACTOR; double amountComputed = CPN.paymentAmount(FX_FIXING_RATE); assertEquals("CouponFixedFxResetDefinition: paymentAmount", amountExpected, amountComputed, TOLERANCE_AMOUNT); }