@Test
public void presentValueCurveSensitivityFromFuturesPrice() {
final MultipleCurrencyMulticurveSensitivity pvcsCallComputed = METHOD_BLACK_TRA.presentValueCurveSensitivity(BOND_FUTURE_OPTION_TRA_CALL, BLACK_PRICE_MULTICURVES).cleaned();
final MulticurveSensitivity pcsCall = METHOD_BLACK_SEC.priceCurveSensitivity(BOND_FUTURE_OPTION_SEC_CALL, BLACK_PRICE_MULTICURVES);
final MultipleCurrencyMulticurveSensitivity pvcsCallPremium = METHOD_PAY_FIXED.presentValueCurveSensitivity(BOND_FUTURE_OPTION_TRA_CALL.getPremium(), ISSUER_MULTICURVES.getMulticurveProvider());
final MultipleCurrencyMulticurveSensitivity pvcsCallExpected = pvcsCallPremium.plus(MultipleCurrencyMulticurveSensitivity.of(USD, pcsCall.multipliedBy(NOTIONAL * QUANTITY))).cleaned();
AssertSensivityObjects.assertEquals("BondFutureOptionPremiumTransactionBlackSurfaceMethod: present value curve sensitivity", pvcsCallExpected, pvcsCallComputed, TOLERANCE_PV_SENSI);
final MultipleCurrencyMulticurveSensitivity pvcsPutComputed = METHOD_BLACK_TRA.presentValueCurveSensitivity(BOND_FUTURE_OPTION_TRA_PUT, BLACK_PRICE_MULTICURVES).cleaned();
final MultipleCurrencyMulticurveSensitivity pvcsPutPremium = METHOD_PAY_FIXED.presentValueCurveSensitivity(BOND_FUTURE_OPTION_TRA_PUT.getPremium(), ISSUER_MULTICURVES.getMulticurveProvider());
final MultipleCurrencyMulticurveSensitivity pvcsFutQu = METHOD_FUTURES.presentValueCurveSensitivity(BOND_FUT, ISSUER_MULTICURVES).multipliedBy(QUANTITY).cleaned(TOLERANCE_PV_SENSI);
final MultipleCurrencyMulticurveSensitivity pvcsCallPut = pvcsCallComputed.plus(pvcsCallPremium.multipliedBy(-1)).plus(pvcsPutPremium.plus(pvcsPutComputed.multipliedBy(-1)))