/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.ircurve; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import java.util.Map; import org.testng.annotations.Test; import com.opengamma.core.id.ExternalSchemes; import com.opengamma.util.test.TestGroup; import com.opengamma.util.time.Tenor; /** * Test. */ @Test(groups = TestGroup.UNIT) public class CurveDefinitionAndSpecificationsTest { @Test public void testBBG3MFRAHProvider() { final Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloomberg3MFRAInstrumentProvider("US"); assertEquals(result.size(), 22); assertEquals(result.get(Tenor.THREE_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USFR00C Curncy")); // 0M x 3M assertEquals(result.get(Tenor.EIGHT_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USFR0EH Curncy")); // 5M x 8M assertEquals(result.get(Tenor.ofMonths(15)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USFR011C Curncy")); // 12M x 15M assertEquals(result.get(Tenor.ofMonths(24)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USFR1I2 Curncy")); // 21M x 24M assertFalse(result.containsKey(Tenor.ofYears(1))); } @Test public void testBBG3MSwapProvider() { Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloomberg3MSwapInstrumentProvider("EU", "V3"); assertEquals(result.size(), 67); assertEquals(result.get(Tenor.THREE_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("EUSWCV3 Curncy")); // 3M assertEquals(result.get(Tenor.TEN_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("EUSWJV3 Curncy")); // 10M assertEquals(result.get(Tenor.ofYears(1)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("EUSW1V3 Curncy")); // 1Y assertEquals(result.get(Tenor.ofYears(2)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("EUSW2V3 Curncy")); // 2Y assertEquals(result.get(Tenor.ofMonths(33)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("EUSW2IV3 Curncy")); // 33M assertEquals(result.get(Tenor.ofYears(15)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("EUSW15V3 Curncy")); // 15Y assertFalse(result.containsKey(Tenor.ofMonths(12))); result = CurveDefinitionAndSpecifications.buildStandardBloomberg3MSwapInstrumentProvider("US", ""); assertEquals(result.size(), 67); assertEquals(result.get(Tenor.THREE_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSWC Curncy")); // 3M assertEquals(result.get(Tenor.TEN_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSWJ Curncy")); // 10M assertEquals(result.get(Tenor.ofYears(1)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSW1 Curncy")); // 1Y assertEquals(result.get(Tenor.ofYears(2)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSW2 Curncy")); // 2Y assertEquals(result.get(Tenor.ofMonths(33)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSW2I Curncy")); // 33M assertEquals(result.get(Tenor.ofYears(15)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSW15 Curncy")); // 15Y assertFalse(result.containsKey(Tenor.ofMonths(12))); } @Test public void testBBG6MFRAProvider() { final Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloomberg6MFRAInstrumentProvider("US"); assertEquals(result.size(), 22); assertEquals(result.get(Tenor.SIX_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USFR00F Curncy")); // 0M x 6M assertEquals(result.get(Tenor.ELEVEN_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USFR0EK Curncy")); // 5M x 11M assertEquals(result.get(Tenor.ofMonths(18)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USFR011F Curncy")); // 12M x 18M assertEquals(result.get(Tenor.ofMonths(21)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USFR1C1I Curncy")); // 15M x 21M assertFalse(result.containsKey(Tenor.ofYears(1))); } @Test public void testBBGDepositRateProvider() { final Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloombergDepositInstrumentProvider("US"); assertEquals(result.size(), 67); assertEquals(result.get(Tenor.ofDays(1)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USDR1T Curncy")); // O/N assertEquals(result.get(Tenor.ofDays(7)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USDR1Z Curncy")); // 1W assertEquals(result.get(Tenor.SEVEN_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USDRG Curncy")); // 7M assertEquals(result.get(Tenor.FIVE_YEARS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USDR5 Curncy")); // 5Y } @Test public void testBBGEuriborProvider() { final Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloombergEuriborInstrumentProvider(); assertEquals(result.size(), 12); assertEquals(result.get(Tenor.ofDays(14)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("EUR002W Index")); // 2W assertEquals(result.get(Tenor.EIGHT_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("EUR008M Index")); // 8M } @Test public void testBBGJPY6MFRAProvider() { final Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloombergJPY6MFRAInstrumentProvider(); assertEquals(result.size(), 22); assertEquals(result.get(Tenor.ofMonths(12)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("JYFR6/12 Curncy")); // 6M x 12M assertEquals(result.get(Tenor.ofMonths(15)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("JYFR9/15 Curncy")); // 9M x 15M } @Test public void testBBGLiborProvider() { final Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloombergLiborInstrumentProvider("BP", "S/N", "T/N"); assertEquals(result.size(), 17); assertEquals(result.get(Tenor.ofDays(1)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("BP00S/N Index")); // O/N assertEquals(result.get(Tenor.ofDays(21)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("BP0003W Index")); // 3W assertEquals(result.get(Tenor.ofMonths(4)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("BP0004M Index")); // 4M assertEquals(result.get(Tenor.ofMonths(11)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("BP0011M Index")); // 11M } @Test public void testBBGOISProvider() { final Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloombergOISSwapInstrumentProvider("USSO"); assertEquals(result.size(), 70); assertEquals(result.get(Tenor.ofDays(21)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSO3Z Curncy")); // 3W assertEquals(result.get(Tenor.THREE_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSOC Curncy")); // 3M assertEquals(result.get(Tenor.ofYears(1)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSO1 Curncy")); // 1Y assertEquals(result.get(Tenor.ofMonths(33)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSO2I Curncy")); // 33M assertEquals(result.get(Tenor.ofYears(6)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("USSO6 Curncy")); // 6Y } @Test public void testBBG6MSwapProvider() { final Map<Tenor, CurveInstrumentProvider> result = CurveDefinitionAndSpecifications.buildStandardBloomberg6MSwapInstrumentProvider("BPSW"); assertEquals(result.size(), 83); assertEquals(result.get(Tenor.TWO_MONTHS).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("BPSWB Curncy")); // 2M assertEquals(result.get(Tenor.ONE_YEAR).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("BPSW1 Curncy")); // 1Y assertEquals(result.get(Tenor.ofMonths(57)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("BPSW4I Curncy")); // 57M assertEquals(result.get(Tenor.ofYears(35)).getInstrument(null, null), ExternalSchemes.bloombergTickerSecurityId("BPSW35 Curncy")); // 50Y } }