### Question:
GenericVolatilitySurfacePeriodParameterMetadata implements ParameterMetadata, ImmutableBean, Serializable { public static GenericVolatilitySurfacePeriodParameterMetadata.Meta meta() { return GenericVolatilitySurfacePeriodParameterMetadata.Meta.INSTANCE; } 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 test_builder_incomplete() { BeanBuilder<? extends GenericVolatilitySurfacePeriodParameterMetadata> builder1 = GenericVolatilitySurfacePeriodParameterMetadata.meta().builder(); assertThatIllegalArgumentException() .isThrownBy(() -> builder1.build()); BeanBuilder<? extends GenericVolatilitySurfacePeriodParameterMetadata> builder2 = GenericVolatilitySurfacePeriodParameterMetadata.meta().builder(); builder2.set(GenericVolatilitySurfacePeriodParameterMetadata.meta().period(), TIME_TO_EXPIRY); assertThatIllegalArgumentException() .isThrownBy(() -> builder2.build()); }