/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.market.curve; import static com.opengamma.strata.collect.TestHelper.assertSerialization; import static com.opengamma.strata.collect.TestHelper.coverBeanEquals; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; import static org.assertj.core.api.Assertions.assertThat; import org.testng.annotations.Test; import com.opengamma.strata.market.param.ParameterMetadata; /** * Test {@link ConstantCurve}. */ @Test public class ConstantCurveTest { private static final String NAME = "TestCurve"; private static final CurveName CURVE_NAME = CurveName.of(NAME); private static final CurveMetadata METADATA = DefaultCurveMetadata.of(CURVE_NAME); private static final CurveMetadata METADATA2 = DefaultCurveMetadata.of("Test2"); private static final double VALUE = 6d; //------------------------------------------------------------------------- public void test_of_String() { ConstantCurve test = ConstantCurve.of(NAME, VALUE); assertThat(test.getName()).isEqualTo(CURVE_NAME); assertThat(test.getYValue()).isEqualTo(VALUE); assertThat(test.getParameterCount()).isEqualTo(1); assertThat(test.getParameter(0)).isEqualTo(VALUE); assertThat(test.getParameterMetadata(0)).isEqualTo(ParameterMetadata.empty()); assertThat(test.withParameter(0, 2d)).isEqualTo(ConstantCurve.of(NAME, 2d)); assertThat(test.withPerturbation((i, v, m) -> v + 1d)).isEqualTo(ConstantCurve.of(NAME, VALUE + 1d)); assertThat(test.getMetadata()).isEqualTo(METADATA); assertThat(test.withMetadata(METADATA2)).isEqualTo(ConstantCurve.of(METADATA2, VALUE)); } public void test_of_CurveName() { ConstantCurve test = ConstantCurve.of(CURVE_NAME, VALUE); assertThat(test.getName()).isEqualTo(CURVE_NAME); assertThat(test.getYValue()).isEqualTo(VALUE); assertThat(test.getParameterCount()).isEqualTo(1); assertThat(test.getParameter(0)).isEqualTo(VALUE); assertThat(test.getParameterMetadata(0)).isEqualTo(ParameterMetadata.empty()); assertThat(test.withParameter(0, 2d)).isEqualTo(ConstantCurve.of(NAME, 2d)); assertThat(test.getMetadata()).isEqualTo(METADATA); assertThat(test.withMetadata(METADATA2)).isEqualTo(ConstantCurve.of(METADATA2, VALUE)); } public void test_of_CurveMetadata() { ConstantCurve test = ConstantCurve.of(METADATA, VALUE); assertThat(test.getName()).isEqualTo(CURVE_NAME); assertThat(test.getYValue()).isEqualTo(VALUE); assertThat(test.getParameterCount()).isEqualTo(1); assertThat(test.getParameter(0)).isEqualTo(VALUE); assertThat(test.getParameterMetadata(0)).isEqualTo(ParameterMetadata.empty()); assertThat(test.withParameter(0, 2d)).isEqualTo(ConstantCurve.of(NAME, 2d)); assertThat(test.getMetadata()).isEqualTo(METADATA); assertThat(test.withMetadata(METADATA2)).isEqualTo(ConstantCurve.of(METADATA2, VALUE)); } //------------------------------------------------------------------------- public void test_lookup() { ConstantCurve test = ConstantCurve.of(CURVE_NAME, VALUE); assertThat(test.yValue(0d)).isEqualTo(VALUE); assertThat(test.yValue(-10d)).isEqualTo(VALUE); assertThat(test.yValue(100d)).isEqualTo(VALUE); assertThat(test.yValueParameterSensitivity(0d).getSensitivity().toArray()).containsExactly(1d); assertThat(test.yValueParameterSensitivity(-10d).getSensitivity().toArray()).containsExactly(1d); assertThat(test.yValueParameterSensitivity(100d).getSensitivity().toArray()).containsExactly(1d); assertThat(test.firstDerivative(0d)).isEqualTo(0d); assertThat(test.firstDerivative(-10d)).isEqualTo(0d); assertThat(test.firstDerivative(100d)).isEqualTo(0d); } //------------------------------------------------------------------------- public void coverage() { ConstantCurve test = ConstantCurve.of(CURVE_NAME, VALUE); coverImmutableBean(test); ConstantCurve test2 = ConstantCurve.of("Coverage", 9d); coverBeanEquals(test, test2); } public void test_serialization() { ConstantCurve test = ConstantCurve.of(CURVE_NAME, VALUE); assertSerialization(test); } }