### Question:
ImmutableHolidayCalendar implements HolidayCalendar, ImmutableBean, Serializable { @Override public LocalDate lastBusinessDayOfMonth(LocalDate date) { try { int index = (date.getYear() - startYear) * 12 + date.getMonthValue() - 1; int leading = Integer.numberOfLeadingZeros(lookup[index]); return date.withDayOfMonth(32 - leading); } catch (ArrayIndexOutOfBoundsException ex) { return lastBusinessDayOfMonthOutOfRange(date); } } ImmutableHolidayCalendar(HolidayCalendarId id, int weekendDays, int startYear, int[] lookup, boolean flag); private  ImmutableHolidayCalendar(
      HolidayCalendarId id,
      int weekends,
      int startYear,
      int[] lookup); static ImmutableHolidayCalendar of(
      HolidayCalendarId id,
      Iterable<LocalDate> holidays,
      DayOfWeek firstWeekendDay,
      DayOfWeek secondWeekendDay); static ImmutableHolidayCalendar of(
      HolidayCalendarId id,
      Iterable<LocalDate> holidays,
      Iterable<DayOfWeek> weekendDays); static ImmutableHolidayCalendar of(
      HolidayCalendarId id,
      Iterable<LocalDate> holidays,
      Iterable<DayOfWeek> weekendDays,
      Iterable<LocalDate> workingDays); static ImmutableHolidayCalendar combined(ImmutableHolidayCalendar cal1, ImmutableHolidayCalendar cal2); @Override boolean isHoliday(LocalDate date); @Override LocalDate shift(LocalDate date, int amount); @Override LocalDate next(LocalDate date); @Override LocalDate previous(LocalDate date); @Override LocalDate nextSameOrLastInMonth(LocalDate date); @Override boolean isLastBusinessDayOfMonth(LocalDate date); @Override LocalDate lastBusinessDayOfMonth(LocalDate date); @Override int daysBetween(LocalDate startInclusive, LocalDate endExclusive); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static ImmutableHolidayCalendar.Meta meta(); @Override ImmutableHolidayCalendar.Meta metaBean(); @Override HolidayCalendarId getId(); @SuppressWarnings("unused")
  static final SerDeserializer DESERIALIZER; }### Answer:
@Test public void test_lastBusinessDayOfMonth_range() { assertThat(HOLCAL_END_MONTH.lastBusinessDayOfMonth(date(2010, 1, 1))).isEqualTo(date(2010, 1, 29)); assertThatIllegalArgumentException().isThrownBy(() -> HOLCAL_END_MONTH.lastBusinessDayOfMonth(LocalDate.MIN)); assertThatIllegalArgumentException().isThrownBy(() -> HOLCAL_END_MONTH.lastBusinessDayOfMonth(LocalDate.MAX)); }