// -------------------------------------------------------------------------
 public void coverage() {
   ImmutableThreeLegBasisSwapConvention test =
       ImmutableThreeLegBasisSwapConvention.of(NAME, FIXED, IBOR6M, IBOR12M);
   coverImmutableBean(test);
   ImmutableThreeLegBasisSwapConvention test2 =
       ImmutableThreeLegBasisSwapConvention.of("swap", FIXED, IBOR3M, IBOR6M);
   coverBeanEquals(test, test2);
   ImmutableThreeLegBasisSwapConvention test3 =
       ImmutableThreeLegBasisSwapConvention.of(NAME, FIXED, IBOR3M, IBOR12M);
   coverBeanEquals(test, test3);
 }
 public void test_of_spotDateOffset() {
   ImmutableThreeLegBasisSwapConvention test =
       ImmutableThreeLegBasisSwapConvention.of(NAME, FIXED, IBOR6M, IBOR12M, PLUS_ONE_DAY);
   assertEquals(test.getName(), NAME);
   assertEquals(test.getSpreadLeg(), FIXED);
   assertEquals(test.getSpreadFloatingLeg(), IBOR6M);
   assertEquals(test.getFlatFloatingLeg(), IBOR12M);
   assertEquals(test.getSpotDateOffset(), PLUS_ONE_DAY);
 }
 // -------------------------------------------------------------------------
 public void test_of() {
   ImmutableThreeLegBasisSwapConvention test =
       ImmutableThreeLegBasisSwapConvention.of(NAME, FIXED, IBOR6M, IBOR12M);
   assertEquals(test.getName(), NAME);
   assertEquals(test.getSpreadLeg(), FIXED);
   assertEquals(test.getSpreadFloatingLeg(), IBOR6M);
   assertEquals(test.getFlatFloatingLeg(), IBOR12M);
   assertEquals(test.getSpotDateOffset(), EUR_EURIBOR_6M.getEffectiveDateOffset());
 }
 // -------------------------------------------------------------------------
 public void test_toTrade_tenor() {
   ThreeLegBasisSwapConvention base =
       ImmutableThreeLegBasisSwapConvention.of(NAME, FIXED, IBOR6M, IBOR12M);
   LocalDate tradeDate = LocalDate.of(2015, 5, 5);
   LocalDate startDate = date(2015, 5, 7);
   LocalDate endDate = date(2025, 5, 7);
   SwapTrade test = base.createTrade(tradeDate, TENOR_10Y, BUY, NOTIONAL_2M, 0.25d, REF_DATA);
   Swap expected =
       Swap.of(
           FIXED.toLeg(startDate, endDate, PAY, NOTIONAL_2M, 0.25d),
           IBOR6M.toLeg(startDate, endDate, PAY, NOTIONAL_2M),
           IBOR12M.toLeg(startDate, endDate, RECEIVE, NOTIONAL_2M));
   assertEquals(test.getInfo().getTradeDate(), Optional.of(tradeDate));
   assertEquals(test.getProduct(), expected);
 }
 public void test_builder() {
   ImmutableThreeLegBasisSwapConvention test =
       ImmutableThreeLegBasisSwapConvention.builder()
           .name(NAME)
           .spreadLeg(FIXED)
           .spreadFloatingLeg(IBOR6M)
           .flatFloatingLeg(IBOR12M)
           .spotDateOffset(PLUS_ONE_DAY)
           .build();
   assertEquals(test.getName(), NAME);
   assertEquals(test.getSpreadLeg(), FIXED);
   assertEquals(test.getSpreadFloatingLeg(), IBOR6M);
   assertEquals(test.getFlatFloatingLeg(), IBOR12M);
   assertEquals(test.getSpotDateOffset(), PLUS_ONE_DAY);
 }
 public void test_serialization() {
   ThreeLegBasisSwapConvention test =
       ImmutableThreeLegBasisSwapConvention.of(NAME, FIXED, IBOR6M, IBOR12M);
   assertSerialization(test);
 }