/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.timeseries.analysis; import org.testng.Assert; import org.testng.annotations.Test; import cern.jet.random.engine.MersenneTwister; import cern.jet.random.engine.MersenneTwister64; import com.opengamma.analytics.math.statistics.distribution.NormalDistribution; import com.opengamma.analytics.math.statistics.distribution.ProbabilityDistribution; import com.opengamma.timeseries.DoubleTimeSeries; import com.opengamma.timeseries.precise.instant.ImmutableInstantDoubleTimeSeries; import com.opengamma.util.test.TestGroup; /** * Abstract test. */ @Test(groups = TestGroup.UNIT) public abstract class IIDHypothesisTestCase { protected static final ImmutableInstantDoubleTimeSeries RANDOM; protected static final ImmutableInstantDoubleTimeSeries SIGNAL; protected static final ImmutableInstantDoubleTimeSeries INCREASING; static { final int n = 5000; final long[] dates = new long[n]; final double[] random = new double[n]; final double[] signal = new double[n]; final double[] increasing = new double[n]; final ProbabilityDistribution<Double> normal = new NormalDistribution(0, 0.5, new MersenneTwister64(MersenneTwister.DEFAULT_SEED)); for (int i = 0; i < n; i++) { dates[i] = i; random[i] = normal.nextRandom(); signal[i] = Math.cos(i / 10.) + normal.nextRandom(); increasing[i] = i == 0 ? 1 : increasing[i - 1] * 1.0001; } RANDOM = ImmutableInstantDoubleTimeSeries.of(dates, random); SIGNAL = ImmutableInstantDoubleTimeSeries.of(dates, signal); INCREASING = ImmutableInstantDoubleTimeSeries.of(dates, increasing); } public void assertNullTS(final IIDHypothesis h) { try { h.evaluate((DoubleTimeSeries<Long>) null); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } } public void assertEmptyTS(final IIDHypothesis h) { try { h.evaluate(ImmutableInstantDoubleTimeSeries.EMPTY_SERIES); Assert.fail(); } catch (final IllegalArgumentException e) { // Expected } } }