/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.timeseries.returns;
import org.testng.annotations.Test;
import org.threeten.bp.LocalDate;
import com.opengamma.timeseries.TimeSeriesException;
import com.opengamma.timeseries.date.localdate.ImmutableLocalDateDoubleTimeSeries;
import com.opengamma.timeseries.date.localdate.LocalDateDoubleTimeSeries;
import com.opengamma.util.CalculationMode;
import com.opengamma.util.test.TestGroup;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class RelativeTimeSeriesReturnCalculatorTest {
private static final LocalDateDoubleTimeSeries TS = ImmutableLocalDateDoubleTimeSeries.of(new LocalDate[] {LocalDate.of(2000, 1, 2), LocalDate.of(2000, 1, 3)}, new double[] {3, 4});
private static final RelativeTimeSeriesReturnCalculator STRICT = new RelativeTimeSeriesReturnCalculator(CalculationMode.STRICT) {
@Override
public LocalDateDoubleTimeSeries evaluate(final LocalDateDoubleTimeSeries... x) {
testInputData(x);
return null;
}
};
private static final RelativeTimeSeriesReturnCalculator LENIENT = new RelativeTimeSeriesReturnCalculator(CalculationMode.LENIENT) {
@Override
public LocalDateDoubleTimeSeries evaluate(final LocalDateDoubleTimeSeries... x) {
testInputData(x);
return null;
}
};
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNullArray() {
STRICT.evaluate((LocalDateDoubleTimeSeries[]) null);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testEmptyArray() {
STRICT.evaluate(new LocalDateDoubleTimeSeries[0]);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNullFirstElement() {
STRICT.evaluate(null, TS);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNullSecondElement() {
STRICT.evaluate(TS, null);
}
@Test(expectedExceptions = TimeSeriesException.class)
public void testDifferentLengthsStrict() {
STRICT.evaluate(TS, ImmutableLocalDateDoubleTimeSeries.of(new LocalDate[] {LocalDate.of(2000, 1, 1)}, new double[] {1}));
}
@Test
public void testDifferentLengthsLenient() {
LENIENT.evaluate(TS, ImmutableLocalDateDoubleTimeSeries.of(new LocalDate[] {LocalDate.of(2000, 1, 1)}, new double[] {1}));
}
@Test(expectedExceptions = TimeSeriesException.class)
public void testDifferentDatesStrict() {
STRICT.evaluate(TS, ImmutableLocalDateDoubleTimeSeries.of(new LocalDate[] {LocalDate.of(2000, 1, 1)}, new double[] {1}));
}
@Test
public void testDifferentDatessLenient() {
LENIENT.evaluate(TS, ImmutableLocalDateDoubleTimeSeries.of(new LocalDate[] {LocalDate.of(2000, 1, 1), LocalDate.of(2000, 1, 3)}, new double[] {1, 2}));
}
}