@Test public void priceBeforeFixing() { double interest = 0.0; final YieldAndDiscountCurve oisCurve = CURVES.getCurve(CURVE_NAMES[0]); final double[] ratePeriod = new double[FUTURE_SECURITY_DEFINITION.getFixingPeriodAccrualFactor().length]; for (int loopfix = 0; loopfix < FUTURE_SECURITY_DEFINITION.getFixingPeriodAccrualFactor().length; loopfix++) { ratePeriod[loopfix] = (oisCurve.getDiscountFactor(FUTURE_SECURITY.getFixingPeriodTime()[loopfix]) / oisCurve.getDiscountFactor( FUTURE_SECURITY.getFixingPeriodTime()[loopfix + 1]) - 1.0) / FUTURE_SECURITY_DEFINITION.getFixingPeriodAccrualFactor()[loopfix]; interest += (oisCurve.getDiscountFactor(FUTURE_SECURITY.getFixingPeriodTime()[loopfix]) / oisCurve.getDiscountFactor(FUTURE_SECURITY.getFixingPeriodTime()[loopfix + 1]) - 1.0); } final double rate = interest / FUTURE_SECURITY_DEFINITION.getFixingTotalAccrualFactor(); final double priceExpected = 1.0 - rate; final double priceComputed = METHOD_SECURITY.price(FUTURE_SECURITY, CURVES); assertEquals( "Federal Funds Future Security: price", priceExpected, priceComputed, TOLERANCE_PRICE); }