### Question:
KnownAmountBondPaymentPeriod implements BondPaymentPeriod, ImmutableBean, Serializable { public static KnownAmountBondPaymentPeriod.Builder builder() { return new KnownAmountBondPaymentPeriod.Builder(); } private  KnownAmountBondPaymentPeriod(
      Payment payment,
      LocalDate startDate,
      LocalDate endDate,
      LocalDate unadjustedStartDate,
      LocalDate unadjustedEndDate); static KnownAmountBondPaymentPeriod of(Payment payment, SchedulePeriod period); @Override LocalDate getPaymentDate(); @Override Currency getCurrency(); @Override KnownAmountBondPaymentPeriod adjustPaymentDate(TemporalAdjuster adjuster); @Override void collectIndices(ImmutableSet.Builder<Index> builder); static KnownAmountBondPaymentPeriod.Meta meta(); static KnownAmountBondPaymentPeriod.Builder builder(); @Override KnownAmountBondPaymentPeriod.Meta metaBean(); Payment getPayment(); @Override LocalDate getStartDate(); @Override LocalDate getEndDate(); LocalDate getUnadjustedStartDate(); LocalDate getUnadjustedEndDate(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_builder_invalid() { assertThatIllegalArgumentException() .isThrownBy(() -> KnownAmountBondPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .endDate(DATE_2014_10_01) .build()); assertThatIllegalArgumentException() .isThrownBy(() -> KnownAmountBondPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_10_01) .build()); assertThatIllegalArgumentException() .isThrownBy(() -> KnownAmountBondPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_10_01) .endDate(DATE_2014_10_01) .build()); }
@Test public void coverage() { KnownAmountBondPaymentPeriod test = KnownAmountBondPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .unadjustedStartDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .unadjustedEndDate(DATE_2014_09_30) .build(); coverImmutableBean(test); KnownAmountBondPaymentPeriod test2 = KnownAmountBondPaymentPeriod.builder() .payment(PAYMENT_2014_10_03.negated()) .startDate(DATE_2014_06_30) .endDate(DATE_2014_09_30) .build(); coverBeanEquals(test, test2); }
@Test public void test_serialization() { KnownAmountBondPaymentPeriod test = KnownAmountBondPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .unadjustedStartDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .unadjustedEndDate(DATE_2014_09_30) .build(); assertSerialization(test); }