/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.pricer.curve; import static com.opengamma.strata.collect.TestHelper.assertThrowsIllegalArg; import static org.assertj.core.api.Assertions.assertThat; import org.testng.annotations.Test; import com.google.common.collect.ImmutableList; import com.opengamma.strata.pricer.datasets.ImmutableRatesProviderSimpleData; import com.opengamma.strata.pricer.swap.SwapDummyData; import com.opengamma.strata.product.deposit.ResolvedIborFixingDepositTrade; import com.opengamma.strata.product.deposit.ResolvedTermDepositTrade; import com.opengamma.strata.product.fra.ResolvedFraTrade; import com.opengamma.strata.product.fx.ResolvedFxSwapTrade; import com.opengamma.strata.product.index.ResolvedIborFutureTrade; import com.opengamma.strata.product.swap.ResolvedSwapTrade; /** * Test {@link CalibrationMeasures}. */ @Test public class CalibrationMeasuresTest { //------------------------------------------------------------------------- public void test_PAR_SPREAD() { assertThat(CalibrationMeasures.PAR_SPREAD.getName()).isEqualTo("ParSpread"); assertThat(CalibrationMeasures.PAR_SPREAD.getTradeTypes()).contains( ResolvedFraTrade.class, ResolvedFxSwapTrade.class, ResolvedIborFixingDepositTrade.class, ResolvedIborFutureTrade.class, ResolvedSwapTrade.class, ResolvedTermDepositTrade.class); } public void test_MARKET_QUOTE() { assertThat(CalibrationMeasures.MARKET_QUOTE.getName()).isEqualTo("MarketQuote"); assertThat(CalibrationMeasures.MARKET_QUOTE.getTradeTypes()).contains( ResolvedFraTrade.class, ResolvedIborFixingDepositTrade.class, ResolvedIborFutureTrade.class, ResolvedSwapTrade.class, ResolvedTermDepositTrade.class); } //------------------------------------------------------------------------- public void test_of_array() { CalibrationMeasures test = CalibrationMeasures.of( "Test", TradeCalibrationMeasure.FRA_PAR_SPREAD, TradeCalibrationMeasure.SWAP_PAR_SPREAD); assertThat(test.getName()).isEqualTo("Test"); assertThat(test.getTradeTypes()).containsOnly(ResolvedFraTrade.class, ResolvedSwapTrade.class); assertThat(test.toString()).isEqualTo("Test"); } public void test_of_list() { CalibrationMeasures test = CalibrationMeasures.of( "Test", ImmutableList.of(TradeCalibrationMeasure.FRA_PAR_SPREAD, TradeCalibrationMeasure.SWAP_PAR_SPREAD)); assertThat(test.getName()).isEqualTo("Test"); assertThat(test.getTradeTypes()).containsOnly(ResolvedFraTrade.class, ResolvedSwapTrade.class); assertThat(test.toString()).isEqualTo("Test"); } public void test_of_duplicate() { assertThrowsIllegalArg(() -> CalibrationMeasures.of( "Test", TradeCalibrationMeasure.FRA_PAR_SPREAD, TradeCalibrationMeasure.FRA_PAR_SPREAD)); assertThrowsIllegalArg(() -> CalibrationMeasures.of( "Test", ImmutableList.of(TradeCalibrationMeasure.FRA_PAR_SPREAD, TradeCalibrationMeasure.FRA_PAR_SPREAD))); } public void test_measureNotKnown() { CalibrationMeasures test = CalibrationMeasures.of("Test", TradeCalibrationMeasure.FRA_PAR_SPREAD); assertThrowsIllegalArg( () -> test.value(SwapDummyData.SWAP_TRADE, ImmutableRatesProviderSimpleData.IMM_PROV_EUR_FIX), "Trade type 'ResolvedSwapTrade' is not supported for calibration"); } }