@Override public CurrencyParameterSensitivity createParameterSensitivity(Currency currency, DoubleArray sensitivities) { return CurrencyParameterSensitivity.of(getName(), parameterMetadata, currency, sensitivities); }
/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(ConstantNodalCurve beanToCopy) { this.metadata = beanToCopy.getMetadata(); this.xValue = beanToCopy.getXValue(); this.yValue = beanToCopy.getYValue(); }
@Override public ConstantNodalCurve withPerturbation(ParameterPerturbation perturbation) { double perturbedValue = perturbation.perturbParameter(0, yValue, getParameterMetadata(0)); return new ConstantNodalCurve(metadata, xValue, perturbedValue); }
public void test_of_CurveMetadata() { ConstantNodalCurve test = ConstantNodalCurve.of(METADATA_ENTRIES, XVALUE, YVALUE); ConstantNodalCurve testRe = ConstantNodalCurve.of(METADATA_ENTRIES, XVALUE, YVALUE); assertThat(test).isEqualTo(testRe); assertThat(test.getName()).isEqualTo(CURVE_NAME); assertThat(test.getParameterCount()).isEqualTo(SIZE); assertThat(test.getParameter(0)).isEqualTo(YVALUE); assertThrowsIllegalArg(() -> test.getParameter(1)); assertThat(test.getParameterMetadata(0)).isSameAs(METADATA_ENTRIES.getParameterMetadata().get().get(0)); assertThat(test.withParameter(0, 2d)).isEqualTo(ConstantNodalCurve.of(METADATA_ENTRIES, XVALUE, 2d)); assertThrowsIllegalArg(() -> test.withParameter(1, 2d)); assertThat(test.withPerturbation((i, v, m) -> v - 2d)).isEqualTo( ConstantNodalCurve.of(METADATA_ENTRIES, XVALUE, YVALUE_BUMPED)); assertThat(test.getMetadata()).isEqualTo(METADATA_ENTRIES); assertThat(test.getXValues()).isEqualTo(XVALUE_ARRAY); assertThat(test.getYValues()).isEqualTo(YVALUE_ARRAY); }
public void test_withMetadata() { ConstantNodalCurve base = ConstantNodalCurve.of(METADATA, XVALUE, YVALUE); ConstantNodalCurve test = base.withMetadata(METADATA_ENTRIES); assertThat(test.getName()).isEqualTo(CURVE_NAME); assertThat(test.getParameterCount()).isEqualTo(SIZE); assertThat(test.getMetadata()).isEqualTo(METADATA_ENTRIES); assertThat(test.getXValues()).isEqualTo(XVALUE_ARRAY); assertThat(test.getYValues()).isEqualTo(YVALUE_ARRAY); }
public void test_withValues() { ConstantNodalCurve base = ConstantNodalCurve.of(METADATA, XVALUE, YVALUE); ConstantNodalCurve test = base.withYValues(YVALUE_BUMPED_ARRAY); assertThat(test.getName()).isEqualTo(CURVE_NAME); assertThat(test.getParameterCount()).isEqualTo(SIZE); assertThat(test.getMetadata()).isEqualTo(METADATA); assertThat(test.getXValues()).isEqualTo(XVALUE_ARRAY); assertThat(test.getYValues()).isEqualTo(YVALUE_BUMPED_ARRAY); }
public void test_withValuesXy() { ConstantNodalCurve base = ConstantNodalCurve.of(METADATA, XVALUE, YVALUE); ConstantNodalCurve test = base.withValues(XVALUE_ARRAY_NEW, YVALUE_BUMPED_ARRAY); assertThat(test.getName()).isEqualTo(CURVE_NAME); assertThat(test.getParameterCount()).isEqualTo(SIZE); assertThat(test.getMetadata()).isEqualTo(METADATA); assertThat(test.getXValues()).isEqualTo(XVALUE_ARRAY_NEW); assertThat(test.getYValues()).isEqualTo(YVALUE_BUMPED_ARRAY); }
public void test_of_noCurveMetadata() { ConstantNodalCurve test = ConstantNodalCurve.of(METADATA_NOPARAM, XVALUE, YVALUE); assertThat(test.getName()).isEqualTo(CURVE_NAME); assertThat(test.getParameterCount()).isEqualTo(SIZE); assertThat(test.getParameter(0)).isEqualTo(YVALUE); assertThat(test.getParameterMetadata(0)).isEqualTo(SimpleCurveParameterMetadata.of(ValueType.YEAR_FRACTION, XVALUE)); }
public void test_withNode() { ConstantNodalCurve base = ConstantNodalCurve.of(METADATA_ENTRIES, XVALUE, YVALUE); SimpleCurveParameterMetadata param = SimpleCurveParameterMetadata.of(ValueType.YEAR_FRACTION, XVALUE); ConstantNodalCurve test = base.withNode(XVALUE, 2d, param); assertThat(test.getXValue()).isEqualTo(XVALUE); assertThat(test.getYValue()).isEqualTo(2d); assertThat(test.getParameterMetadata(0)).isEqualTo(param); }
public void test_values() { ConstantNodalCurve test = ConstantNodalCurve.of(METADATA, XVALUE, YVALUE); assertThat(test.yValue(10.2421)).isEqualTo(YVALUE); assertThat(test.yValueParameterSensitivity(10.2421).getMarketDataName()).isEqualTo(CURVE_NAME); assertThat(test.yValueParameterSensitivity(10.2421).getSensitivity()).isEqualTo(DoubleArray.of(1d)); assertThat(test.firstDerivative(10.2421)).isEqualTo(0d); }
public void test_withMetadata_badSize() { ConstantNodalCurve base = ConstantNodalCurve.of(METADATA, XVALUE, YVALUE); assertThrowsIllegalArg(() -> base.withMetadata(METADATA_ENTRIES2)); }
public void test_withValues_badSize() { ConstantNodalCurve base = ConstantNodalCurve.of(METADATA, XVALUE, YVALUE); assertThrowsIllegalArg(() -> base.withYValues(DoubleArray.EMPTY)); assertThrowsIllegalArg(() -> base.withYValues(DoubleArray.of(4d, 6d))); }
public void test_withValuesXy_badSize() { ConstantNodalCurve base = ConstantNodalCurve.of(METADATA, XVALUE, YVALUE); assertThrowsIllegalArg(() -> base.withValues(DoubleArray.EMPTY, DoubleArray.EMPTY)); assertThrowsIllegalArg(() -> base.withValues(DoubleArray.of(4d), DoubleArray.of(6d, 0d))); }
@Override public ConstantNodalCurve build() { return new ConstantNodalCurve( metadata, xValue, yValue); }
@ImmutableConstructor private ConstantNodalCurve( CurveMetadata metadata, double xValue, double yValue) { JodaBeanUtils.notNull(metadata, "metadata"); metadata.getParameterMetadata().ifPresent(params -> { if (params.size() != 1) { throw new IllegalArgumentException("Length of parameter metadata must be 1"); } }); this.metadata = metadata; this.xValue = xValue; this.yValue = yValue; this.parameterMetadata = ImmutableList.of(getParameterMetadata(0)); }
@Override public UnitParameterSensitivity yValueParameterSensitivity(double x) { return createParameterSensitivity(DoubleArray.of(1d)); }
public void test_serialization() { ConstantNodalCurve test = ConstantNodalCurve.of(METADATA, XVALUE, YVALUE); assertSerialization(test); }
@Override public ConstantNodalCurve withMetadata(CurveMetadata metadata) { return new ConstantNodalCurve(metadata, xValue, yValue); }