### Question:
NormalIborFutureOptionExpirySimpleMoneynessVolatilities implements NormalIborFutureOptionVolatilities, ImmutableBean, Serializable { public static NormalIborFutureOptionExpirySimpleMoneynessVolatilities of( IborIndex index, ZonedDateTime valuationDateTime, Surface surface) { return new NormalIborFutureOptionExpirySimpleMoneynessVolatilities(index, valuationDateTime, surface); } @ImmutableConstructor private  NormalIborFutureOptionExpirySimpleMoneynessVolatilities(
      IborIndex index,
      ZonedDateTime valuationDateTime,
      Surface surface); static NormalIborFutureOptionExpirySimpleMoneynessVolatilities of(
      IborIndex index,
      ZonedDateTime valuationDateTime,
      Surface surface); @Override IborFutureOptionVolatilitiesName getName(); @Override Optional<T> findData(MarketDataName<T> name); @Override int getParameterCount(); @Override double getParameter(int parameterIndex); @Override ParameterMetadata getParameterMetadata(int parameterIndex); @Override OptionalInt findParameterIndex(ParameterMetadata metadata); @Override NormalIborFutureOptionExpirySimpleMoneynessVolatilities withParameter(int parameterIndex, double newValue); @Override NormalIborFutureOptionExpirySimpleMoneynessVolatilities withPerturbation(ParameterPerturbation perturbation); @Override double volatility(double expiry, LocalDate fixingDate, double strikePrice, double futurePrice); @Override CurrencyParameterSensitivities parameterSensitivity(PointSensitivities pointSensitivities); @Override double relativeTime(ZonedDateTime zonedDateTime); static NormalIborFutureOptionExpirySimpleMoneynessVolatilities.Meta meta(); static NormalIborFutureOptionExpirySimpleMoneynessVolatilities.Builder builder(); @Override NormalIborFutureOptionExpirySimpleMoneynessVolatilities.Meta metaBean(); @Override IborIndex getIndex(); @Override ZonedDateTime getValuationDateTime(); Surface getSurface(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { NormalIborFutureOptionExpirySimpleMoneynessVolatilities test = NormalIborFutureOptionExpirySimpleMoneynessVolatilities.of(EUR_EURIBOR_3M, VAL_DATE_TIME, PARAMETERS_RATE); coverImmutableBean(test); NormalIborFutureOptionExpirySimpleMoneynessVolatilities test2 = NormalIborFutureOptionExpirySimpleMoneynessVolatilities.of( EUR_EURIBOR_6M, VAL_DATE_TIME.plusDays(1), PARAMETERS_PRICE); coverBeanEquals(test, test2); }