### Question:
GenericVolatilitySurfacePeriodParameterMetadata implements ParameterMetadata, ImmutableBean, Serializable { public static GenericVolatilitySurfacePeriodParameterMetadata of( Period period, Strike strike) { String label = Pair.of(period, strike.getLabel()).toString(); return new GenericVolatilitySurfacePeriodParameterMetadata(period, strike, label); } private  GenericVolatilitySurfacePeriodParameterMetadata(
      Period period,
      Strike strike,
      String label); static GenericVolatilitySurfacePeriodParameterMetadata of(
      Period period,
      Strike strike); static GenericVolatilitySurfacePeriodParameterMetadata of(
      Period period,
      Strike strike,
      String label); @Override Pair<Period, Strike> getIdentifier(); static GenericVolatilitySurfacePeriodParameterMetadata.Meta meta(); @Override GenericVolatilitySurfacePeriodParameterMetadata.Meta metaBean(); Period getPeriod(); Strike getStrike(); @Override String getLabel(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { GenericVolatilitySurfacePeriodParameterMetadata test1 = GenericVolatilitySurfacePeriodParameterMetadata.of(TIME_TO_EXPIRY, STRIKE1); coverImmutableBean(test1); GenericVolatilitySurfacePeriodParameterMetadata test2 = GenericVolatilitySurfacePeriodParameterMetadata.of(Period.ofMonths(3), MoneynessStrike.of(1.1d)); coverBeanEquals(test1, test2); }
@Test public void test_serialization() { GenericVolatilitySurfacePeriodParameterMetadata test = GenericVolatilitySurfacePeriodParameterMetadata.of(TIME_TO_EXPIRY, STRIKE1); assertSerialization(test); }