### Question:
ResolvedTermDeposit implements ResolvedProduct, ImmutableBean, Serializable { public static ResolvedTermDeposit.Builder builder() { return new ResolvedTermDeposit.Builder(); } @ImmutableConstructor private  ResolvedTermDeposit(
      Currency currency,
      double notional,
      LocalDate startDate,
      LocalDate endDate,
      double yearFraction,
      double rate); double getInterest(); static ResolvedTermDeposit.Meta meta(); static ResolvedTermDeposit.Builder builder(); @Override ResolvedTermDeposit.Meta metaBean(); Currency getCurrency(); double getNotional(); LocalDate getStartDate(); LocalDate getEndDate(); double getYearFraction(); double getRate(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_builder_wrongDates() { assertThatIllegalArgumentException() .isThrownBy(() -> ResolvedTermDeposit.builder() .currency(GBP) .notional(PRINCIPAL) .startDate(START_DATE) .endDate(LocalDate.of(2013, 1, 22)) .yearFraction(YEAR_FRACTION) .rate(RATE) .build()); }
@Test public void coverage() { ResolvedTermDeposit test1 = ResolvedTermDeposit.builder() .currency(GBP) .notional(PRINCIPAL) .startDate(START_DATE) .endDate(END_DATE) .yearFraction(YEAR_FRACTION) .rate(RATE) .build(); coverImmutableBean(test1); ResolvedTermDeposit test2 = ResolvedTermDeposit.builder() .currency(GBP) .notional(-50000000) .startDate(START_DATE) .endDate(END_DATE) .yearFraction(YEAR_FRACTION) .rate(0.0145) .build(); coverBeanEquals(test1, test2); }
@Test public void test_serialization() { ResolvedTermDeposit test = ResolvedTermDeposit.builder() .currency(GBP) .notional(PRINCIPAL) .startDate(START_DATE) .endDate(END_DATE) .yearFraction(YEAR_FRACTION) .rate(RATE) .build(); assertSerialization(test); }