/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.convention.daycount; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.Test; import org.threeten.bp.LocalDate; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class TwentyEightThreeSixtyTest extends DayCountTestCase { private static final TwentyEightThreeSixty DC = new TwentyEightThreeSixty(); @Override protected DayCount getDayCount() { return DC; } @Test public void test() { assertEquals(COUPON * DC.getDayCountFraction(D1, D2), DC.getAccruedInterest(D1, D2, D3, COUPON, PAYMENTS), 0); assertEquals(DC.getName(), "28/360"); final LocalDate d1 = LocalDate.of(2012, 7, 2); final LocalDate d2 = LocalDate.of(2012, 7, 28); final LocalDate d3 = LocalDate.of(2012, 8, 2); final LocalDate d4 = LocalDate.of(2012, 8, 28); final LocalDate d5 = LocalDate.of(2013, 8, 2); final LocalDate d6 = LocalDate.of(2013, 8, 28); final LocalDate d7 = LocalDate.of(2012, 6, 29); final LocalDate d8 = LocalDate.of(2012, 7, 31); final LocalDate d9 = LocalDate.of(2012, 8, 31); final LocalDate d10 = LocalDate.of(2013, 8, 31); final LocalDate d11 = LocalDate.of(2014, 1, 31); assertEquals(26. / 360, DC.getDayCountFraction(d1, d2), 0); assertEquals(28. / 360, DC.getDayCountFraction(d1, d3), 0); assertEquals(54. / 360, DC.getDayCountFraction(d1, d4), 0); assertEquals(1 + 28. / 360, DC.getDayCountFraction(d1, d5), 0); assertEquals(1 + 54. / 360, DC.getDayCountFraction(d1, d6), 0); assertEquals(28. / 360, DC.getDayCountFraction(d7, d2), 0); assertEquals(30. / 360, DC.getDayCountFraction(d7, d3), 0); assertEquals(56. / 360, DC.getDayCountFraction(d7, d4), 0); assertEquals(1 + 30. / 360, DC.getDayCountFraction(d7, d5), 0); assertEquals(1 + 56. / 360, DC.getDayCountFraction(d7, d6), 0); assertEquals(26. / 360, DC.getDayCountFraction(d1, d8), 0); assertEquals(28. / 360, DC.getDayCountFraction(d7, d8), 0); assertEquals(54. / 360, DC.getDayCountFraction(d1, d9), 0); assertEquals(56. / 360, DC.getDayCountFraction(d7, d9), 0); assertEquals(1 + 54. / 360, DC.getDayCountFraction(d1, d10), 0); assertEquals(1 + 56. / 360, DC.getDayCountFraction(d7, d10), 0); assertEquals(140. / 360, DC.getDayCountFraction(d10, d11), 0); } }