### Question:
CrossGammaParameterSensitivity implements FxConvertible<CrossGammaParameterSensitivity>, ImmutableBean, Serializable { public static CrossGammaParameterSensitivity of( MarketDataName<?> marketDataName, List<? extends ParameterMetadata> parameterMetadata, Currency currency, DoubleMatrix sensitivity) { return of(marketDataName, parameterMetadata, marketDataName, parameterMetadata, currency, sensitivity); } private  CrossGammaParameterSensitivity(
      MarketDataName<?> marketDataName,
      List<? extends ParameterMetadata> parameterMetadata,
      List<Pair<MarketDataName<?>, List<? extends ParameterMetadata>>> order,
      Currency currency,
      DoubleMatrix sensitivity); static CrossGammaParameterSensitivity of(
      MarketDataName<?> marketDataName,
      List<? extends ParameterMetadata> parameterMetadata,
      Currency currency,
      DoubleMatrix sensitivity); static CrossGammaParameterSensitivity of(
      MarketDataName<?> marketDataName,
      List<? extends ParameterMetadata> parameterMetadata,
      MarketDataName<?> marketDataNameOther,
      List<? extends ParameterMetadata> parameterMetadataOther,
      Currency currency,
      DoubleMatrix sensitivity); static CrossGammaParameterSensitivity of(
      MarketDataName<?> marketDataName,
      List<? extends ParameterMetadata> parameterMetadata,
      List<Pair<MarketDataName<?>, List<? extends ParameterMetadata>>> order,
      Currency currency,
      DoubleMatrix sensitivity); int getParameterCount(); ParameterMetadata getParameterMetadata(int parameterIndex); int compareKey(CrossGammaParameterSensitivity other); @Override CrossGammaParameterSensitivity convertedTo(Currency resultCurrency, FxRateProvider rateProvider); CrossGammaParameterSensitivity multipliedBy(double factor); CrossGammaParameterSensitivity mapSensitivity(DoubleUnaryOperator operator); CrossGammaParameterSensitivity withSensitivity(DoubleMatrix sensitivity); CurrencyAmount total(); CurrencyParameterSensitivity diagonal(); CrossGammaParameterSensitivity getSensitivity(MarketDataName<?> name); static CrossGammaParameterSensitivity.Meta meta(); @Override CrossGammaParameterSensitivity.Meta metaBean(); MarketDataName<?> getMarketDataName(); ImmutableList<ParameterMetadata> getParameterMetadata(); ImmutableList<Pair<MarketDataName<?>, List<? extends ParameterMetadata>>> getOrder(); Currency getCurrency(); DoubleMatrix getSensitivity(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_of_metadata_badMetadata() { assertThatIllegalArgumentException() .isThrownBy(() -> CrossGammaParameterSensitivity.of(NAME1, METADATA_BAD, USD, MATRIX_USD1)); }
@Test public void coverage() { CrossGammaParameterSensitivity test = CrossGammaParameterSensitivity.of(NAME1, METADATA_USD1, USD, MATRIX_USD1); coverImmutableBean(test); CrossGammaParameterSensitivity test2 = CrossGammaParameterSensitivity.of(NAME2, METADATA_EUR1, EUR, MATRIX_EUR1); coverBeanEquals(test, test2); }