コード例 #1
0
        public virtual void test_resolve_createNotionalExchange_finalOnly()
        {
            RatePeriodSwapLeg test     = RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1).initialExchange(false).intermediateExchange(false).finalExchange(true).build();
            ResolvedSwapLeg   expected = ResolvedSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1).paymentEvents(NotionalExchange.of(CurrencyAmount.of(GBP, 5000d), DATE_2014_10_01)).build();

            assertEquals(test.resolve(REF_DATA), expected);
        }
コード例 #2
0
        //-------------------------------------------------------------------------
        public virtual void test_resolve()
        {
            RatePeriodSwapLeg test     = RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1).paymentEvents(NOTIONAL_EXCHANGE).build();
            ResolvedSwapLeg   expected = ResolvedSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1).paymentEvents(NOTIONAL_EXCHANGE).build();

            assertEquals(test.resolve(REF_DATA), expected);
        }
コード例 #3
0
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            RatePeriodSwapLeg test = RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1).paymentEvents(NOTIONAL_EXCHANGE).paymentBusinessDayAdjustment(FOLLOWING_GBLO).initialExchange(true).intermediateExchange(true).finalExchange(true).build();

            coverImmutableBean(test);
            RatePeriodSwapLeg test2 = RatePeriodSwapLeg.builder().type(FIXED).payReceive(PAY).paymentPeriods(RPP2).build();

            coverBeanEquals(test, test2);
        }
コード例 #4
0
        public virtual void test_collectIndices_fxReset()
        {
            RatePeriodSwapLeg test = RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1_FXRESET).build();

            ImmutableSet.Builder <Index> builder = ImmutableSet.builder();
            test.collectIndices(builder);
            assertEquals(builder.build(), ImmutableSet.of(GBP_LIBOR_3M, GBP_USD_WM));
            assertEquals(test.allCurrencies(), ImmutableSet.of(GBP, USD));
        }
コード例 #5
0
        public virtual void test_resolve_FxResetOmitInitialNotionalExchange()
        {
            RatePeriodSwapLeg test = RatePeriodSwapLeg.builder().type(IBOR).payReceive(PAY).paymentPeriods(RPP1_FXRESET).initialExchange(false).intermediateExchange(true).finalExchange(true).build();

            FxResetNotionalExchange finalExchange = FxResetNotionalExchange.of(CurrencyAmount.of(USD, 8000d), DATE_2014_10_01, FxIndexObservation.of(GBP_USD_WM, DATE_2014_06_28, REF_DATA));

            ResolvedSwapLeg expected = ResolvedSwapLeg.builder().type(IBOR).payReceive(PAY).paymentPeriods(RPP1_FXRESET).paymentEvents(finalExchange).build();

            assertEquals(test.resolve(REF_DATA), expected);
        }
コード例 #6
0
        public virtual void test_resolve_fxResetNotionalExchange()
        {
            RatePeriodSwapLeg       test     = RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1_FXRESET, RPP2).initialExchange(true).intermediateExchange(true).finalExchange(true).build();
            FxResetNotionalExchange ne1a     = FxResetNotionalExchange.of(CurrencyAmount.of(USD, -8000d), DATE_2014_06_30, FxIndexObservation.of(GBP_USD_WM, DATE_2014_06_28, REF_DATA));
            FxResetNotionalExchange ne1b     = FxResetNotionalExchange.of(CurrencyAmount.of(USD, 8000d), DATE_2014_10_01, FxIndexObservation.of(GBP_USD_WM, DATE_2014_06_28, REF_DATA));
            NotionalExchange        ne2a     = NotionalExchange.of(CurrencyAmount.of(GBP, -6000d), DATE_2014_10_01);
            NotionalExchange        ne2b     = NotionalExchange.of(CurrencyAmount.of(GBP, 6000d), DATE_2014_01_02);
            ResolvedSwapLeg         expected = ResolvedSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1_FXRESET, RPP2).paymentEvents(ne1a, ne1b, ne2a, ne2b).build();

            assertEquals(test.resolve(REF_DATA), expected);
        }
コード例 #7
0
        public virtual void test_builder_defaults()
        {
            RatePeriodSwapLeg test = RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1).build();

            assertEquals(test.PayReceive, RECEIVE);
            assertEquals(test.StartDate, AdjustableDate.of(DATE_2014_06_30));
            assertEquals(test.EndDate, AdjustableDate.of(DATE_2014_09_30));
            assertEquals(test.Currency, GBP);
            assertEquals(test.PaymentPeriods, ImmutableList.of(RPP1));
            assertEquals(test.PaymentEvents, ImmutableList.of());
            assertEquals(test.InitialExchange, false);
            assertEquals(test.IntermediateExchange, false);
            assertEquals(test.FinalExchange, false);
            assertEquals(test.PaymentBusinessDayAdjustment, BusinessDayAdjustment.NONE);
        }
コード例 #8
0
        //-------------------------------------------------------------------------
        public virtual void test_builder()
        {
            RatePeriodSwapLeg test = RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1).initialExchange(true).intermediateExchange(true).finalExchange(true).paymentEvents(NOTIONAL_EXCHANGE).paymentBusinessDayAdjustment(FOLLOWING_GBLO).build();

            assertEquals(test.Type, IBOR);
            assertEquals(test.PayReceive, RECEIVE);
            assertEquals(test.StartDate, AdjustableDate.of(DATE_2014_06_30));
            assertEquals(test.EndDate, AdjustableDate.of(DATE_2014_09_30));
            assertEquals(test.Currency, GBP);
            assertEquals(test.PaymentPeriods, ImmutableList.of(RPP1));
            assertEquals(test.PaymentEvents, ImmutableList.of(NOTIONAL_EXCHANGE));
            assertEquals(test.InitialExchange, true);
            assertEquals(test.IntermediateExchange, true);
            assertEquals(test.FinalExchange, true);
            assertEquals(test.PaymentBusinessDayAdjustment, FOLLOWING_GBLO);
        }
コード例 #9
0
 // the notional, with trailing space if present
 private string notional(SwapLeg leg)
 {
     if (leg is RateCalculationSwapLeg)
     {
         RateCalculationSwapLeg rcLeg            = (RateCalculationSwapLeg)leg;
         NotionalSchedule       notionalSchedule = rcLeg.NotionalSchedule;
         ValueSchedule          amount           = notionalSchedule.Amount;
         double   notional = amount.InitialValue;
         string   vary     = amount.Steps.Count > 0 || amount.StepSequence.Present ? " variable" : "";
         Currency currency = notionalSchedule.FxReset.map(fxr => fxr.ReferenceCurrency).orElse(rcLeg.Currency);
         return(SummarizerUtils.amount(currency, notional) + vary);
     }
     if (leg is RatePeriodSwapLeg)
     {
         RatePeriodSwapLeg rpLeg = (RatePeriodSwapLeg)leg;
         return(SummarizerUtils.amount(rpLeg.PaymentPeriods.get(0).NotionalAmount));
     }
     return("");
 }
コード例 #10
0
        public virtual void test_serialization()
        {
            RatePeriodSwapLeg test = RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP1).paymentEvents(NOTIONAL_EXCHANGE).build();

            assertSerialization(test);
        }
コード例 #11
0
 public virtual void test_builder_invalidMixedCurrency()
 {
     assertThrowsIllegalArg(() => RatePeriodSwapLeg.builder().type(IBOR).payReceive(RECEIVE).paymentPeriods(RPP3).paymentEvents(NOTIONAL_EXCHANGE).build());
 }