//-------------------------------------------------------------------------
        public virtual void test_loadSeasonalityDefinition()
        {
            IDictionary <CurveName, SeasonalityDefinition> defns = SeasonalityDefinitionCsvLoader.loadSeasonalityDefinitions(ResourceLocator.of(GROUPS_1));

            assertEquals(defns.Count, 1);
            SeasonalityDefinition defn = defns[CurveName.of("USD-CPI")];

            assertEquals(defn.AdjustmentType, ShiftType.SCALED);
            assertEquals(defn.SeasonalityMonthOnMonth.size(), 12);
        }
Ejemplo n.º 2
0
        //-------------------------------------------------------------------------
        /// <summary>
        /// Parses the seasonality definition CSV file.
        /// </summary>
        /// <param name="charSource">  the seasonality CSV character source </param>
        /// <returns> the map of seasonality definitions </returns>
        public static IDictionary <CurveName, SeasonalityDefinition> parseSeasonalityDefinitions(CharSource charSource)
        {
            ImmutableMap.Builder <CurveName, SeasonalityDefinition> builder = ImmutableMap.builder();
            CsvFile csv = CsvFile.of(charSource, true);

            foreach (CsvRow row in csv.rows())
            {
                string      curveNameStr = row.getField(CURVE_NAME);
                string      shiftTypeStr = row.getField(SHIFT_TYPE);
                DoubleArray values       = DoubleArray.of(12, i => double.Parse(row.getField(MONTH_PAIRS.get(i))));

                CurveName curveName = CurveName.of(curveNameStr);
                ShiftType shiftType = ShiftType.valueOf(shiftTypeStr.ToUpper(Locale.ENGLISH));
                builder.put(curveName, SeasonalityDefinition.of(values, shiftType));
            }
            return(builder.build());
        }