/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.provider.description.interestrate; import static com.opengamma.analytics.financial.instrument.TestInstrumentDefinitionsAndDerivatives.IBOR_INDEX_1; import static com.opengamma.analytics.financial.instrument.TestInstrumentDefinitionsAndDerivatives.INDEX_ON; import java.util.List; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import com.opengamma.analytics.financial.model.interestrate.curve.YieldAndDiscountCurve; import com.opengamma.util.money.Currency; import com.opengamma.util.test.TestGroup; @Test(groups = TestGroup.UNIT) public class MulticurveProviderDiscountTest { private MulticurveProviderDiscount _provider; @BeforeMethod public void setup() { _provider = new MulticurveProviderDiscount(); } @Test(expectedExceptions = IllegalArgumentException.class) public void testAddingDifferentDiscountingCurveWithSameCurrencyFails() { _provider.setCurve(Currency.USD, mockCurve("test")); _provider.setCurve(Currency.USD, mockCurve("test2")); } @Test public void testAddingSameDiscountingCurveWithSameCurrencySucceeds() { YieldAndDiscountCurve test = mockCurve("test"); _provider.setCurve(Currency.USD, test); _provider.setCurve(Currency.USD, test); } @Test(expectedExceptions = IllegalArgumentException.class) public void testAddingDifferentForwardIborCurveWithSameIndexFails() { _provider.setCurve(IBOR_INDEX_1, mockCurve("test")); _provider.setCurve(IBOR_INDEX_1, mockCurve("test2")); } @Test public void testAddingSameForwardIborCurveWithSameIndexSucceeds() { YieldAndDiscountCurve test = mockCurve("test"); _provider.setCurve(IBOR_INDEX_1, test); _provider.setCurve(IBOR_INDEX_1, test); } @Test(expectedExceptions = IllegalArgumentException.class) public void testAddingDifferentForwardONCurveWithSameIndexFails() { _provider.setCurve(INDEX_ON, mockCurve("test")); _provider.setCurve(INDEX_ON, mockCurve("test2")); } @Test public void testAddingSameForwardONCurveWithSameIndexSucceeds() { YieldAndDiscountCurve test = mockCurve("test"); _provider.setCurve(INDEX_ON, test); _provider.setCurve(INDEX_ON, test); } private YieldAndDiscountCurve mockCurve(final String name) { return new YieldAndDiscountCurve(name) { @Override public double getForwardRate(double t) { return 0; } @Override public double[] getInterestRateParameterSensitivity(double time) { return new double[0]; } @Override public int getNumberOfParameters() { return 0; } @Override public List<String> getUnderlyingCurvesNames() { return null; } @Override public double getInterestRate(Double x) { return 0; } }; } }