public virtual void test_of_null()
 {
     assertThrowsIllegalArg(() => IborRateStubCalculation.ofIborRate(null));
     assertThrowsIllegalArg(() => IborRateStubCalculation.ofIborInterpolatedRate(null, GBP_LIBOR_3M));
     assertThrowsIllegalArg(() => IborRateStubCalculation.ofIborInterpolatedRate(GBP_LIBOR_3M, null));
     assertThrowsIllegalArg(() => IborRateStubCalculation.ofIborInterpolatedRate(null, null));
 }
        public virtual void test_ofIborInterpolatedRate()
        {
            IborRateStubCalculation test = IborRateStubCalculation.ofIborInterpolatedRate(GBP_LIBOR_1M, GBP_LIBOR_3M);

            assertEquals(test.FixedRate, double?.empty());
            assertEquals(test.Index, GBP_LIBOR_1M);
            assertEquals(test.IndexInterpolated, GBP_LIBOR_3M);
            assertEquals(test.FixedRate, false);
            assertEquals(test.KnownAmount, false);
            assertEquals(test.FloatingRate, true);
            assertEquals(test.Interpolated, true);
        }
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            IborRateStubCalculation test = IborRateStubCalculation.ofIborInterpolatedRate(GBP_LIBOR_1M, GBP_LIBOR_3M);

            coverImmutableBean(test);
            IborRateStubCalculation test2 = IborRateStubCalculation.ofFixedRate(0.028d);

            coverBeanEquals(test, test2);
            IborRateStubCalculation test3 = IborRateStubCalculation.ofKnownAmount(GBP_P1000);

            coverBeanEquals(test, test3);
        }
 public virtual void test_ofIborInterpolatedRate_invalid_interpolatedSameIndex()
 {
     assertThrowsIllegalArg(() => IborRateStubCalculation.ofIborInterpolatedRate(GBP_LIBOR_3M, GBP_LIBOR_3M));
 }
        public virtual void test_expand_singlePeriod_stubCalcsInitialStub_interpolated()
        {
            IborRateCalculation test = IborRateCalculation.builder().dayCount(ACT_365F).index(GBP_LIBOR_2M).fixingDateOffset(MINUS_TWO_DAYS).initialStub(IborRateStubCalculation.ofIborInterpolatedRate(GBP_LIBOR_1W, GBP_LIBOR_1M)).build();
            RateAccrualPeriod   rap1 = RateAccrualPeriod.builder(ACCRUAL1STUB).yearFraction(ACCRUAL1STUB.yearFraction(ACT_365F, ACCRUAL_SCHEDULE_STUBS)).rateComputation(IborInterpolatedRateComputation.of(GBP_LIBOR_1W, GBP_LIBOR_1M, DATE_01_06, REF_DATA)).build();
            ImmutableList <RateAccrualPeriod> periods = test.createAccrualPeriods(SINGLE_ACCRUAL_SCHEDULE_STUB, SINGLE_ACCRUAL_SCHEDULE_STUB, REF_DATA);

            assertEquals(periods, ImmutableList.of(rap1));
        }
        public virtual void test_collectIndices_stubCalcsTwoStubs_interpolated()
        {
            IborRateCalculation test = IborRateCalculation.builder().dayCount(ACT_365F).index(GBP_LIBOR_1M).fixingDateOffset(MINUS_TWO_DAYS).initialStub(IborRateStubCalculation.ofIborInterpolatedRate(GBP_LIBOR_1W, GBP_LIBOR_1M)).finalStub(IborRateStubCalculation.ofIborInterpolatedRate(GBP_LIBOR_3M, GBP_LIBOR_1M)).build();

            ImmutableSet.Builder <Index> builder = ImmutableSet.builder();
            test.collectIndices(builder);
            assertEquals(builder.build(), ImmutableSet.of(GBP_LIBOR_1M, GBP_LIBOR_1W, GBP_LIBOR_3M));
        }