/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.equity.variance.pricing; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import org.testng.annotations.Test; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class AffineDividendsTest { final static double[] TAU0 = new double[0]; final static double[] TAU1 = new double[] {0.34 }; final static double[] TAU2 = new double[] {0.34, 1.23 }; final static double[] ALPHA0 = new double[0]; final static double[] ALPHA1 = new double[] {12 }; final static double[] ALPHA2 = new double[] {5, 2 }; final static double[] BETA0 = new double[0]; final static double[] BETA1 = new double[] {0.2 }; final static double[] BETA2 = new double[] {0.1, 0.05 }; @Test public void zeroLengthTest() { final AffineDividends div = new AffineDividends(TAU0, ALPHA0, BETA0); assertEquals(0, div.getNumberOfDividends()); } @Test public void unitLengthTest() { final AffineDividends div = new AffineDividends(TAU1, ALPHA1, BETA1); assertEquals(1, div.getNumberOfDividends()); assertEquals(TAU1[0], div.getTau(0)); assertEquals(ALPHA1[0], div.getAlpha(0)); assertEquals(BETA1[0], div.getBeta(0)); } @Test(expectedExceptions = IllegalArgumentException.class) public void nullTest1() { new AffineDividends(null, ALPHA1, BETA1); } @Test(expectedExceptions = IllegalArgumentException.class) public void nullTest2() { new AffineDividends(TAU1, null, BETA1); } @Test(expectedExceptions = IllegalArgumentException.class) public void nullTest3() { new AffineDividends(TAU1, ALPHA1, null); } @Test(expectedExceptions = IllegalArgumentException.class) public void wrongLengthTest1() { new AffineDividends(TAU2, ALPHA1, BETA1); } @Test(expectedExceptions = IllegalArgumentException.class) public void wrongLengthTest2() { new AffineDividends(TAU1, ALPHA2, BETA1); } @Test(expectedExceptions = IllegalArgumentException.class) public void wrongLengthTest3() { new AffineDividends(TAU1, ALPHA1, BETA2); } @Test(expectedExceptions = IllegalArgumentException.class) public void negTauTest() { new AffineDividends(new double[] {-1 }, ALPHA1, BETA1); } @Test(expectedExceptions = IllegalArgumentException.class) public void nonAssendingTauTest() { new AffineDividends(new double[] {1.2, 0.9 }, ALPHA2, BETA2); } @Test(expectedExceptions = IllegalArgumentException.class) public void negAlphaTest() { new AffineDividends(TAU1, new double[] {-2 }, BETA1); } @Test(expectedExceptions = IllegalArgumentException.class) public void negBetaTest() { new AffineDividends(TAU1, ALPHA1, new double[] {-0.02 }); } @Test(expectedExceptions = IllegalArgumentException.class) public void outOfRangeBetaTest() { new AffineDividends(TAU1, ALPHA1, new double[] {1.02 }); } @Test public void testObject() { final AffineDividends dividends = new AffineDividends(TAU1, ALPHA1, BETA1); AffineDividends other = new AffineDividends(TAU1, ALPHA1, BETA1); assertEquals(dividends, other); assertEquals(dividends.hashCode(), other.hashCode()); other = new AffineDividends(new double[] {0.4}, ALPHA1, BETA1); assertFalse(dividends.equals(other)); other = new AffineDividends(TAU1, new double[] {0.2345}, BETA1); assertFalse(dividends.equals(other)); other = new AffineDividends(TAU1, ALPHA1, new double[] {0.123456}); assertFalse(dividends.equals(other)); } }