public void test_ofCurves_missingCurve() { CurveGroupDefinition definition = CurveGroupDefinition.builder() .name(CurveGroupName.of("group")) .addCurve(DISCOUNT_NAME, GBP, GBP_LIBOR_1M) .addForwardCurve(IBOR_NAME, USD_LIBOR_1M, USD_LIBOR_2M) .addForwardCurve(OVERNIGHT_NAME, EUR_EONIA) .build(); assertThrowsIllegalArg( () -> CurveGroup.ofCurves(definition, DISCOUNT_CURVE, IBOR_CURVE), "No curve found named 'Overnight' when building curve group 'group'"); }
public void test_ofCurves() { CurveGroupDefinition definition = CurveGroupDefinition.builder() .name(CurveGroupName.of("group")) .addCurve(DISCOUNT_NAME, GBP, GBP_LIBOR_1M) .addForwardCurve(IBOR_NAME, USD_LIBOR_1M, USD_LIBOR_2M) .addForwardCurve(OVERNIGHT_NAME, EUR_EONIA) .build(); CurveGroup group = CurveGroup.ofCurves(definition, DISCOUNT_CURVE, OVERNIGHT_CURVE, IBOR_CURVE); assertThat(group.findDiscountCurve(GBP)).hasValue(DISCOUNT_CURVE); assertThat(group.findForwardCurve(USD_LIBOR_1M)).hasValue(IBOR_CURVE); assertThat(group.findForwardCurve(USD_LIBOR_2M)).hasValue(IBOR_CURVE); assertThat(group.findForwardCurve(EUR_EONIA)).hasValue(OVERNIGHT_CURVE); }
/** Test {@link CurveGroup}. */ @Test public class CurveGroupTest { private static final CurveGroupName NAME = CurveGroupName.of("TestGroup"); private static final CurveGroupName NAME2 = CurveGroupName.of("TestGroup2"); private static final CurveName DISCOUNT_NAME = CurveName.of("Discount"); private static final CurveName IBOR_NAME = CurveName.of("Ibor"); private static final CurveName OVERNIGHT_NAME = CurveName.of("Overnight"); private static final Curve DISCOUNT_CURVE = ConstantNodalCurve.of("Discount", 0.99); private static final Map<Currency, Curve> DISCOUNT_CURVES = ImmutableMap.of(GBP, DISCOUNT_CURVE); private static final Curve IBOR_CURVE = ConstantNodalCurve.of("Ibor", 0.5); private static final Curve OVERNIGHT_CURVE = ConstantNodalCurve.of("Overnight", 0.6); private static final Map<Index, Curve> IBOR_CURVES = ImmutableMap.of(GBP_LIBOR_3M, IBOR_CURVE); // ------------------------------------------------------------------------- public void test_of() { CurveGroup test = CurveGroup.of(NAME, DISCOUNT_CURVES, IBOR_CURVES); assertThat(test.getName()).isEqualTo(NAME); assertThat(test.getDiscountCurves()).isEqualTo(DISCOUNT_CURVES); assertThat(test.getForwardCurves()).isEqualTo(IBOR_CURVES); assertThat(test.findDiscountCurve(GBP)).hasValue(DISCOUNT_CURVE); assertThat(test.findDiscountCurve(USD)).isEmpty(); assertThat(test.findForwardCurve(GBP_LIBOR_3M)).hasValue(IBOR_CURVE); assertThat(test.findForwardCurve(CHF_LIBOR_3M)).isEmpty(); } public void test_builder() { CurveGroup test = CurveGroup.builder() .name(NAME) .discountCurves(DISCOUNT_CURVES) .forwardCurves(IBOR_CURVES) .build(); assertThat(test.getName()).isEqualTo(NAME); assertThat(test.getDiscountCurves()).isEqualTo(DISCOUNT_CURVES); assertThat(test.getForwardCurves()).isEqualTo(IBOR_CURVES); assertThat(test.findDiscountCurve(GBP)).hasValue(DISCOUNT_CURVE); assertThat(test.findDiscountCurve(USD)).isEmpty(); assertThat(test.findForwardCurve(GBP_LIBOR_3M)).hasValue(IBOR_CURVE); assertThat(test.findForwardCurve(CHF_LIBOR_3M)).isEmpty(); } public void test_ofCurves() { CurveGroupDefinition definition = CurveGroupDefinition.builder() .name(CurveGroupName.of("group")) .addCurve(DISCOUNT_NAME, GBP, GBP_LIBOR_1M) .addForwardCurve(IBOR_NAME, USD_LIBOR_1M, USD_LIBOR_2M) .addForwardCurve(OVERNIGHT_NAME, EUR_EONIA) .build(); CurveGroup group = CurveGroup.ofCurves(definition, DISCOUNT_CURVE, OVERNIGHT_CURVE, IBOR_CURVE); assertThat(group.findDiscountCurve(GBP)).hasValue(DISCOUNT_CURVE); assertThat(group.findForwardCurve(USD_LIBOR_1M)).hasValue(IBOR_CURVE); assertThat(group.findForwardCurve(USD_LIBOR_2M)).hasValue(IBOR_CURVE); assertThat(group.findForwardCurve(EUR_EONIA)).hasValue(OVERNIGHT_CURVE); } public void test_ofCurves_missingCurve() { CurveGroupDefinition definition = CurveGroupDefinition.builder() .name(CurveGroupName.of("group")) .addCurve(DISCOUNT_NAME, GBP, GBP_LIBOR_1M) .addForwardCurve(IBOR_NAME, USD_LIBOR_1M, USD_LIBOR_2M) .addForwardCurve(OVERNIGHT_NAME, EUR_EONIA) .build(); assertThrowsIllegalArg( () -> CurveGroup.ofCurves(definition, DISCOUNT_CURVE, IBOR_CURVE), "No curve found named 'Overnight' when building curve group 'group'"); } // ------------------------------------------------------------------------- public void coverage() { CurveGroup test = CurveGroup.of(NAME, DISCOUNT_CURVES, IBOR_CURVES); coverImmutableBean(test); CurveGroup test2 = CurveGroup.of(NAME2, ImmutableMap.of(), ImmutableMap.of()); coverBeanEquals(test, test2); } public void test_serialization() { CurveGroup test = CurveGroup.of(NAME, DISCOUNT_CURVES, IBOR_CURVES); assertSerialization(test); } }