### Question:
HalfUpRounding implements Rounding, ImmutableBean, Serializable { public static HalfUpRounding ofFractionalDecimalPlaces(int decimalPlaces, int fraction) { return new HalfUpRounding(decimalPlaces, fraction); } @ImmutableConstructor private  HalfUpRounding(
      int decimalPlaces,
      int fraction); static HalfUpRounding ofDecimalPlaces(int decimalPlaces); static HalfUpRounding ofFractionalDecimalPlaces(int decimalPlaces, int fraction); @Override double round(double value); @Override BigDecimal round(BigDecimal value); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static HalfUpRounding.Meta meta(); @Override HalfUpRounding.Meta metaBean(); int getDecimalPlaces(); int getFraction();  }### Answer:
@Test public void test_ofFractionalDecimalPlaces_invalid() { assertThatIllegalArgumentException().isThrownBy(() -> HalfUpRounding.ofFractionalDecimalPlaces(-1, 0)); assertThatIllegalArgumentException().isThrownBy(() -> HalfUpRounding.ofFractionalDecimalPlaces(257, 0)); assertThatIllegalArgumentException().isThrownBy(() -> HalfUpRounding.ofFractionalDecimalPlaces(0, -1)); assertThatIllegalArgumentException().isThrownBy(() -> HalfUpRounding.ofFractionalDecimalPlaces(0, 257)); }