public void test_builder_noParamMetadata() { ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(NODES) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.getName(), CURVE_NAME); assertEquals(test.getXValueType(), ValueType.YEAR_FRACTION); assertEquals(test.getYValueType(), ValueType.ZERO_RATE); assertEquals(test.getDayCount(), Optional.of(ACT_365F)); assertEquals(test.getNodes(), NODES); assertEquals(test.getValueFunction(), VALUE_FUNCTION); assertEquals(test.getDerivativeFunction(), DERIVATIVE_FUNCTION); assertEquals(test.getSensitivityFunction(), SENSITIVITY_FUNCTION); assertEquals(test.getInitialGuess(), INITIAL_PARAMS); assertEquals(test.getParameterCount(), 3); assertEquals(test.getParameterMetadata(), ParameterMetadata.listOfEmpty(3)); }
public void test_builder() { ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(NODES) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.getName(), CURVE_NAME); assertEquals(test.getXValueType(), ValueType.YEAR_FRACTION); assertEquals(test.getYValueType(), ValueType.ZERO_RATE); assertEquals(test.getDayCount(), Optional.of(ACT_365F)); assertEquals(test.getNodes(), NODES); assertEquals(test.getValueFunction(), VALUE_FUNCTION); assertEquals(test.getDerivativeFunction(), DERIVATIVE_FUNCTION); assertEquals(test.getSensitivityFunction(), SENSITIVITY_FUNCTION); assertEquals(test.getInitialGuess(), INITIAL_PARAMS); assertEquals(test.getParameterCount(), 3); assertEquals(test.getParameterMetadata(), PARAM_METADATA); }
public void test_toCurveParameterSize() { ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(NODES) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.toCurveParameterSize(), CurveParameterSize.of(CURVE_NAME, INITIAL_PARAMS.size())); }
public void test_filtered_dropOther_middle() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(3), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(4), GBP_LIBOR_1M, TICKER, DROP_OTHER_2D); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.filtered(VAL_DATE, REF_DATA).getNodes(), ImmutableList.of(node2, node3)); }
public void test_filtered_dropOther_atStart() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(3), GBP_LIBOR_1M, TICKER, DROP_OTHER_2D); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(4), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.filtered(VAL_DATE, REF_DATA).getNodes(), ImmutableList.of(node1, node3)); }
public void test_filtered_dropThis_middle() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(3), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(4), GBP_LIBOR_1M, TICKER, DROP_THIS_2D); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.filtered(VAL_DATE, REF_DATA).getNodes(), ImmutableList.of(node1, node3)); }
public void test_filtered_dropThis_atStart() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(3), GBP_LIBOR_1M, TICKER, DROP_THIS_2D); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(4), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.filtered(VAL_DATE, REF_DATA).getNodes(), ImmutableList.of(node2, node3)); }
public void test_filtered_dropThis_atEnd() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(5), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(10), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER, DROP_THIS_2D); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.filtered(VAL_DATE, REF_DATA).getNodes(), ImmutableList.of(node1, node2)); }
public void test_filtered_dropOther_atEnd() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(5), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(10), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER, DROP_OTHER_2D); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.filtered(VAL_DATE, REF_DATA).getNodes(), ImmutableList.of(node1, node3)); }
public void test_filtered_dropOther_multiple() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(5), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(10), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node4 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER, DROP_OTHER_2D); DummyFraCurveNode node5 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node6 = DummyFraCurveNode.of(Period.ofDays(15), GBP_LIBOR_1M, TICKER); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3, node4, node5, node6); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertEquals(test.filtered(VAL_DATE, REF_DATA).getNodes(), ImmutableList.of(node1, node4, node6)); }
public void test_filtered_exception_atStart() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(3), GBP_LIBOR_1M, TICKER, EXCEPTION_2D); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(4), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertThrowsIllegalArg(() -> test.filtered(VAL_DATE, REF_DATA), "Curve node dates clash.*"); }
public void coverage() { ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) ParameterizedFunctionalCurveDefinition test2 = ParameterizedFunctionalCurveDefinition.builder() .dayCount(DayCounts.ACT_365L) .valueFunction(value)
public void test_filtered_exception_atEnd() { DummyFraCurveNode node1 = DummyFraCurveNode.of(Period.ofDays(5), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node2 = DummyFraCurveNode.of(Period.ofDays(10), GBP_LIBOR_1M, TICKER); DummyFraCurveNode node3 = DummyFraCurveNode.of(Period.ofDays(11), GBP_LIBOR_1M, TICKER, EXCEPTION_2D); ImmutableList<DummyFraCurveNode> nodes = ImmutableList.of(node1, node2, node3); ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(nodes) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); assertThrowsIllegalArg(() -> test.filtered(VAL_DATE, REF_DATA), "Curve node dates clash.*"); }
public void test_metadata() { ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(NODES) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); DefaultCurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(ACT_365F) .parameterMetadata(PARAM_METADATA) .build(); assertEquals(test.metadata(VAL_DATE, REF_DATA), expected); }
public void test_curve() { ParameterizedFunctionalCurveDefinition test = ParameterizedFunctionalCurveDefinition.builder() .dayCount(ACT_365F) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .initialGuess(INITIAL_PARAMS) .name(CURVE_NAME) .nodes(NODES) .parameterMetadata(PARAM_METADATA) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .build(); DefaultCurveMetadata metadata = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(ACT_365F) .parameterMetadata(PARAM_METADATA) .build(); DoubleArray parameters = DoubleArray.of(1d, 1.5d, -0.5d); ParameterizedFunctionalCurve expected = ParameterizedFunctionalCurve.builder() .metadata(metadata) .valueFunction(VALUE_FUNCTION) .derivativeFunction(DERIVATIVE_FUNCTION) .sensitivityFunction(SENSITIVITY_FUNCTION) .parameters(parameters) .build(); assertEquals(test.curve(VAL_DATE, metadata, parameters), expected); }