### Question:
FxOptionVolatilitiesNode implements ImmutableBean, Serializable { public static FxOptionVolatilitiesNode of( CurrencyPair currencyPair, DaysAdjustment spotDateOffset, BusinessDayAdjustment businessDayAdjustment, ValueType quoteValueType, QuoteId quoteId, Tenor tenor, Strike strike) { DaysAdjustment expiryDateOffset = expiryDateOffset(spotDateOffset); return new FxOptionVolatilitiesNode( currencyPair, quoteId.toString(), spotDateOffset, businessDayAdjustment, expiryDateOffset, quoteValueType, quoteId, tenor, strike); } private  FxOptionVolatilitiesNode(
      CurrencyPair currencyPair,
      String label,
      DaysAdjustment spotDateOffset,
      BusinessDayAdjustment businessDayAdjustment,
      DaysAdjustment expiryDateOffset,
      ValueType quoteValueType,
      QuoteId quoteId,
      Tenor tenor,
      Strike strike); static FxOptionVolatilitiesNode of(
      CurrencyPair currencyPair,
      DaysAdjustment spotDateOffset,
      BusinessDayAdjustment businessDayAdjustment,
      ValueType quoteValueType,
      QuoteId quoteId,
      Tenor tenor,
      Strike strike); FxVolatilitySurfaceYearFractionParameterMetadata metadata(
      ZonedDateTime valuationDateTime,
      DayCount dayCount,
      ReferenceData refData); double timeToExpiry(ZonedDateTime valuationDateTime, DayCount dayCount, ReferenceData refData); static FxOptionVolatilitiesNode.Meta meta(); static FxOptionVolatilitiesNode.Builder builder(); @Override FxOptionVolatilitiesNode.Meta metaBean(); CurrencyPair getCurrencyPair(); String getLabel(); DaysAdjustment getSpotDateOffset(); BusinessDayAdjustment getBusinessDayAdjustment(); DaysAdjustment getExpiryDateOffset(); ValueType getQuoteValueType(); QuoteId getQuoteId(); Tenor getTenor(); Strike getStrike(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { FxOptionVolatilitiesNode test1 = FxOptionVolatilitiesNode.of( EUR_GBP, SPOT_DATE_OFFSET, BDA, ValueType.BLACK_VOLATILITY, QUOTE_ID, Tenor.TENOR_3M, STRIKE); coverImmutableBean(test1); FxOptionVolatilitiesNode test2 = FxOptionVolatilitiesNode.of( CurrencyPair.of(GBP, USD), DaysAdjustment.NONE, BusinessDayAdjustment.NONE, ValueType.RISK_REVERSAL, QuoteId.of(StandardId.of("OG", "foo")), Tenor.TENOR_6M, DeltaStrike.of(0.1)); coverBeanEquals(test1, test2); }
@Test public void serialization() { FxOptionVolatilitiesNode test = FxOptionVolatilitiesNode.of( EUR_GBP, SPOT_DATE_OFFSET, BDA, ValueType.BLACK_VOLATILITY, QUOTE_ID, Tenor.TENOR_3M, STRIKE); assertSerialization(test); }