@Override public CurveMetadata metadata(LocalDate valuationDate, ReferenceData refData) { List<DatedParameterMetadata> nodeMetadata = nodes.stream() .map(node -> node.metadata(valuationDate, refData)) .collect(toImmutableList()); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(xValueType) .yValueType(yValueType) .dayCount(dayCount) .parameterMetadata(nodeMetadata) .build(); }
@Override public DefaultCurveMetadata withParameterMetadata(List<? extends ParameterMetadata> parameterMetadata) { if (parameterMetadata == null) { return this.parameterMetadata != null ? toBuilder().clearParameterMetadata().build() : this; } return toBuilder().parameterMetadata(parameterMetadata).build(); }
public void test_builder3() { DefaultCurveMetadata test = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .parameterMetadata(ImmutableList.of(ParameterMetadata.empty())) .clearParameterMetadata() .build(); assertThat(test.getCurveName()).isEqualTo(CURVE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getYValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getParameterMetadata().isPresent()).isFalse(); }
@Override public CurveMetadata metadata(LocalDate valuationDate, ReferenceData refData) { return DefaultCurveMetadata.builder() .curveName(name) .xValueType(xValueType) .yValueType(yValueType) .dayCount(dayCount) .parameterMetadata(parameterMetadata) .build(); }
/** * Creates curve metadata for a curve providing monthly prices, typically used in inflation. * <p> * The x-values represent months relative to an unspecified base month. * * @param name the curve name * @param parameterMetadata the parameter metadata * @return the curve metadata */ public static CurveMetadata prices(CurveName name, List<? extends ParameterMetadata> parameterMetadata) { ArgChecker.notNull(name, "name"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.MONTHS) .yValueType(ValueType.PRICE_INDEX) .parameterMetadata(parameterMetadata) .build(); }
public void test_builder4() { DefaultCurveMetadata test = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .parameterMetadata(ParameterMetadata.empty()) .parameterMetadata(ParameterMetadata.empty()) // second replaces first .build(); assertThat(test.getCurveName()).isEqualTo(CURVE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.YEAR_FRACTION); assertThat(test.getYValueType()).isEqualTo(ValueType.DISCOUNT_FACTOR); assertThrowsIllegalArg(() -> test.getInfo(CurveInfoType.DAY_COUNT)); assertThat(test.findInfo(CurveInfoType.DAY_COUNT)).isEqualTo(Optional.empty()); assertThat(test.findInfo(CurveInfoType.JACOBIAN)).isEqualTo(Optional.empty()); assertThat(test.findInfo(CurveInfoType.of("Rubbish"))).isEqualTo(Optional.empty()); assertThat(test.getParameterMetadata().isPresent()).isTrue(); assertThat(test.getParameterMetadata().get()).containsExactly(ParameterMetadata.empty()); }
public void test_builder2() { DefaultCurveMetadata test = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .addInfo(CurveInfoType.DAY_COUNT, ACT_360) .jacobian(JACOBIAN_DATA) .parameterMetadata(ParameterMetadata.empty()) .build(); assertThat(test.getCurveName()).isEqualTo(CURVE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.YEAR_FRACTION); assertThat(test.getYValueType()).isEqualTo(ValueType.DISCOUNT_FACTOR); assertThat(test.getInfo(CurveInfoType.DAY_COUNT)).isEqualTo(ACT_360); assertThat(test.findInfo(CurveInfoType.DAY_COUNT)).isEqualTo(Optional.of(ACT_360)); assertThat(test.getInfo(CurveInfoType.JACOBIAN)).isEqualTo(JACOBIAN_DATA); assertThat(test.findInfo(CurveInfoType.JACOBIAN)).isEqualTo(Optional.of(JACOBIAN_DATA)); assertThat(test.findInfo(CurveInfoType.of("Rubbish"))).isEqualTo(Optional.empty()); assertThat(test.getParameterMetadata().isPresent()).isTrue(); assertThat(test.getParameterMetadata().get()).containsExactly(ParameterMetadata.empty()); }
public void test_withMetadata() { List<ParameterMetadata> combinedParamMeta = new ArrayList<>(); combinedParamMeta.addAll(PARAM_METADATA_BASE); combinedParamMeta.addAll(PARAM_METADATA_SPREAD); CurveMetadata newMetadata = DefaultCurveMetadata.builder() .curveName("newName") .xValueType(YEAR_FRACTION) .yValueType(ZERO_RATE) .dayCount(ACT_365F) .parameterMetadata(combinedParamMeta) .build(); CombinedCurve computed = COMBINED_CURVE.withMetadata(newMetadata); CombinedCurve expected = CombinedCurve.of(BASE_CURVE, SPREAD_CURVE, newMetadata); assertEquals(computed, expected); }
public void test_builder1() { DefaultCurveMetadata test = DefaultCurveMetadata.builder() .curveName(CURVE_NAME.toString()) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .dayCount(ACT_360) .jacobian(JACOBIAN_DATA) .addInfo(CurveInfoType.DAY_COUNT, null) .parameterMetadata(ImmutableList.of(ParameterMetadata.empty())) .build(); assertThat(test.getCurveName()).isEqualTo(CURVE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.YEAR_FRACTION); assertThat(test.getYValueType()).isEqualTo(ValueType.DISCOUNT_FACTOR); assertThat(test.findInfo(CurveInfoType.DAY_COUNT)).isEmpty(); assertThat(test.getInfo(CurveInfoType.JACOBIAN)).isEqualTo(JACOBIAN_DATA); assertThat(test.findInfo(CurveInfoType.JACOBIAN)).isEqualTo(Optional.of(JACOBIAN_DATA)); assertThat(test.findInfo(CurveInfoType.of("Rubbish"))).isEqualTo(Optional.empty()); assertThat(test.getParameterMetadata().isPresent()).isTrue(); assertThat(test.getParameterMetadata().get()).containsExactly(ParameterMetadata.empty()); }
public void prices_curveNameParams() { CurveMetadata test = Curves.prices(CURVE_NAME, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.MONTHS) .yValueType(ValueType.PRICE_INDEX) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); }
public void test_metadata() { InflationNodalCurveDefinition test = new InflationNodalCurveDefinition( UNDERLYING_DEF, LAST_FIX_MONTH, LAST_FIX_VALUE, SEASONALITY_DEF); DefaultCurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.PRICE_INDEX) .dayCount(ACT_365F) .parameterMetadata(NODES.get(0).metadata(VAL_DATE, REF_DATA), NODES.get(1).metadata(VAL_DATE, REF_DATA)) .build(); assertEquals(test.metadata(VAL_DATE, REF_DATA), expected); }
public void forwardRates_curveNameParams() { CurveMetadata test = Curves.forwardRates(CURVE_NAME, ACT_360, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.FORWARD_RATE) .dayCount(ACT_360) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); }
public void sabrParameterByExpiry_curveNameParams() { CurveMetadata test = Curves.sabrParameterByExpiry(CURVE_NAME, ACT_365F, ValueType.SABR_NU, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.SABR_NU) .dayCount(ACT_365F) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); }
public void blackVolatilityByExpiry_curveNameParams() { CurveMetadata test = Curves.blackVolatilityByExpiry(CURVE_NAME, ACT_360, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.BLACK_VOLATILITY) .dayCount(ACT_360) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); }
public void zeroRates_curveNameParams() { CurveMetadata test = Curves.zeroRates(CURVE_NAME, ACT_360, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(ACT_360) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); }
public void discountFactors_curveNameParams() { CurveMetadata test = Curves.discountFactors(CURVE_NAME, ACT_360, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .dayCount(ACT_360) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); }
public void recoveryRates_curveNameParams() { CurveMetadata test = Curves.recoveryRates(CURVE_NAME, ACT_360, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.RECOVERY_RATE) .dayCount(ACT_360) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); }
public void underlyingCurve() { assertEquals(ADD_FIXED_CURVE.split(), ImmutableList.of(FIXED_CURVE, SPREAD_CURVE)); CurveMetadata metadata = DefaultCurveMetadata.builder() .curveName(CurveName.of("newCurve")) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(ACT_365F) .parameterMetadata(PARAM_METADATA_SPREAD) .build(); InterpolatedNodalCurve newCurve = InterpolatedNodalCurve.of( metadata, XVALUES_SPREAD, YVALUES_SPREAD, INTERPOLATOR); assertEquals( ADD_FIXED_CURVE.withUnderlyingCurve(0, newCurve), AddFixedCurve.of(newCurve, SPREAD_CURVE)); assertEquals( ADD_FIXED_CURVE.withUnderlyingCurve(1, newCurve), AddFixedCurve.of(FIXED_CURVE, newCurve)); assertThrowsIllegalArg(() -> ADD_FIXED_CURVE.withUnderlyingCurve(2, newCurve)); }
public void test_underlyingCurves() { CurveMetadata metadata = DefaultCurveMetadata.builder() .curveName("newCurve") .xValueType(YEAR_FRACTION) .yValueType(ZERO_RATE) .dayCount(ACT_365F) .parameterMetadata(PARAM_METADATA_SPREAD) .build(); InterpolatedNodalCurve newCurve = InterpolatedNodalCurve.of( metadata, XVALUES_SPREAD, YVALUES_SPREAD, NATURAL_CUBIC_SPLINE, LINEAR, LINEAR); assertEquals( COMBINED_CURVE.withUnderlyingCurve(0, newCurve), CombinedCurve.of(newCurve, SPREAD_CURVE, COMBINED_CURVE.getMetadata())); assertEquals( COMBINED_CURVE.withUnderlyingCurve(1, newCurve), CombinedCurve.of(BASE_CURVE, newCurve, COMBINED_CURVE.getMetadata())); assertEquals(COMBINED_CURVE.split(), ImmutableList.of(BASE_CURVE, SPREAD_CURVE)); assertThrowsIllegalArg(() -> COMBINED_CURVE.withUnderlyingCurve(2, newCurve)); }
public void coverage() { DefaultCurveMetadata test = DefaultCurveMetadata.of(CURVE_NAME); coverImmutableBean(test); DefaultCurveMetadata test2 = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .dayCount(ACT_360) .jacobian(JACOBIAN_DATA) .parameterMetadata(ParameterMetadata.empty()) .build(); coverBeanEquals(test, test2); }