//-------------------------------------------------------------------------
        public virtual void test_mergedWith_sens_empty()
        {
            CurveSensitivities @base = sut();
            CurveSensitivities test  = @base.mergedWith(CurveSensitivities.empty());

            assertEquals(test, @base);
        }
        //-------------------------------------------------------------------------
        public virtual void test_convertedTo_singleCurrency()
        {
            CurveSensitivities @base = sut();
            CurveSensitivities test  = @base.convertedTo(USD, FxMatrix.empty());

            assertEquals(test.TypedSensitivities.get(ZERO_RATE_DELTA).Sensitivities, ImmutableList.of(ENTRY_USD));
        }
        //-------------------------------------------------------------------------
        public virtual void test_empty()
        {
            CurveSensitivities test = CurveSensitivities.empty();

            assertEquals(test.Info, PortfolioItemInfo.empty());
            assertEquals(test.TypedSensitivities, ImmutableMap.of());
        }
        //-------------------------------------------------------------------------
        public virtual void test_mergedWith_map_empty()
        {
            CurveSensitivities @base = sut();
            IDictionary <CurveSensitivitiesType, CurrencyParameterSensitivities> additional = ImmutableMap.of();
            CurveSensitivities test = @base.mergedWith(additional);

            assertEquals(test, @base);
        }
        public virtual void test_convertedTo_multipleCurrency()
        {
            CurveSensitivities @base = sut2();
            CurveSensitivities test  = @base.convertedTo(USD, FX_RATE);

            assertEquals(test.TypedSensitivities.get(ZERO_RATE_DELTA).Sensitivities, ImmutableList.of(ENTRY_USD));
            assertEquals(test.TypedSensitivities.get(ZERO_RATE_GAMMA).Sensitivities, ImmutableList.of(ENTRY_USD2, ENTRY_EUR_IN_USD));
        }
        //-------------------------------------------------------------------------
        public virtual void test_withMarketDataNames()
        {
            CurveSensitivities @base = sut();
            CurveSensitivities test  = @base.withMarketDataNames(name => NAME2);

            assertEquals(@base.TypedSensitivities.get(ZERO_RATE_DELTA).Sensitivities.get(0).MarketDataName, NAME1);
            assertEquals(test.TypedSensitivities.get(ZERO_RATE_DELTA).Sensitivities.get(0).MarketDataName, NAME2);
        }
        //-------------------------------------------------------------------------
        public virtual void test_withParameterMetadatas()
        {
            CurveSensitivities           @base    = sut();
            CurveSensitivities           test     = @base.withParameterMetadatas(md => TENOR_MD_1Y);
            CurrencyParameterSensitivity testSens = test.TypedSensitivities.get(ZERO_RATE_DELTA).Sensitivities.get(0);

            assertEquals(testSens.ParameterMetadata, ImmutableList.of(TENOR_MD_1Y));
            assertEquals(testSens.Sensitivity, DoubleArray.of(723));
        }
        public virtual void test_of_map()
        {
            CurveSensitivities test = sut2();

            assertEquals(test.Id, ID2);
            assertEquals(test.Info, INFO2);
            assertEquals(test.TypedSensitivities, ImmutableMap.of(ZERO_RATE_DELTA, SENSI1, ZERO_RATE_GAMMA, SENSI2));
            assertEquals(test.getTypedSensitivity(ZERO_RATE_DELTA), SENSI1);
            assertEquals(test.getTypedSensitivity(ZERO_RATE_GAMMA), SENSI2);
        }
        public virtual void test_mergedWith_map_mergeAndAdd()
        {
            CurveSensitivities base1 = sut();
            CurveSensitivities base2 = sut2();
            CurveSensitivities test  = base1.mergedWith(base2.TypedSensitivities);

            assertEquals(test.Info, base1.Info);
            assertEquals(test.TypedSensitivities.Keys, ImmutableSet.of(ZERO_RATE_DELTA, ZERO_RATE_GAMMA));
            assertEquals(test.TypedSensitivities.get(ZERO_RATE_DELTA), SENSI1.multipliedBy(2));
            assertEquals(test.TypedSensitivities.get(ZERO_RATE_GAMMA), SENSI2);
        }
        public virtual void test_mergedWith_sens_mergeAndAdd()
        {
            CurveSensitivities base1 = sut();
            CurveSensitivities base2 = sut2();
            CurveSensitivities test  = base1.mergedWith(base2);

            assertEquals(test.Info, PortfolioItemInfo.empty().withId(ID2).withAttribute(NAME, "2").withAttribute(DESCRIPTION, "1"));
            assertEquals(test.TypedSensitivities.Keys, ImmutableSet.of(ZERO_RATE_DELTA, ZERO_RATE_GAMMA));
            assertEquals(test.TypedSensitivities.get(ZERO_RATE_DELTA), SENSI1.multipliedBy(2));
            assertEquals(test.TypedSensitivities.get(ZERO_RATE_GAMMA), SENSI2);
        }
        //-------------------------------------------------------------------------
        public virtual void test_summarize()
        {
            CurveSensitivities   @base = sut2();
            PortfolioItemSummary test  = @base.summarize();

            assertEquals(test.Id, ID2);
            assertEquals(test.PortfolioItemType, PortfolioItemType.SENSITIVITIES);
            assertEquals(test.ProductType, ProductType.SENSITIVITIES);
            assertEquals(test.Currencies, ImmutableSet.of(EUR, USD));
            assertEquals(test.Description, "CurveSensitivities[ZeroRateDelta, ZeroRateGamma]");
        }
        public virtual void test_of_single()
        {
            CurveSensitivities test = sut();

            assertEquals(test.Id, null);
            assertEquals(test.Info, INFO1);
            assertEquals(test.TypedSensitivities, ImmutableMap.of(ZERO_RATE_DELTA, SENSI1));
            assertEquals(test.getTypedSensitivity(ZERO_RATE_DELTA), SENSI1);
            assertThrows(typeof(System.ArgumentException), () => test.getTypedSensitivity(ZERO_RATE_GAMMA));
            assertEquals(test.findTypedSensitivity(ZERO_RATE_DELTA), SENSI1);
            assertEquals(test.findTypedSensitivity(ZERO_RATE_GAMMA), null);
        }
        public virtual void test_builder_tenors()
        {
            CurveName curveName = CurveName.of("GBP");
            CurrencyParameterSensitivity sens1Y = CurrencyParameterSensitivity.of(curveName, ImmutableList.of(TENOR_MD_1Y), GBP, DoubleArray.of(3));
            CurveSensitivities           test   = CurveSensitivities.builder(PortfolioItemInfo.empty()).add(ZERO_RATE_DELTA, curveName, GBP, TENOR_MD_1M, 4).add(ZERO_RATE_DELTA, curveName, GBP, TENOR_MD_1W, 1).add(ZERO_RATE_DELTA, curveName, GBP, TENOR_MD_1Y, 2).add(ZERO_RATE_DELTA, curveName, GBP, TENOR_MD_1W, 2).add(ZERO_RATE_DELTA, sens1Y).build();

            assertEquals(test.Info, PortfolioItemInfo.empty());
            assertEquals(test.TypedSensitivities.size(), 1);
            CurrencyParameterSensitivities sens = test.getTypedSensitivity(ZERO_RATE_DELTA);

            assertEquals(sens.Sensitivities.size(), 1);
            CurrencyParameterSensitivity singleSens = sens.getSensitivity(curveName, GBP);

            assertEquals(singleSens.Sensitivity, DoubleArray.of(3, 4, 5));
            assertEquals(singleSens.getParameterMetadata(0), TENOR_MD_1W);
            assertEquals(singleSens.getParameterMetadata(1), TENOR_MD_1M);
            assertEquals(singleSens.getParameterMetadata(2), TENOR_MD_1Y);
        }
        public virtual void test_builder_mixCurrency()
        {
            CurveName          curveName = CurveName.of("WEIRD");
            CurveSensitivities test      = CurveSensitivities.builder(PortfolioItemInfo.empty()).add(ZERO_RATE_DELTA, curveName, GBP, TENOR_MD_1Y, 1).add(ZERO_RATE_DELTA, curveName, USD, TENOR_MD_1Y, 2).build();

            assertEquals(test.Info, PortfolioItemInfo.empty());
            assertEquals(test.TypedSensitivities.size(), 1);
            CurrencyParameterSensitivities sens = test.getTypedSensitivity(ZERO_RATE_DELTA);

            assertEquals(sens.Sensitivities.size(), 2);
            CurrencyParameterSensitivity sensGbp = sens.getSensitivity(curveName, GBP);

            assertEquals(sensGbp.Sensitivity, DoubleArray.of(1));
            assertEquals(sensGbp.getParameterMetadata(0), TENOR_MD_1Y);
            CurrencyParameterSensitivity sensUsd = sens.getSensitivity(curveName, USD);

            assertEquals(sensUsd.Sensitivity, DoubleArray.of(2));
            assertEquals(sensUsd.getParameterMetadata(0), TENOR_MD_1Y);
        }
Пример #15
0
        //-------------------------------------------------------------------------
        /// <summary>
        /// Builds the sensitivity from the provided data.
        /// <para>
        /// If all the values for a single sensitivity are tenor-based, or all are date-based,
        /// then the resulting sensitivity will have the tenors sorted.
        ///
        /// </para>
        /// </summary>
        /// <returns> the sensitivities instance </returns>
        public CurveSensitivities build()
        {
//JAVA TO C# CONVERTER TODO TASK: Method reference arbitrary object instance method syntax is not converted by Java to C# Converter:
            return(CurveSensitivities.of(info, MapStream.of(data).mapValues(CurrencyParameterSensitivitiesBuilder::build).toMap()));
        }
 private CurveSensitivities sut2()
 {
     return(CurveSensitivities.of(INFO2, ImmutableMap.of(ZERO_RATE_DELTA, SENSI1, ZERO_RATE_GAMMA, SENSI2)));
 }
 private CurveSensitivities sut()
 {
     return(CurveSensitivities.of(INFO1, ZERO_RATE_DELTA, SENSI1));
 }