/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.convention.frequency;
import static org.testng.AssertJUnit.assertEquals;
import org.testng.annotations.Test;
import org.threeten.bp.Period;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class FrequencyTest {
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNullName1() {
new SimpleFrequency(null, 1);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNegativeFrequency() {
new SimpleFrequency("a", -32);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNullName2() {
new PeriodFrequency(null, Period.ofDays(2));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNullPeriod() {
new PeriodFrequency("X", null);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNoEquivalent() {
new SimpleFrequency("a", 23).toPeriodFrequency();
}
@Test
public void testPredefinedSimpleFrequencies() {
assertEquals(SimpleFrequency.ANNUAL.getPeriodsPerYear(), 1, 0);
assertEquals(SimpleFrequency.BIMONTHLY.getPeriodsPerYear(), 6, 0);
assertEquals(SimpleFrequency.BIWEEKLY.getPeriodsPerYear(), 26, 0);
assertEquals(SimpleFrequency.CONTINUOUS.getPeriodsPerYear(), Double.MAX_VALUE, 0);
assertEquals(SimpleFrequency.DAILY.getPeriodsPerYear(), 365, 0);
assertEquals(SimpleFrequency.MONTHLY.getPeriodsPerYear(), 12, 0);
assertEquals(SimpleFrequency.QUARTERLY.getPeriodsPerYear(), 4, 0);
assertEquals(SimpleFrequency.SEMI_ANNUAL.getPeriodsPerYear(), 2, 0);
assertEquals(SimpleFrequency.WEEKLY.getPeriodsPerYear(), 52, 0);
}
@Test
public void testPredefinedPeriodFrequencies() {
assertEquals(PeriodFrequency.ANNUAL.getPeriod(), Period.ofYears(1));
assertEquals(PeriodFrequency.BIMONTHLY.getPeriod(), Period.ofMonths(2));
assertEquals(PeriodFrequency.BIWEEKLY.getPeriod(), Period.ofDays(14));
assertEquals(PeriodFrequency.CONTINUOUS.getPeriod(), Period.ZERO);
assertEquals(PeriodFrequency.DAILY.getPeriod(), Period.ofDays(1));
assertEquals(PeriodFrequency.MONTHLY.getPeriod(), Period.ofMonths(1));
assertEquals(PeriodFrequency.QUARTERLY.getPeriod(), Period.ofMonths(3));
assertEquals(PeriodFrequency.SEMI_ANNUAL.getPeriod(), Period.ofMonths(6));
assertEquals(PeriodFrequency.WEEKLY.getPeriod(), Period.ofDays(7));
}
@Test
public void testConvert() {
assertEquals(SimpleFrequency.ANNUAL.toPeriodFrequency(), PeriodFrequency.ANNUAL);
assertEquals(SimpleFrequency.BIMONTHLY.toPeriodFrequency(), PeriodFrequency.BIMONTHLY);
assertEquals(SimpleFrequency.BIWEEKLY.toPeriodFrequency(), PeriodFrequency.BIWEEKLY);
assertEquals(SimpleFrequency.CONTINUOUS.toPeriodFrequency(), PeriodFrequency.CONTINUOUS);
assertEquals(SimpleFrequency.DAILY.toPeriodFrequency(), PeriodFrequency.DAILY);
assertEquals(SimpleFrequency.MONTHLY.toPeriodFrequency(), PeriodFrequency.MONTHLY);
assertEquals(SimpleFrequency.SEMI_ANNUAL.toPeriodFrequency(), PeriodFrequency.SEMI_ANNUAL);
assertEquals(SimpleFrequency.WEEKLY.toPeriodFrequency(), PeriodFrequency.WEEKLY);
}
}