/** * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.loader.csv; import static com.opengamma.strata.basics.currency.Currency.USD; import static com.opengamma.strata.basics.index.IborIndices.USD_LIBOR_3M; import static com.opengamma.strata.collect.TestHelper.coverPrivateConstructor; import static org.testng.Assert.assertEquals; import java.io.File; import java.time.LocalDate; import java.util.List; import org.testng.annotations.Test; import com.google.common.collect.ImmutableList; import com.opengamma.strata.collect.io.ResourceLocator; import com.opengamma.strata.market.curve.CurveGroup; import com.opengamma.strata.market.curve.CurveGroupDefinition; import com.opengamma.strata.market.curve.CurveGroupEntry; import com.opengamma.strata.market.curve.CurveName; /** * Test {@link CurveGroupDefinitionCsvLoader}. */ @Test public class CurveGroupDefinitionCsvLoaderTest { private static final String GROUPS_1 = "classpath:com/opengamma/strata/loader/csv/groups.csv"; private static final String SETTINGS_1 = "classpath:com/opengamma/strata/loader/csv/settings.csv"; private static final String CURVES_1 = "classpath:com/opengamma/strata/loader/csv/curves-1.csv"; private static final String CURVES_2 = "classpath:com/opengamma/strata/loader/csv/curves-2.csv"; private static final LocalDate CURVE_DATE = LocalDate.of(2009, 7, 31); //------------------------------------------------------------------------- public void test_loadCurveGroupDefinition() { List<CurveGroupDefinition> defns = CurveGroupDefinitionCsvLoader.loadCurveGroupDefinitions(ResourceLocator.of(GROUPS_1)); assertEquals(defns.size(), 1); CurveGroupDefinition defn = defns.get(0); assertEquals(defn.getEntries().get(0), CurveGroupEntry.builder() .curveName(CurveName.of("USD-Disc")) .discountCurrencies(USD) .build()); assertEquals(defn.getEntries().get(1), CurveGroupEntry.builder() .curveName(CurveName.of("USD-3ML")) .indices(USD_LIBOR_3M) .build()); } //------------------------------------------------------------------------- public void test_writeCurveGroupDefinition() { CurveGroupDefinition defn = CurveGroupDefinitionCsvLoader.loadCurveGroupDefinitions(ResourceLocator.of(GROUPS_1)).get(0); Appendable underlying = new StringBuilder(); CurveGroupDefinitionCsvLoader.writeCurveGroupDefinition(underlying, defn); String created = underlying.toString(); String expected = "Group Name,Curve Type,Reference,Curve Name" + System.lineSeparator() + "Default,discount,USD,USD-Disc" + System.lineSeparator() + "Default,forward,USD-LIBOR-3M,USD-3ML" + System.lineSeparator() + "Default,forward,US-CPI-U,USD-CPI" + System.lineSeparator(); assertEquals(created, expected); } public void test_writeCurveGroup() { List<CurveGroup> curveGroups = RatesCurvesCsvLoader.load( CURVE_DATE, ResourceLocator.of(GROUPS_1), ResourceLocator.of(SETTINGS_1), ImmutableList.of(ResourceLocator.of(CURVES_1), ResourceLocator.of(CURVES_2))); Appendable underlying = new StringBuilder(); CurveGroupDefinitionCsvLoader.writeCurveGroup(underlying, curveGroups.get(0)); String created = underlying.toString(); String expected = "Group Name,Curve Type,Reference,Curve Name" + System.lineSeparator() + "Default,discount,USD,USD-Disc" + System.lineSeparator() + "Default,forward,USD-LIBOR-3M,USD-3ML" + System.lineSeparator(); assertEquals(created, expected); } public void test_test_writeCurveGroupDefinition_roundtrip() throws Exception { List<CurveGroupDefinition> defn = CurveGroupDefinitionCsvLoader.loadCurveGroupDefinitions(ResourceLocator.of(GROUPS_1)); File tempFile = File.createTempFile("TestCurveGroupLoading", "csv"); tempFile.deleteOnExit(); CurveGroupDefinitionCsvLoader.writeCurveGroupDefinition(tempFile, defn.get(0)); assertEquals(CurveGroupDefinitionCsvLoader.loadCurveGroupDefinitions(ResourceLocator.ofFile(tempFile)), defn); } //------------------------------------------------------------------------- public void coverage() { coverPrivateConstructor(CurveGroupDefinitionCsvLoader.class); } }