//------------------------------------------------------------------------- public virtual 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); }
private readonly IList <ParameterMetadata> parameterMetadata; // derived, not a property //------------------------------------------------------------------------- /// <summary> /// Obtains an instance. /// </summary> /// <param name="metadata"> the metadata </param> /// <param name="parameters"> the parameters </param> /// <param name="valueFunction"> the value function </param> /// <param name="derivativeFunction"> the derivative function </param> /// <param name="sensitivityFunction"> the parameter sensitivity function </param> /// <returns> the instance </returns> public static ParameterizedFunctionalCurve of(CurveMetadata metadata, DoubleArray parameters, System.Func <DoubleArray, double, double> valueFunction, System.Func <DoubleArray, double, double> derivativeFunction, System.Func <DoubleArray, double, DoubleArray> sensitivityFunction) { return(ParameterizedFunctionalCurve.builder().metadata(metadata).parameters(parameters).valueFunction(valueFunction).derivativeFunction(derivativeFunction).sensitivityFunction(sensitivityFunction).build()); }