public virtual void test_of_spotDateOffset()
        {
            ImmutableIborIborSwapConvention test = ImmutableIborIborSwapConvention.of(NAME, IBOR1M, IBOR3M, PLUS_ONE_DAY);

            assertEquals(test.Name, NAME);
            assertEquals(test.SpreadLeg, IBOR1M);
            assertEquals(test.FlatLeg, IBOR3M);
            assertEquals(test.SpotDateOffset, PLUS_ONE_DAY);
        }
        //-------------------------------------------------------------------------
        public virtual void test_of()
        {
            ImmutableIborIborSwapConvention test = ImmutableIborIborSwapConvention.of(NAME, IBOR3M, IBOR6M);

            assertEquals(test.Name, NAME);
            assertEquals(test.SpreadLeg, IBOR3M);
            assertEquals(test.FlatLeg, IBOR6M);
            assertEquals(test.SpotDateOffset, USD_LIBOR_3M.EffectiveDateOffset);
        }
        //-------------------------------------------------------------------------
        public virtual void test_toTrade_tenor()
        {
            IborIborSwapConvention @base = ImmutableIborIborSwapConvention.of(NAME, IBOR3M, IBOR6M);
            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(IBOR3M.toLeg(startDate, endDate, PAY, NOTIONAL_2M, 0.25d), IBOR6M.toLeg(startDate, endDate, RECEIVE, NOTIONAL_2M));

            assertEquals(test.Info.TradeDate, tradeDate);
            assertEquals(test.Product, expected);
        }
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            ImmutableIborIborSwapConvention test = ImmutableIborIborSwapConvention.of(NAME, IBOR3M, IBOR6M);

            coverImmutableBean(test);
            ImmutableIborIborSwapConvention test2 = ImmutableIborIborSwapConvention.of(NAME, IBOR1M, IBOR6M);

            coverBeanEquals(test, test2);
            ImmutableIborIborSwapConvention test3 = ImmutableIborIborSwapConvention.of(NAME, IBOR1M, IBOR3M);

            coverBeanEquals(test, test3);
        }
        public virtual void test_serialization()
        {
            IborIborSwapConvention test = ImmutableIborIborSwapConvention.of(NAME, IBOR3M, IBOR6M);

            assertSerialization(test);
        }