/** * 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.basics.date.DayCounts.ACT_360; import static com.opengamma.strata.basics.date.DayCounts.ACT_365F; import static com.opengamma.strata.collect.TestHelper.coverPrivateConstructor; import static org.testng.Assert.assertEquals; import java.util.List; import org.testng.annotations.Test; import com.google.common.collect.ImmutableList; import com.opengamma.strata.basics.date.DayCounts; import com.opengamma.strata.market.ValueType; import com.opengamma.strata.market.param.ParameterMetadata; /** * Test {@link Curves}. */ @Test public class CurvesTest { private static final String NAME = "Foo"; private static final CurveName CURVE_NAME = CurveName.of(NAME); private static final List<ParameterMetadata> PARAMS = ImmutableList.of(); //------------------------------------------------------------------------- public void zeroRates_string() { CurveMetadata test = Curves.zeroRates(NAME, ACT_360); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(ACT_360) .build(); assertEquals(test, expected); } public void zeroRates_curveName() { CurveMetadata test = Curves.zeroRates(CURVE_NAME, ACT_360); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(ACT_360) .build(); assertEquals(test, expected); } public void zeroRates_curveNameParams() { CurveMetadata test = Curves.zeroRates(CURVE_NAME, ACT_360, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(ACT_360) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); } //------------------------------------------------------------------------- public void forwardRates_string() { CurveMetadata test = Curves.forwardRates(NAME, ACT_360); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.FORWARD_RATE) .dayCount(ACT_360) .build(); assertEquals(test, expected); } public void forwardRates_curveName() { CurveMetadata test = Curves.forwardRates(CURVE_NAME, ACT_360); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.FORWARD_RATE) .dayCount(ACT_360) .build(); assertEquals(test, expected); } public void forwardRates_curveNameParams() { CurveMetadata test = Curves.forwardRates(CURVE_NAME, ACT_360, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.FORWARD_RATE) .dayCount(ACT_360) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); } //------------------------------------------------------------------------- public void discountFactors_string() { CurveMetadata test = Curves.discountFactors(NAME, ACT_360); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .dayCount(ACT_360) .build(); assertEquals(test, expected); } public void discountFactors_curveName() { CurveMetadata test = Curves.discountFactors(CURVE_NAME, ACT_360); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .dayCount(ACT_360) .build(); assertEquals(test, expected); } public void discountFactors_curveNameParams() { CurveMetadata test = Curves.discountFactors(CURVE_NAME, ACT_360, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .dayCount(ACT_360) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); } //------------------------------------------------------------------------- public void prices_string() { CurveMetadata test = Curves.prices(NAME); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.MONTHS) .yValueType(ValueType.PRICE_INDEX) .build(); assertEquals(test, expected); } public void prices_curveName() { CurveMetadata test = Curves.prices(CURVE_NAME); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.MONTHS) .yValueType(ValueType.PRICE_INDEX) .build(); assertEquals(test, expected); } public void prices_curveNameParams() { CurveMetadata test = Curves.prices(CURVE_NAME, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.MONTHS) .yValueType(ValueType.PRICE_INDEX) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); } //------------------------------------------------------------------------- public void isdaCredit_curveNameParams() { CurveMetadata test = Curves.isdaCredit(CURVE_NAME, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ISDA_CREDIT) .dayCount(DayCounts.ACT_365F) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); } //------------------------------------------------------------------------- public void sabrParameterByExpiry_string() { CurveMetadata test = Curves.sabrParameterByExpiry(NAME, ACT_365F, ValueType.SABR_ALPHA); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.SABR_ALPHA) .dayCount(ACT_365F) .build(); assertEquals(test, expected); } public void sabrParameterByExpiry_curveName() { CurveMetadata test = Curves.sabrParameterByExpiry(CURVE_NAME, ACT_365F, ValueType.SABR_BETA); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.SABR_BETA) .dayCount(ACT_365F) .build(); assertEquals(test, expected); } public void sabrParameterByExpiry_curveNameParams() { CurveMetadata test = Curves.sabrParameterByExpiry(CURVE_NAME, ACT_365F, ValueType.SABR_NU, PARAMS); CurveMetadata expected = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.SABR_NU) .dayCount(ACT_365F) .parameterMetadata(PARAMS) .build(); assertEquals(test, expected); } //------------------------------------------------------------------------- public void coverage() { coverPrivateConstructor(Curves.class); } }