public void test_serialization() { TenorParameterMetadata test = TenorParameterMetadata.of(TENOR_10Y); assertSerialization(test); }
return TenorDateParameterMetadata.of(dateOpt.get(), tenor); } else { return TenorParameterMetadata.of(tenor);
public void test_of_noLabel() { TenorParameterMetadata test = TenorParameterMetadata.of(TENOR_10Y); assertEquals(test.getTenor(), TENOR_10Y); assertEquals(test.getLabel(), "10Y"); assertEquals(test.getIdentifier(), TENOR_10Y); }
public void test_of_label() { TenorParameterMetadata test = TenorParameterMetadata.of(TENOR_10Y, "10 year"); assertEquals(test.getTenor(), TENOR_10Y); assertEquals(test.getLabel(), "10 year"); assertEquals(test.getIdentifier(), TENOR_10Y); }
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); }
public void test_of_map() { ImmutableMap<ParameterMetadata, Double> map = ImmutableMap.of( TenorParameterMetadata.of(Tenor.TENOR_1Y), 12d, TenorParameterMetadata.of(Tenor.TENOR_2Y), -32d, TenorParameterMetadata.of(Tenor.TENOR_5Y), 5d); CurrencyParameterSensitivity test = CurrencyParameterSensitivity.of(NAME1, USD, map); assertEquals(test.getMarketDataName(), NAME1); assertEquals(test.getParameterCount(), 3); assertEquals(test.getParameterMetadata(), map.keySet().asList()); assertEquals(test.getCurrency(), USD); assertEquals(test.getSensitivity(), DoubleArray.copyOf(map.values())); assertEquals(test.sensitivities().toMap(), map); assertEquals(test.toSensitivityMap(Tenor.class), MapStream.of(map).mapKeys(pm -> pm.getIdentifier()).toMap()); }
public void wrong_metadata() { List<ParameterMetadata> pmdInput = new ArrayList<>(); pmdInput.add(TenorParameterMetadata.of(Tenor.TENOR_10M)); CurrencyParameterSensitivity s1 = CurrencyParameterSensitivity.of(NAME_1, pmdInput, CCY_1, DoubleArray.of(SENSITIVITY_AMOUNT)); CurrencyParameterSensitivities s2 = CurrencyParameterSensitivities.of(s1); assertThrowsIllegalArg(() -> CurveSensitivityUtils.linearRebucketing(s2, TARGET_DATES)); }
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); }
public void hard_coded_value_one_curve_all_dates_tenor() { final LocalDate sensitivityDate = LocalDate.of(2015, 8, 18); Function<LocalDate, ParameterMetadata> parameterMetadataFunction = (d) -> TenorParameterMetadata.of(Tenor .of(Period.ofDays((int) (d.toEpochDay() - sensitivityDate.toEpochDay())))); Function<CurrencyParameterSensitivities, CurrencyParameterSensitivities> rebucketFunction = (s) -> CurveSensitivityUtils.linearRebucketing(s, TARGET_DATES, sensitivityDate); test_from_functions_one_curve_all_dates(parameterMetadataFunction, rebucketFunction); }
public void hard_coded_value_one_curve_one_date_tenor() { final LocalDate sensitivityDate = LocalDate.of(2015, 8, 18); Function<LocalDate, ParameterMetadata> parameterMetadataFunction = (d) -> TenorParameterMetadata.of(Tenor .of(Period.ofDays((int) (d.toEpochDay() - sensitivityDate.toEpochDay())))); Function<CurrencyParameterSensitivities, CurrencyParameterSensitivities> rebucketFunction = (s) -> CurveSensitivityUtils.linearRebucketing(s, TARGET_DATES, sensitivityDate); test_from_functions_one_curve_one_date(parameterMetadataFunction, rebucketFunction); }