### Question:
BlackFxOptionSmileVolatilities implements BlackFxOptionVolatilities, ImmutableBean, Serializable { public static BlackFxOptionSmileVolatilities of( FxOptionVolatilitiesName name, CurrencyPair currencyPair, ZonedDateTime valuationTime, SmileDeltaTermStructure smile) { return new BlackFxOptionSmileVolatilities(name, currencyPair, valuationTime, smile); } private  BlackFxOptionSmileVolatilities(
      FxOptionVolatilitiesName name,
      CurrencyPair currencyPair,
      ZonedDateTime valuationDateTime,
      SmileDeltaTermStructure smile); static BlackFxOptionSmileVolatilities of(
      FxOptionVolatilitiesName name,
      CurrencyPair currencyPair,
      ZonedDateTime valuationTime,
      SmileDeltaTermStructure smile); @Override Optional<T> findData(MarketDataName<T> name); @Override int getParameterCount(); @Override double getParameter(int parameterIndex); @Override ParameterMetadata getParameterMetadata(int parameterIndex); @Override BlackFxOptionSmileVolatilities withParameter(int parameterIndex, double newValue); @Override BlackFxOptionSmileVolatilities withPerturbation(ParameterPerturbation perturbation); @Override double volatility(CurrencyPair currencyPair, double expiryTime, double strike, double forward); @Override CurrencyParameterSensitivities parameterSensitivity(PointSensitivities pointSensitivities); @Override double price(double expiry, PutCall putCall, double strike, double forward, double volatility); @Override double relativeTime(ZonedDateTime dateTime); static BlackFxOptionSmileVolatilities.Meta meta(); static BlackFxOptionSmileVolatilities.Builder builder(); @Override BlackFxOptionSmileVolatilities.Meta metaBean(); @Override FxOptionVolatilitiesName getName(); @Override CurrencyPair getCurrencyPair(); @Override ZonedDateTime getValuationDateTime(); SmileDeltaTermStructure getSmile(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { BlackFxOptionSmileVolatilities test1 = BlackFxOptionSmileVolatilities.of(NAME, CURRENCY_PAIR, VAL_DATE_TIME, SMILE_TERM); coverImmutableBean(test1); BlackFxOptionSmileVolatilities test2 = BlackFxOptionSmileVolatilities.of( FxOptionVolatilitiesName.of("Boo"), CURRENCY_PAIR.inverse(), ZonedDateTime.of(2015, 12, 21, 11, 15, 0, 0, ZoneId.of("Z")), SMILE_TERM); coverBeanEquals(test1, test2); }