/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.schedule; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.Test; import org.threeten.bp.DayOfWeek; import org.threeten.bp.LocalDate; import com.opengamma.financial.convention.calendar.Calendar; import com.opengamma.financial.convention.calendar.MondayToFridayCalendar; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class HolidayDateRemovalFunctionTest { private static final HolidayDateRemovalFunction F = HolidayDateRemovalFunction.getInstance(); private static final Calendar WEEKEND_CALENDAR = new MondayToFridayCalendar("Weekend"); private static final Schedule DAILY = new DailyScheduleCalculator(); private static final LocalDate START = LocalDate.of(2009, 1, 1); private static final LocalDate END = LocalDate.of(2010, 1, 1); private static final LocalDate[] SCHEDULE = DAILY.getSchedule(START, END, true, false); @Test(expectedExceptions = IllegalArgumentException.class) public void testNullDates() { F.getStrippedSchedule(null, WEEKEND_CALENDAR); } @Test(expectedExceptions = IllegalArgumentException.class) public void testNullHolidays() { F.getStrippedSchedule(SCHEDULE, null); } @Test public void test() { final LocalDate[] stripped = F.getStrippedSchedule(SCHEDULE, WEEKEND_CALENDAR); assertEquals(SCHEDULE.length, 366); assertEquals(stripped.length, 262); int i = 0, j = 0; for (final LocalDate date : SCHEDULE) { if (date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY) { i++; } else { assertEquals(SCHEDULE[i++], stripped[j++]); } } } }