public void test_write_standard_roundTrip()
        {
            CharSource source = ResourceLocator.ofClasspath("com/opengamma/strata/loader/csv/sensitivity-standard.csv").CharSource;
            ValueWithFailures <ListMultimap <string, CurveSensitivities> > parsed1 = LOADER.parse(ImmutableList.of(source));

            assertEquals(parsed1.Failures.size(), 0, parsed1.Failures.ToString());
            assertEquals(parsed1.Value.size(), 1);
            IList <CurveSensitivities> csensList1 = parsed1.Value.get("");

            assertEquals(csensList1.Count, 1);
            CurveSensitivities csens1 = csensList1[0];

            StringBuilder buf = new StringBuilder();

            WRITER.write(csens1, buf);
            string content = buf.ToString();

            ValueWithFailures <ListMultimap <string, CurveSensitivities> > parsed2 = LOADER.parse(ImmutableList.of(CharSource.wrap(content)));

            assertEquals(parsed2.Failures.size(), 0, parsed2.Failures.ToString());
            assertEquals(parsed2.Value.size(), 1);
            IList <CurveSensitivities> csensList2 = parsed2.Value.get("");

            assertEquals(csensList2.Count, 1);
            CurveSensitivities csens2 = csensList2[0];

            assertEquals(csens2, csens1);
        }
        //-------------------------------------------------------------------------
        public void test_parse_list()
        {
            CharSource source = ResourceLocator.ofClasspath("com/opengamma/strata/loader/csv/sensitivity-list.csv").CharSource;

            assertEquals(LOADER.isKnownFormat(source), true);
            ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER.parse(ImmutableList.of(source));

            assertEquals(test.Failures.size(), 0, test.Failures.ToString());
            assertEquals(test.Value.size(), 1);
            IList <CurveSensitivities> list = test.Value.get("");

            assertEquals(list.Count, 1);

            CurveSensitivities csens0 = list[0];

            assertEquals(csens0.TypedSensitivities.size(), 3);
            string tenors = "1D, 1W, 2W, 1M, 3M, 6M, 12M, 2Y, 5Y, 10Y";

            assertSens(csens0, ZERO_RATE_DELTA, "GBP", GBP, tenors, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
            assertSens(csens0, ZERO_RATE_DELTA, "GBP-LIBOR", GBP, tenors, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
            assertSens(csens0, ZERO_RATE_GAMMA, "GBP", GBP, tenors, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1);
            assertSens(csens0, ZERO_RATE_GAMMA, "GBP-LIBOR", GBP, tenors, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1);
            assertSens(csens0, OTHER, "GBP", GBP, tenors, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0);
            assertSens(csens0, OTHER, "GBP-LIBOR", GBP, tenors, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0);
        }
        public void test_parse_grid_full()
        {
            CharSource source = ResourceLocator.ofClasspath("com/opengamma/strata/loader/csv/sensitivity-grid-full.csv").CharSource;

            assertEquals(LOADER_CCP.isKnownFormat(source), true);
            ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER_CCP.parse(ImmutableList.of(source));

            assertEquals(test.Failures.size(), 0, test.Failures.ToString());

            IList <CurveSensitivities> list0 = test.Value.get("SCHEME~TR1");

            assertEquals(list0.Count, 1);
            CurveSensitivities csens0 = list0[0];

            assertEquals(csens0.Id, StandardId.of("SCHEME", "TR1"));
            assertEquals(csens0.Info.getAttribute(CCP_ATTR), "LCH");
            assertEquals(csens0.TypedSensitivities.size(), 2);
            assertSens(csens0, ZERO_RATE_DELTA, "GBCURVE", GBP, "1M, 3M, 6M", 1, 2, 3);
            assertSens(csens0, ZERO_RATE_GAMMA, "GBCURVE", GBP, "1M, 3M, 6M", 4, 5, 6);

            IList <CurveSensitivities> list1 = test.Value.get("OG-Sensitivity~TR2");

            assertEquals(list1.Count, 1);
            CurveSensitivities csens1 = list1[0];

            assertEquals(csens1.Id, StandardId.of("OG-Sensitivity", "TR2"));
            assertEquals(csens1.Info.getAttribute(CCP_ATTR), "CME");
            assertEquals(csens1.TypedSensitivities.size(), 1);
            assertSens(csens1, ZERO_RATE_DELTA, "GBCURVE", GBP, "1M, 3M, 6M", 7, 8, 9);
        }
Exemplo n.º 4
0
        static GlobalHolidayCalendarLookup()
        {
            ImmutableMap.Builder <string, HolidayCalendar> builder = ImmutableMap.builder();
            ResourceLocator locator = ResourceLocator.ofClasspath("com/opengamma/strata/basics/date/GlobalHolidayCalendars.bin");

            try
            {
                using (Stream fis = locator.ByteSource.openStream())
                {
                    using (DataInputStream @in = new DataInputStream(fis))
                    {
                        if (@in.readByte() != 'H' || @in.readByte() != 'C' || @in.readByte() != 'a' || @in.readByte() != 'l')
                        {
                            Console.Error.WriteLine("ERROR: Corrupt holiday calendar data file");
                        }
                        else
                        {
                            short calSize = @in.readShort();
                            for (int i = 0; i < calSize; i++)
                            {
                                HolidayCalendar cal = ImmutableHolidayCalendar.readExternal(@in);
                                builder.put(cal.Id.Name, cal);
                            }
                        }
                    }
                }
            }
            catch (IOException ex)
            {
                Console.Error.WriteLine("ERROR: Unable to parse holiday calendar data file: " + ex.Message);
                Console.WriteLine(ex.ToString());
                Console.Write(ex.StackTrace);
            }
            MAP = builder.build();
        }
Exemplo n.º 5
0
 //-------------------------------------------------------------------------
 // Gets the resource locator corresponding to a given entry
 private ResourceLocator getEntryLocator(string entryName)
 {
     return(ResourceLocator.ofClasspath(entryName));
 }