Package com.opengamma.master.historicaltimeseries.impl

Source Code of com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesWriterTest

/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.master.historicaltimeseries.impl;

import static org.testng.AssertJUnit.assertEquals;

import java.util.List;

import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.threeten.bp.LocalDate;

import com.google.common.collect.ImmutableList;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.id.UniqueId;
import com.opengamma.master.historicaltimeseries.HistoricalTimeSeriesMaster;
import com.opengamma.master.historicaltimeseries.ManageableHistoricalTimeSeries;
import com.opengamma.timeseries.date.localdate.ImmutableLocalDateDoubleTimeSeries;
import com.opengamma.timeseries.date.localdate.LocalDateDoubleTimeSeries;
import com.opengamma.util.test.TestGroup;

/**
* Test {@link HistoricalTimeSeriesMasterUtils}.
*/
@Test(groups = TestGroup.UNIT)
public class HistoricalTimeSeriesWriterTest {
 
  private static final String DESCRIPTION = "Description";
  private static final String DATA_SOURCE = "Source";
  private static final String DATA_PROVIDER = "Provider";
  private static final String DATA_FIELD = "Field";
  private static final String OBSERVATION_TIME = "Time";
  private static final ExternalId ID = ExternalId.of("Test", "1");
 
  private HistoricalTimeSeriesMaster _htsMaster;
  private HistoricalTimeSeriesMasterUtils _htsWriter;
  private LocalDate _today;
 
  @BeforeMethod
  public void setup() {
    _htsMaster = new InMemoryHistoricalTimeSeriesMaster();
    _htsWriter = new HistoricalTimeSeriesMasterUtils(_htsMaster);
    _today = LocalDate.now();
  }
 
  public void testAddTimeSeries() {
    List<LocalDate> dates = ImmutableList.of(_today.minusDays(2), _today.minusDays(1), _today);
    List<Double> values = ImmutableList.of(1d, 2d, 3d);
    ImmutableLocalDateDoubleTimeSeries origTs = ImmutableLocalDateDoubleTimeSeries.of(dates, values);
    UniqueId id = _htsWriter.writeTimeSeries(DESCRIPTION, DATA_SOURCE, DATA_PROVIDER, DATA_FIELD, OBSERVATION_TIME, ExternalIdBundle.of(ID), origTs);
   
    ManageableHistoricalTimeSeries manageableTs = _htsMaster.getTimeSeries(id);
    LocalDateDoubleTimeSeries readTs = manageableTs.getTimeSeries();
    assertEquals(origTs, readTs);
  }
 
  public void testUpdateTimeSeriesCorrectionOnly() {
    // Add the test series
    testAddTimeSeries();
   
    List<LocalDate> dates = ImmutableList.of(_today.minusDays(2), _today.minusDays(1), _today);
    List<Double> values = ImmutableList.of(2d, 3d, 4d);
    ImmutableLocalDateDoubleTimeSeries updatedTs = ImmutableLocalDateDoubleTimeSeries.of(dates, values);
    UniqueId id = _htsWriter.writeTimeSeries(DESCRIPTION, DATA_SOURCE, DATA_PROVIDER, DATA_FIELD, OBSERVATION_TIME, ExternalIdBundle.of(ID), updatedTs);
   
    ManageableHistoricalTimeSeries manageableTs = _htsMaster.getTimeSeries(id);
    LocalDateDoubleTimeSeries readTs = manageableTs.getTimeSeries();
    assertEquals(updatedTs, readTs);   
  }
 
  public void testUpdateTimeSeriesAddNewLaterPointsOnly() {
    // Add the test series
    testAddTimeSeries();
   
    List<LocalDate> dates = ImmutableList.of(_today.plusDays(1));
    List<Double> values = ImmutableList.of(4d);
    ImmutableLocalDateDoubleTimeSeries newTs = ImmutableLocalDateDoubleTimeSeries.of(dates, values);
    UniqueId id = _htsWriter.writeTimeSeries(DESCRIPTION, DATA_SOURCE, DATA_PROVIDER, DATA_FIELD, OBSERVATION_TIME, ExternalIdBundle.of(ID), newTs);
   
    ManageableHistoricalTimeSeries manageableTs = _htsMaster.getTimeSeries(id);
    LocalDateDoubleTimeSeries readTs = manageableTs.getTimeSeries();
    List<LocalDate> expectedDates = ImmutableList.of(_today.minusDays(2), _today.minusDays(1), _today, _today.plusDays(1));
    List<Double> expectedValues = ImmutableList.of(1d, 2d, 3d, 4d);
    ImmutableLocalDateDoubleTimeSeries expectedTs = ImmutableLocalDateDoubleTimeSeries.of(expectedDates, expectedValues);
    assertEquals(expectedTs, readTs);
  }

