### Question:
CurrencyParameterSensitivity implements FxConvertible<CurrencyParameterSensitivity>, ImmutableBean, Serializable { public static CurrencyParameterSensitivity of( MarketDataName<?> marketDataName, List<? extends ParameterMetadata> parameterMetadata, Currency currency, DoubleArray sensitivity) { return new CurrencyParameterSensitivity(marketDataName, parameterMetadata, currency, sensitivity, null); } private  CurrencyParameterSensitivity(
      MarketDataName<?> marketDataName,
      List<? extends ParameterMetadata> parameterMetadata,
      Currency currency,
      DoubleArray sensitivity,
      List<ParameterSize> parameterSplit); static CurrencyParameterSensitivity of(
      MarketDataName<?> marketDataName,
      List<? extends ParameterMetadata> parameterMetadata,
      Currency currency,
      DoubleArray sensitivity); static CurrencyParameterSensitivity of(
      MarketDataName<?> marketDataName,
      Currency currency,
      DoubleArray sensitivity); static CurrencyParameterSensitivity of(
      MarketDataName<?> marketDataName,
      List<? extends ParameterMetadata> parameterMetadata,
      Currency currency,
      DoubleArray sensitivity,
      List<ParameterSize> parameterSplit); static CurrencyParameterSensitivity of(
      MarketDataName<?> marketDataName,
      Currency currency,
      Map<? extends ParameterMetadata, Double> sensitivityMetadataMap); static CurrencyParameterSensitivity combine(
      MarketDataName<?> marketDataName,
      CurrencyParameterSensitivity... sensitivities); int getParameterCount(); ParameterMetadata getParameterMetadata(int parameterIndex); int compareKey(CurrencyParameterSensitivity other); @Override CurrencyParameterSensitivity convertedTo(Currency resultCurrency, FxRateProvider rateProvider); CurrencyParameterSensitivity multipliedBy(double factor); CurrencyParameterSensitivity mapSensitivity(DoubleUnaryOperator operator); CurrencyParameterSensitivity withSensitivity(DoubleArray sensitivity); CurrencyParameterSensitivity plus(DoubleArray otherSensitivty); CurrencyParameterSensitivity plus(CurrencyParameterSensitivity otherSensitivty); ImmutableList<CurrencyParameterSensitivity> split(); CurrencyAmount total(); MapStream<ParameterMetadata, Double> sensitivities(); ImmutableMap<T, Double> toSensitivityMap(Class<T> identifierType); UnitParameterSensitivity toUnitParameterSensitivity(); static CurrencyParameterSensitivity.Meta meta(); static CurrencyParameterSensitivity.Builder builder(); @Override CurrencyParameterSensitivity.Meta metaBean(); MarketDataName<?> getMarketDataName(); ImmutableList<ParameterMetadata> getParameterMetadata(); Currency getCurrency(); DoubleArray getSensitivity(); Optional<List<ParameterSize>> getParameterSplit(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_of_metadata_badMetadata() { assertThatIllegalArgumentException() .isThrownBy(() -> CurrencyParameterSensitivity.of(NAME1, METADATA_BAD, USD, VECTOR_USD1)); }
@Test public void test_of_metadataParamSplit_badSplit() { assertThatIllegalArgumentException() .isThrownBy(() -> CurrencyParameterSensitivity.of(NAME_COMBINED, METADATA_USD1, USD, VECTOR_USD1, PARAM_SPLIT)); }
@Test public void coverage() { CurrencyParameterSensitivity test = CurrencyParameterSensitivity.of(NAME1, METADATA_USD1, USD, VECTOR_USD1); coverImmutableBean(test); CurrencyParameterSensitivity test2 = CurrencyParameterSensitivity.of(NAME2, METADATA_EUR1, EUR, VECTOR_EUR1); coverBeanEquals(test, test2); }