### Question:
DiscountingCmsProductPricer { public PointSensitivityBuilder presentValueSensitivity( ResolvedCms cms, RatesProvider ratesProvider) { PointSensitivityBuilder pvSensiCmsLeg = cmsLegPricer.presentValueSensitivity(cms.getCmsLeg(), ratesProvider); if (!cms.getPayLeg().isPresent()) { return pvSensiCmsLeg; } PointSensitivityBuilder pvSensiPayLeg = swapPricer.getLegPricer().presentValueSensitivity(cms.getPayLeg().get(), ratesProvider); return pvSensiCmsLeg.combinedWith(pvSensiPayLeg); } DiscountingCmsProductPricer(DiscountingSwapProductPricer swapPricer); MultiCurrencyAmount presentValue(
      ResolvedCms cms,
      RatesProvider ratesProvider); PointSensitivityBuilder presentValueSensitivity(
      ResolvedCms cms,
      RatesProvider ratesProvider); MultiCurrencyAmount currencyExposure(
      ResolvedCms cms,
      RatesProvider ratesProvider); MultiCurrencyAmount currentCash(
      ResolvedCms cms,
      RatesProvider ratesProvider); static final DiscountingCmsProductPricer DEFAULT; }### Answer:
@Test public void test_presentValueSensitivity() { PointSensitivityBuilder pt1 = PRODUCT_PRICER.presentValueSensitivity(CMS_ONE_LEG, RATES_PROVIDER); PointSensitivityBuilder pt2 = PRODUCT_PRICER.presentValueSensitivity(CMS_TWO_LEGS, RATES_PROVIDER); PointSensitivityBuilder ptCms = CMS_LEG_PRICER.presentValueSensitivity(CMS_LEG, RATES_PROVIDER); PointSensitivityBuilder ptPay = SWAP_LEG_PRICER.presentValueSensitivity(PAY_LEG, RATES_PROVIDER); assertThat(pt1).isEqualTo(ptCms); assertThat(pt2).isEqualTo(ptCms.combinedWith(ptPay)); }