/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.math.statistics;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
import org.testng.annotations.Test;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class ConfidenceIntervalTest {
private static final double VALUE = 100;
private static final double LOWER = 50;
private static final double UPPER = 120;
private static final double CONFIDENCE_LEVEL = 0.95;
@Test(expectedExceptions = IllegalArgumentException.class)
public void testLowLevel() {
new ConfidenceInterval(VALUE, LOWER, UPPER, -CONFIDENCE_LEVEL);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testHighLevel() {
new ConfidenceInterval(VALUE, LOWER, UPPER, 1 + CONFIDENCE_LEVEL);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testBounds() {
new ConfidenceInterval(VALUE, UPPER, LOWER, CONFIDENCE_LEVEL);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testLowerBound() {
new ConfidenceInterval(UPPER + 1, LOWER, UPPER, CONFIDENCE_LEVEL);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testUpperBound() {
new ConfidenceInterval(LOWER - 1, LOWER, UPPER, CONFIDENCE_LEVEL);
}
@Test
public void test() {
final ConfidenceInterval interval1 = new ConfidenceInterval(VALUE, LOWER, UPPER, CONFIDENCE_LEVEL);
assertEquals(interval1.getValue(), VALUE, 0);
assertEquals(interval1.getConfidenceLevel(), CONFIDENCE_LEVEL, 0);
assertEquals(interval1.getLowerInterval(), LOWER, 0);
assertEquals(interval1.getUpperInterval(), UPPER, 0);
assertFalse(interval1.isWithinInterval(4.5));
assertFalse(interval1.isWithinInterval(-1));
assertTrue(interval1.isWithinInterval(112.5));
final ConfidenceInterval interval2 = new ConfidenceInterval(VALUE + 1, LOWER, UPPER, CONFIDENCE_LEVEL);
final ConfidenceInterval interval3 = new ConfidenceInterval(VALUE, LOWER + 1, UPPER, CONFIDENCE_LEVEL);
final ConfidenceInterval interval4 = new ConfidenceInterval(VALUE, LOWER, UPPER + 1, CONFIDENCE_LEVEL);
final ConfidenceInterval interval5 = new ConfidenceInterval(VALUE, LOWER, UPPER, CONFIDENCE_LEVEL + 0.01);
final ConfidenceInterval interval6 = new ConfidenceInterval(VALUE, LOWER, UPPER, CONFIDENCE_LEVEL);
assertEquals(interval1, interval1);
assertEquals(interval1, interval6);
assertEquals(interval1.hashCode(), interval6.hashCode());
assertFalse(interval1.equals(interval2));
assertFalse(interval1.equals(null));
assertFalse(interval1.equals(2));
assertFalse(interval1.equals(interval3));
assertFalse(interval1.equals(interval4));
assertFalse(interval1.equals(interval5));
}
}