/** * Explains the present value of the bullet payment product. * <p> * This returns explanatory information about the calculation. * * @param trade the trade * @param provider the provider * @return the explanatory information */ public ExplainMap explainPresentValue(ResolvedBulletPaymentTrade trade, BaseProvider provider) { return paymentPricer.explainPresentValue(trade.getProduct().getPayment(), provider); }
public void test_explainPresentValue_provider_ended() { ExplainMap explain = PRICER.explainPresentValue(PAYMENT_PAST, PROVIDER); Currency currency = PAYMENT_PAST.getCurrency(); assertEquals(explain.get(ExplainKey.ENTRY_TYPE).get(), "Payment"); assertEquals(explain.get(ExplainKey.PAYMENT_DATE).get(), PAYMENT_PAST.getDate()); assertEquals(explain.get(ExplainKey.PAYMENT_CURRENCY).get(), currency); assertEquals(explain.get(ExplainKey.FORECAST_VALUE).get().getCurrency(), currency); assertEquals(explain.get(ExplainKey.FORECAST_VALUE).get().getAmount(), 0, TOL); assertEquals(explain.get(ExplainKey.PRESENT_VALUE).get().getCurrency(), currency); assertEquals(explain.get(ExplainKey.PRESENT_VALUE).get().getAmount(), 0, TOL); }
public void test_explainPresentValue_provider() { CurrencyAmount fvExpected = PRICER.forecastValue(PAYMENT, PROVIDER); CurrencyAmount pvExpected = PRICER.presentValue(PAYMENT, PROVIDER); ExplainMap explain = PRICER.explainPresentValue(PAYMENT, PROVIDER); Currency currency = PAYMENT.getCurrency(); assertEquals(explain.get(ExplainKey.ENTRY_TYPE).get(), "Payment"); assertEquals(explain.get(ExplainKey.PAYMENT_DATE).get(), PAYMENT.getDate()); assertEquals(explain.get(ExplainKey.PAYMENT_CURRENCY).get(), currency); assertEquals(explain.get(ExplainKey.DISCOUNT_FACTOR).get(), DF, TOL); assertEquals(explain.get(ExplainKey.FORECAST_VALUE).get().getCurrency(), currency); assertEquals(explain.get(ExplainKey.FORECAST_VALUE).get().getAmount(), fvExpected.getAmount(), TOL); assertEquals(explain.get(ExplainKey.PRESENT_VALUE).get().getCurrency(), currency); assertEquals(explain.get(ExplainKey.PRESENT_VALUE).get().getAmount(), pvExpected.getAmount(), TOL); }