/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.convention.rolldate; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.Test; import org.threeten.bp.ZonedDateTime; import com.opengamma.util.test.TestGroup; import com.opengamma.util.time.DateUtils; /** * Test the methods of RollDateAdjusterUtils */ @Test(groups = TestGroup.UNIT) public class RollDateAdjusterUtilsTest { private static final RollDateAdjuster QUARTERLY_IMM_ADJUSTER = RollDateAdjusterFactory.getAdjuster(RollDateAdjusterFactory.QUARTERLY_IMM_ROLL_STRING); @Test public void nthDate() { final ZonedDateTime startingPoint = DateUtils.getUTCDate(2013, 9, 3); final int[] nbRoll = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; final ZonedDateTime[] expectedDates = new ZonedDateTime[] {DateUtils.getUTCDate(2013, 9, 18), DateUtils.getUTCDate(2013, 12, 18), DateUtils.getUTCDate(2014, 3, 19), DateUtils.getUTCDate(2014, 6, 18), DateUtils.getUTCDate(2014, 9, 17), DateUtils.getUTCDate(2014, 12, 17), DateUtils.getUTCDate(2015, 3, 18), DateUtils.getUTCDate(2015, 6, 17), DateUtils.getUTCDate(2015, 9, 16), DateUtils.getUTCDate(2015, 12, 16), DateUtils.getUTCDate(2016, 3, 16), DateUtils.getUTCDate(2016, 6, 15) }; int nbTest = nbRoll.length; for (int loopt = 0; loopt < nbTest; loopt++) { ZonedDateTime rolledDate = RollDateAdjusterUtils.nthDate(startingPoint, QUARTERLY_IMM_ADJUSTER, nbRoll[loopt]); assertEquals("RollDateAdjusterUtils - nthDate", expectedDates[loopt], rolledDate); } } }