public virtual void test_presentValue_on_trade_date() { IborIndexRates mockIbor = mock(typeof(IborIndexRates)); SimpleRatesProvider prov = new SimpleRatesProvider(); prov.IborRates = mockIbor; prov.ValuationDate = FUTURE_TRADE.TradedPrice.get().TradeDate; when(mockIbor.rate(FUTURE.IborRate.Observation)).thenReturn(RATE); double lastClosingPrice = 1.025; DiscountingIborFutureTradePricer pricerFn = DiscountingIborFutureTradePricer.DEFAULT; double expected = ((1.0 - RATE) - FUTURE_TRADE.TradedPrice.get().Price) * FUTURE.AccrualFactor * FUTURE.Notional * FUTURE_TRADE.Quantity; CurrencyAmount computed = pricerFn.presentValue(FUTURE_TRADE, prov, lastClosingPrice); assertEquals(computed.Amount, expected, TOLERANCE_PV); assertEquals(computed.Currency, FUTURE.Currency); }