/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.timeseries;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
import org.testng.annotations.Test;
import org.threeten.bp.LocalDate;
/**
* Test {@link SimpleMapTimeSeries}.
*/
@Test(groups = "unit")
public class SimpleMapTimeSeriesTest {
private static final LocalDate DATE1 = LocalDate.of(2011, 6, 1);
private static final LocalDate DATE2 = LocalDate.of(2011, 6, 2);
public void test_constructor_arrays_emptyTypes() {
final SimpleMapTimeSeries<LocalDate, String> test = new SimpleMapTimeSeries<LocalDate, String>(LocalDate.class, String.class);
assertEquals(0, test.size());
assertEquals(true, test.isEmpty());
assertEquals(false, test.iterator().hasNext());
assertEquals(false, test.timesIterator().hasNext());
assertEquals(false, test.valuesIterator().hasNext());
assertEquals(0, test.times().size());
assertEquals(0, test.timesArray().length);
assertEquals(0, test.values().size());
assertEquals(0, test.valuesArray().length);
}
public void test_constructor_arrays_empty() {
final SimpleMapTimeSeries<LocalDate, String> test = new SimpleMapTimeSeries<LocalDate, String>(new LocalDate[0], new String[0]);
assertEquals(0, test.size());
assertEquals(true, test.isEmpty());
assertEquals(false, test.iterator().hasNext());
assertEquals(false, test.timesIterator().hasNext());
assertEquals(false, test.valuesIterator().hasNext());
assertEquals(0, test.times().size());
assertEquals(0, test.timesArray().length);
assertEquals(0, test.values().size());
assertEquals(0, test.valuesArray().length);
}
public void test_constructor_arrays_elements() {
final SimpleMapTimeSeries<LocalDate, String> test = new SimpleMapTimeSeries<LocalDate, String>(
new LocalDate[] {DATE1, DATE2 }, new String[] {"A", "B" });
assertEquals(2, test.size());
assertEquals(false, test.isEmpty());
assertEquals(true, test.iterator().hasNext());
assertEquals(true, test.timesIterator().hasNext());
assertEquals(true, test.valuesIterator().hasNext());
assertEquals(2, test.times().size());
assertEquals(DATE1, test.times().get(0));
assertEquals(DATE2, test.times().get(1));
assertEquals(2, test.timesArray().length);
assertEquals(DATE1, test.timesArray()[0]);
assertEquals(DATE2, test.timesArray()[1]);
assertEquals(2, test.values().size());
assertEquals(2, test.valuesArray().length);
}
public void test_lag() {
final SimpleMapTimeSeries<LocalDate, String> test = new SimpleMapTimeSeries<LocalDate, String>(new LocalDate[] {DATE1, DATE2 }, new String[] {"A", "B" });
TimeSeries<LocalDate, String> lagged = test.lag(0);
assertEquals(2, lagged.size());
assertEquals(DATE1, lagged.getTimeAtIndex(0));
assertEquals(DATE2, lagged.getTimeAtIndex(1));
assertEquals("A", lagged.getValueAtIndex(0));
assertEquals("B", lagged.getValueAtIndex(1));
lagged = test.lag(1);
assertEquals(1, lagged.size());
assertEquals(DATE2, lagged.getTimeAtIndex(0));
assertEquals("A", lagged.getValueAtIndex(0));
lagged = test.lag(-1);
assertEquals(1, lagged.size());
assertEquals(DATE1, lagged.getTimeAtIndex(0));
assertEquals("B", lagged.getValueAtIndex(0));
lagged = test.lag(2);
assertTrue(lagged.isEmpty());
lagged = test.lag(-2);
assertTrue(lagged.isEmpty());
lagged = test.lag(1000);
assertTrue(lagged.isEmpty());
lagged = test.lag(-1000);
assertTrue(lagged.isEmpty());
}
}