/** * Obtains an instance that uses the specified supplier for additional information. * * @param supplier the supplier used to extract additional information to output * @return the loader */ public static SensitivityCsvWriter of(SensitivityCsvInfoSupplier supplier) { return new SensitivityCsvWriter(supplier); }
.mapKeys((type, sens) -> Pair.of(sens.getMarketDataName().getName(), type)) .sortedKeys() .forEach((pair, paramSens) -> write( pair.getFirst(), pair.getSecond(), curveSens, paramSens, additionalHeaders, containsDates, csv));
public void test_write_standard_roundTrip() { CharSource source = ResourceLocator.ofClasspath("com/opengamma/strata/loader/csv/sensitivity-standard.csv").getCharSource(); ValueWithFailures<ListMultimap<String, CurveSensitivities>> parsed1 = LOADER.parse(ImmutableList.of(source)); assertEquals(parsed1.getFailures().size(), 0, parsed1.getFailures().toString()); assertEquals(parsed1.getValue().size(), 1); List<CurveSensitivities> csensList1 = parsed1.getValue().get(""); assertEquals(csensList1.size(), 1); CurveSensitivities csens1 = csensList1.get(0); StringBuffer buf = new StringBuffer(); WRITER.write(csens1, buf); String content = buf.toString(); ValueWithFailures<ListMultimap<String, CurveSensitivities>> parsed2 = LOADER.parse(ImmutableList.of(CharSource.wrap(content))); assertEquals(parsed2.getFailures().size(), 0, parsed2.getFailures().toString()); assertEquals(parsed2.getValue().size(), 1); List<CurveSensitivities> csensList2 = parsed2.getValue().get(""); assertEquals(csensList2.size(), 1); CurveSensitivities csens2 = csensList2.get(0); assertEquals(csens2, csens1); }
public void test_write_standard() { CurveName curve1 = CurveName.of("GBDSC"); CurveName curve2 = CurveName.of("GBFWD"); // listed in reverse order to check ordering CurveSensitivities sens = CurveSensitivities.builder(PortfolioItemInfo.empty().withAttribute(CCP_ATTR, "LCH")) .add(ZERO_RATE_GAMMA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_3M), 1) .add(ZERO_RATE_GAMMA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 2) .add(ZERO_RATE_DELTA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_3M), 3) .add(ZERO_RATE_DELTA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 5) .add(ZERO_RATE_DELTA, curve1, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_3M), 2) .add(ZERO_RATE_DELTA, curve1, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 4) .build(); StringBuffer buf = new StringBuffer(); WRITER_CCP.write(sens, buf); String content = buf.toString(); String expected = "" + "Reference,Sensitivity Type,Sensitivity Tenor,Currency,Value,CCP\n" + "GBDSC,ZeroRateDelta,3M,GBP,2.0,LCH\n" + "GBDSC,ZeroRateDelta,6M,GBP,4.0,LCH\n" + "GBFWD,ZeroRateDelta,3M,GBP,3.0,LCH\n" + "GBFWD,ZeroRateDelta,6M,GBP,5.0,LCH\n" + "GBFWD,ZeroRateGamma,3M,GBP,1.0,LCH\n" + "GBFWD,ZeroRateGamma,6M,GBP,2.0,LCH\n"; assertEquals(content, expected); }
/** * Obtains an instance that uses the standard set of reference data. * * @return the loader */ public static SensitivityCsvWriter standard() { return new SensitivityCsvWriter(SensitivityCsvInfoSupplier.standard()); }
public void test_write_standard_withDate() { CurveName curve1 = CurveName.of("GBDSC"); CurveName curve2 = CurveName.of("GBFWD"); // listed in reverse order to check ordering CurveSensitivities sens = CurveSensitivities.builder(PortfolioItemInfo.empty().withAttribute(CCP_ATTR, "LCH")) .add(ZERO_RATE_GAMMA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_3M), 1) .add(ZERO_RATE_GAMMA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 2) .add(ZERO_RATE_DELTA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_3M), 3) .add(ZERO_RATE_DELTA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 5) .add(ZERO_RATE_DELTA, curve1, Currency.GBP, TenorDateParameterMetadata.of(date(2018, 6, 30), Tenor.TENOR_3M), 2) .add(ZERO_RATE_DELTA, curve1, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 4) .build(); StringBuffer buf = new StringBuffer(); WRITER_CCP.write(sens, buf); String content = buf.toString(); String expected = "" + "Reference,Sensitivity Type,Sensitivity Tenor,Sensitivity Date,Currency,Value,CCP\n" + "GBDSC,ZeroRateDelta,3M,2018-06-30,GBP,2.0,LCH\n" + "GBDSC,ZeroRateDelta,6M,,GBP,4.0,LCH\n" + "GBFWD,ZeroRateDelta,3M,,GBP,3.0,LCH\n" + "GBFWD,ZeroRateDelta,6M,,GBP,5.0,LCH\n" + "GBFWD,ZeroRateGamma,3M,,GBP,1.0,LCH\n" + "GBFWD,ZeroRateGamma,6M,,GBP,2.0,LCH\n"; assertEquals(content, expected); }