//-------------------------------------------------------------------------
        public virtual void test_presentValue()
        {
            ScenarioMarketData md                   = IborFutureTradeCalculationFunctionTest.marketData();
            RatesProvider      provider             = RATES_LOOKUP.marketDataView(md.scenario(0)).ratesProvider();
            DiscountingIborFutureTradePricer pricer = DiscountingIborFutureTradePricer.DEFAULT;
            CurrencyAmount expectedPv               = pricer.presentValue(RTRADE, provider, SETTLEMENT_PRICE);
            double         expectedParSpread        = pricer.parSpread(RTRADE, provider, SETTLEMENT_PRICE);

            assertEquals(IborFutureTradeCalculations.DEFAULT.presentValue(RTRADE, RATES_LOOKUP, md), CurrencyScenarioArray.of(ImmutableList.of(expectedPv)));
            assertEquals(IborFutureTradeCalculations.DEFAULT.parSpread(RTRADE, RATES_LOOKUP, md), DoubleScenarioArray.of(ImmutableList.of(expectedParSpread)));
        }
        // par spread for one scenario
        internal double parSpread(ResolvedIborFutureTrade trade, RatesProvider ratesProvider)
        {
            double settlementPrice = this.settlementPrice(trade, ratesProvider);

            return(tradePricer.parSpread(trade, ratesProvider, settlementPrice));
        }