  @Test
  public void testUpdateTimeSeriesAddEarlierAndLaterPoints() {
    // Add the test series
    testAddTimeSeries();
   
    List<LocalDate> dates = ImmutableList.of(_today.minusDays(3), _today.plusDays(1));
    List<Double> values = ImmutableList.of(0d, 4d);
    ImmutableLocalDateDoubleTimeSeries newTs = ImmutableLocalDateDoubleTimeSeries.of(dates, values);
    UniqueId id = _htsWriter.writeTimeSeries(DESCRIPTION, DATA_SOURCE, DATA_PROVIDER, DATA_FIELD, OBSERVATION_TIME, ExternalIdBundle.of(ID), newTs);
   
    // Current implementation drops new, earlier points
    ManageableHistoricalTimeSeries manageableTs = _htsMaster.getTimeSeries(id);
    LocalDateDoubleTimeSeries readTs = manageableTs.getTimeSeries();
    List<LocalDate> expectedDates = ImmutableList.of(_today.minusDays(2), _today.minusDays(1), _today, _today.plusDays(1));
    List<Double> expectedValues = ImmutableList.of(1d, 2d, 3d, 4d);
    ImmutableLocalDateDoubleTimeSeries expectedTs = ImmutableLocalDateDoubleTimeSeries.of(expectedDates, expectedValues);
    assertEquals(expectedTs, readTs);   
  }
 
  @Test(enabled = false) // Current implementation does not support removing points
  public void testUpdateTimeSeriesRemoveExistingPoints() {
    // Add the test series
    testAddTimeSeries();
   
    List<LocalDate> dates = ImmutableList.of(_today.minusDays(2), _today);
    List<Double> values = ImmutableList.of(6d, 7d);
    ImmutableLocalDateDoubleTimeSeries updatedTs = ImmutableLocalDateDoubleTimeSeries.of(dates, values);
    UniqueId id = _htsWriter.writeTimeSeries(DESCRIPTION, DATA_SOURCE, DATA_PROVIDER, DATA_FIELD, OBSERVATION_TIME, ExternalIdBundle.of(ID), updatedTs);
   
    ManageableHistoricalTimeSeries manageableTs = _htsMaster.getTimeSeries(id);
    LocalDateDoubleTimeSeries readTs = manageableTs.getTimeSeries();
    assertEquals(updatedTs, readTs);
  }
 
  public void testAddUpdateTimeSeriesSingleExistingPoint() {
    List<LocalDate> dates = ImmutableList.of(_today);
    List<Double> origValues = ImmutableList.of(1d);
    ImmutableLocalDateDoubleTimeSeries origTs = ImmutableLocalDateDoubleTimeSeries.of(dates, origValues);
    UniqueId id = _htsWriter.writeTimeSeries(DESCRIPTION, DATA_SOURCE, DATA_PROVIDER, DATA_FIELD, OBSERVATION_TIME, ExternalIdBundle.of(ID), origTs);
   
    ManageableHistoricalTimeSeries manageableTs = _htsMaster.getTimeSeries(id);
    LocalDateDoubleTimeSeries readTs = manageableTs.getTimeSeries();
    assertEquals(origTs, readTs);
   
    List<Double> updatedValues = ImmutableList.of(2d);
    ImmutableLocalDateDoubleTimeSeries updatedTs = ImmutableLocalDateDoubleTimeSeries.of(dates, updatedValues);
    id = _htsWriter.writeTimeSeries(DESCRIPTION, DATA_SOURCE, DATA_PROVIDER, DATA_FIELD, OBSERVATION_TIME, ExternalIdBundle.of(ID), updatedTs);
   
    manageableTs = _htsMaster.getTimeSeries(id);
    readTs = manageableTs.getTimeSeries();
    assertEquals(updatedTs, readTs);
  }
 
}
TOP

Related Classes of com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesWriterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.