package com.opengamma.strata.product.fx.type;
import static com.opengamma.strata.basics.currency.Currency.EUR;
import static com.opengamma.strata.basics.currency.Currency.GBP;
import static com.opengamma.strata.basics.currency.Currency.USD;
import static com.opengamma.strata.basics.date.HolidayCalendarIds.EUTA;
import static com.opengamma.strata.basics.date.HolidayCalendarIds.GBLO;
import static com.opengamma.strata.basics.date.HolidayCalendarIds.USNY;
import static com.opengamma.strata.collect.TestHelper.coverPrivateConstructor;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.opengamma.strata.basics.currency.CurrencyPair;
import com.opengamma.strata.basics.date.HolidayCalendarId;
/**
* Test {@link FxSwapConventions}.
*/
@Test
public class FxSwapConventionsTest {
private static final HolidayCalendarId EUTA_USNY = EUTA.combinedWith(USNY);
private static final HolidayCalendarId GBLO_EUTA = GBLO.combinedWith(EUTA);
private static final HolidayCalendarId GBLO_USNY = GBLO.combinedWith(USNY);
@DataProvider(name = "spotLag")
static Object[][] data_spot_lag() {
return new Object[][] {
{FxSwapConventions.EUR_USD, 2},
{FxSwapConventions.GBP_EUR, 2},
{FxSwapConventions.GBP_USD, 2}
};
}
@Test(dataProvider = "spotLag")
public void test_spot_lag(ImmutableFxSwapConvention convention, int lag) {
assertEquals(convention.getSpotDateOffset().getDays(), lag);
}
@DataProvider(name = "currencyPair")
static Object[][] data_currency_pair() {
return new Object[][] {
{FxSwapConventions.EUR_USD, CurrencyPair.of(EUR, USD)},
{FxSwapConventions.GBP_EUR, CurrencyPair.of(GBP, EUR)},
{FxSwapConventions.GBP_USD, CurrencyPair.of(GBP, USD)}
};
}
@Test(dataProvider = "currencyPair")
public void test_currency_pair(ImmutableFxSwapConvention convention, CurrencyPair ccys) {
assertEquals(convention.getCurrencyPair(), ccys);
}
@DataProvider(name = "calendar")
static Object[][] data_calendar() {
return new Object[][] {
{FxSwapConventions.EUR_USD, EUTA_USNY},
{FxSwapConventions.GBP_EUR, GBLO_EUTA},
{FxSwapConventions.GBP_USD, GBLO_USNY}
};
}
@Test(dataProvider = "calendar")
public void test_calendar(ImmutableFxSwapConvention convention, HolidayCalendarId cal) {
assertEquals(convention.getSpotDateOffset().getCalendar(), cal);
assertEquals(convention.getBusinessDayAdjustment().getCalendar(), cal);
}
//-------------------------------------------------------------------------
public void coverage() {
coverPrivateConstructor(FxSwapConventions.class);
coverPrivateConstructor(StandardFxSwapConventions.class);
}
}