### Question:
InflationMonthlyRateComputation implements RateComputation, ImmutableBean, Serializable { public static InflationMonthlyRateComputation of( PriceIndex index, YearMonth referenceStartMonth, YearMonth referenceEndMonth) { return new InflationMonthlyRateComputation( PriceIndexObservation.of(index, referenceStartMonth), PriceIndexObservation.of(index, referenceEndMonth)); } private  InflationMonthlyRateComputation(
      PriceIndexObservation startObservation,
      PriceIndexObservation endObservation); static InflationMonthlyRateComputation of(
      PriceIndex index,
      YearMonth referenceStartMonth,
      YearMonth referenceEndMonth); PriceIndex getIndex(); @Override void collectIndices(ImmutableSet.Builder<Index> builder); static InflationMonthlyRateComputation.Meta meta(); @Override InflationMonthlyRateComputation.Meta metaBean(); PriceIndexObservation getStartObservation(); PriceIndexObservation getEndObservation(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_wrongMonthOrder() { assertThatIllegalArgumentException() .isThrownBy(() -> InflationMonthlyRateComputation.of(GB_HICP, END_MONTH, START_MONTH)); assertThatIllegalArgumentException() .isThrownBy(() -> InflationMonthlyRateComputation.of(GB_HICP, START_MONTH, START_MONTH)); }
@Test public void coverage() { InflationMonthlyRateComputation test1 = InflationMonthlyRateComputation.of(GB_HICP, START_MONTH, END_MONTH); coverImmutableBean(test1); InflationMonthlyRateComputation test2 = InflationMonthlyRateComputation.of(CH_CPI, YearMonth.of(2014, 4), YearMonth.of(2015, 4)); coverBeanEquals(test1, test2); }
@Test public void test_serialization() { InflationMonthlyRateComputation test = InflationMonthlyRateComputation.of(GB_HICP, START_MONTH, END_MONTH); assertSerialization(test); }