//-------------------------------------------------------------------------
        public virtual void test_loadCurveGroupDefinition()
        {
            IList <RatesCurveGroupDefinition> defns = RatesCurveGroupDefinitionCsvLoader.loadCurveGroupDefinitions(ResourceLocator.of(GROUPS_1));

            assertEquals(defns.Count, 1);
            RatesCurveGroupDefinition defn = defns[0];

            assertEquals(defn.Entries.get(0), RatesCurveGroupEntry.builder().curveName(CurveName.of("USD-Disc")).discountCurrencies(USD).build());
            assertEquals(defn.Entries.get(1), RatesCurveGroupEntry.builder().curveName(CurveName.of("USD-3ML")).indices(USD_LIBOR_3M).build());
        }
        /// <summary>
        /// Creates a curve group entry for a curve from a list of keys from the same curve group.
        /// </summary>
        /// <param name="curveName">  the name of the curve </param>
        /// <param name="gars">  the group-reference pairs </param>
        /// <returns> a curve group entry built from the data in the IDs </returns>
        private static RatesCurveGroupEntry curveGroupEntry(CurveName curveName, IList <GroupAndReference> gars)
        {
            ISet <Currency> currencies = new LinkedHashSet <Currency>();
            ISet <Index>    indices    = new LinkedHashSet <Index>();

            foreach (GroupAndReference gar in gars)
            {
                if (gar.currency != null)
                {
                    currencies.Add(gar.currency);
                }
                else
                {
                    indices.Add(gar.index);
                }
            }
            return(RatesCurveGroupEntry.builder().curveName(curveName).discountCurrencies(currencies).indices(indices).build());
        }