### Question:
DiscountingBulletPaymentTradePricer { public CurrencyAmount presentValue(ResolvedBulletPaymentTrade trade, BaseProvider provider) { return paymentPricer.presentValue(trade.getProduct().getPayment(), provider); } DiscountingBulletPaymentTradePricer(
      DiscountingPaymentPricer paymentPricer); DiscountingPaymentPricer getPaymentPricer(); CurrencyAmount presentValue(ResolvedBulletPaymentTrade trade, BaseProvider provider); ExplainMap explainPresentValue(ResolvedBulletPaymentTrade trade, BaseProvider provider); PointSensitivities presentValueSensitivity(ResolvedBulletPaymentTrade trade, BaseProvider provider); CashFlows cashFlows(ResolvedBulletPaymentTrade trade, BaseProvider provider); CurrencyAmount currencyExposure(ResolvedBulletPaymentTrade trade, BaseProvider provider); CurrencyAmount currentCash(ResolvedBulletPaymentTrade trade, BaseProvider provider); static final DiscountingBulletPaymentTradePricer DEFAULT; }### Answer:
@Test public void test_presentValue_provider() { CurrencyAmount computed = PRICER.presentValue(TRADE, PROVIDER); double expected = NOTIONAL_USD * DF; assertThat(computed.getAmount()).isCloseTo(expected, offset(NOTIONAL_USD * TOL)); }
@Test public void test_presentValue_provider_ended() { CurrencyAmount computed = PRICER.presentValue(TRADE_PAST, PROVIDER); assertThat(computed).isEqualTo(CurrencyAmount.zero(USD)); }