### Question:
FxIndexSensitivity implements PointSensitivity, PointSensitivityBuilder, ImmutableBean, Serializable { public static FxIndexSensitivity of(FxIndexObservation observation, Currency referenceCurrency, double sensitivity) { CurrencyPair obsPair = observation.getCurrencyPair(); boolean inverse = referenceCurrency.equals(obsPair.getCounter()); CurrencyPair queriedPair = inverse ? obsPair.inverse() : obsPair; Currency sensiCurrency = queriedPair.getCounter(); return new FxIndexSensitivity(observation, referenceCurrency, sensiCurrency, sensitivity); } private  FxIndexSensitivity(
      FxIndexObservation observation,
      Currency referenceCurrency,
      Currency currency,
      double sensitivity); static FxIndexSensitivity of(FxIndexObservation observation, Currency referenceCurrency, double sensitivity); static FxIndexSensitivity of(
      FxIndexObservation observation,
      Currency referenceCurrency,
      Currency sensitivityCurrency,
      double sensitivity); FxForwardSensitivity toFxForwardSensitivity(); FxIndex getIndex(); @Override FxIndexSensitivity withCurrency(Currency currency); @Override FxIndexSensitivity withSensitivity(double sensitivity); @Override int compareKey(PointSensitivity other); @Override FxIndexSensitivity convertedTo(Currency resultCurrency, FxRateProvider rateProvider); @Override FxIndexSensitivity multipliedBy(double factor); @Override FxIndexSensitivity mapSensitivity(DoubleUnaryOperator operator); @Override FxIndexSensitivity normalize(); @Override MutablePointSensitivities buildInto(MutablePointSensitivities combination); @Override FxIndexSensitivity cloned(); static FxIndexSensitivity.Meta meta(); @Override FxIndexSensitivity.Meta metaBean(); FxIndexObservation getObservation(); Currency getReferenceCurrency(); @Override Currency getCurrency(); @Override double getSensitivity(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_combinedWith() { FxIndexSensitivity base1 = FxIndexSensitivity.of(GBP_USD_WM_OBS, USD, GBP, SENSITIVITY_VALUE); FxIndexSensitivity base2 = FxIndexSensitivity.of(GBP_USD_WM_OBS, USD, GBP, 4.25d); MutablePointSensitivities expected = new MutablePointSensitivities(); expected.add(base1).add(base2); PointSensitivityBuilder test = base1.combinedWith(base2); assertThat(test).isEqualTo(expected); }
@Test public void test_combinedWith_mutable() { FxIndexSensitivity base = FxIndexSensitivity.of(GBP_USD_WM_OBS, USD, GBP, SENSITIVITY_VALUE); MutablePointSensitivities expected = new MutablePointSensitivities(); expected.add(base); PointSensitivityBuilder test = base.combinedWith(new MutablePointSensitivities()); assertThat(test).isEqualTo(expected); }
@Test public void test_build() { FxIndexSensitivity base = FxIndexSensitivity.of(GBP_USD_WM_OBS, USD, GBP, SENSITIVITY_VALUE); PointSensitivities test = base.build(); assertThat(test.getSensitivities()).containsExactly(base); }
@Test public void coverage() { FxIndexSensitivity test1 = FxIndexSensitivity.of(GBP_USD_WM_OBS, USD, GBP, SENSITIVITY_VALUE); coverImmutableBean(test1); FxIndexSensitivity test2 = FxIndexSensitivity.of(EUR_GBP_ECB_OBS, GBP, 4.25d); coverBeanEquals(test1, test2); }
@Test public void test_serialization() { FxIndexSensitivity test = FxIndexSensitivity.of(GBP_USD_WM_OBS, USD, GBP, SENSITIVITY_VALUE); assertSerialization(test); }