//-------------------------------------------------------------------------
        public virtual void test_empty()
        {
            CurveSensitivities test = CurveSensitivities.empty();

            assertEquals(test.Info, PortfolioItemInfo.empty());
            assertEquals(test.TypedSensitivities, ImmutableMap.of());
        }
Пример #2
0
        public virtual void test_withers()
        {
            PortfolioItemInfo test = PortfolioItemInfo.empty().withId(ID).withAttribute(AttributeType.DESCRIPTION, "A");

            assertEquals(test.Id, ID);
            assertEquals(test.AttributeTypes, ImmutableSet.of(AttributeType.DESCRIPTION));
            assertEquals(test.getAttribute(AttributeType.DESCRIPTION), "A");
            assertEquals(test.findAttribute(AttributeType.DESCRIPTION), ("A"));
            assertThrows(typeof(System.ArgumentException), () => test.getAttribute(AttributeType.NAME));
        }
        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);
        }
Пример #4
0
        //-------------------------------------------------------------------------
        // parse the sensitivity info
        private PortfolioItemInfo parseInfo(CsvRow row)
        {
            PortfolioItemInfo info   = PortfolioItemInfo.empty();
            string            scheme = row.findValue(ID_SCHEME_HEADER).orElse(DEFAULT_SCHEME);
            StandardId        id     = row.findValue(ID_HEADER).map(str => StandardId.of(scheme, str)).orElse(null);

            if (id != null)
            {
                info = info.withId(id);
            }
            return(resolver.parseSensitivityInfo(row, info));
        }
        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);
        }
        public void test_write_standard_withDate()
        {
            CurveName curve1 = CurveName.of("GBDSC");
            CurveName curve2 = CurveName.of("GBFWD");
            // listed in reverse order to check ordering
            CurveSensitivities sens = CurveSensitivities.builder(PortfolioItemInfo.empty().withAttribute(CCP_ATTR, "LCH")).add(ZERO_RATE_GAMMA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_3M), 1).add(ZERO_RATE_GAMMA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 2).add(ZERO_RATE_DELTA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_3M), 3).add(ZERO_RATE_DELTA, curve2, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 5).add(ZERO_RATE_DELTA, curve1, Currency.GBP, TenorDateParameterMetadata.of(date(2018, 6, 30), Tenor.TENOR_3M), 2).add(ZERO_RATE_DELTA, curve1, Currency.GBP, TenorParameterMetadata.of(Tenor.TENOR_6M), 4).build();

            StringBuilder buf = new StringBuilder();

            WRITER_CCP.write(sens, buf);
            string content = buf.ToString();

            string expected = "" +
                              "Reference,Sensitivity Type,Sensitivity Tenor,Sensitivity Date,Currency,Value,CCP\n" +
                              "GBDSC,ZeroRateDelta,3M,2018-06-30,GBP,2.0,LCH\n" +
                              "GBDSC,ZeroRateDelta,6M,,GBP,4.0,LCH\n" +
                              "GBFWD,ZeroRateDelta,3M,,GBP,3.0,LCH\n" +
                              "GBFWD,ZeroRateDelta,6M,,GBP,5.0,LCH\n" +
                              "GBFWD,ZeroRateGamma,3M,,GBP,1.0,LCH\n" +
                              "GBFWD,ZeroRateGamma,6M,,GBP,2.0,LCH\n";

            assertEquals(content, expected);
        }
 //-------------------------------------------------------------------------
 /// <summary>
 /// Obtains an empty instance.
 /// </summary>
 /// <returns> the empty sensitivities instance </returns>
 public static CurveSensitivities empty()
 {
     return(new CurveSensitivities(PortfolioItemInfo.empty(), ImmutableMap.of()));
 }