// Check synthetic calibration in case no definitions
        public virtual void calibrate_noDefinitions()
        {
            RatesCurveGroupDefinition empty = RatesCurveGroupDefinition.of(CurveGroupName.of("Group"), ImmutableList.of(), ImmutableList.of());
            MarketData    mad           = CALIBRATOR_SYNTHETIC.marketData(empty, MULTICURVE_INPUT_EUR_TSLARGE, REF_DATA);
            RatesProvider multicurveSyn = CALIBRATOR_SYNTHETIC.calibrate(empty, MULTICURVE_INPUT_EUR_TSLARGE, REF_DATA);

            assertEquals(multicurveSyn.DiscountCurrencies, ImmutableSet.of());
            assertEquals(multicurveSyn.IborIndices, ImmutableSet.of());
            assertEquals(multicurveSyn.OvernightIndices, ImmutableSet.of());
            assertEquals(multicurveSyn.PriceIndices, ImmutableSet.of());
            assertEquals(mad.TimeSeriesIds, ImmutableSet.of());
        }
        /// <summary>
        /// Builds a list of curve group definitions from the map of curves and their keys.
        /// <para>
        /// The keys specify which curve groups each curve belongs to and how it is used in the group, for example
        /// as a discount curve for a particular currency or as a forward curve for an index.
        ///
        /// </para>
        /// </summary>
        /// <param name="garMap">  the map of name to keys </param>
        /// <returns> a map of curve group name to curve group definition built from the curves </returns>
        private static ImmutableList <RatesCurveGroupDefinition> buildCurveGroups(IDictionary <CurveName, ISet <GroupAndReference> > garMap)
        {
            Multimap <CurveGroupName, RatesCurveGroupEntry> groups = LinkedHashMultimap.create();

            foreach (KeyValuePair <CurveName, ISet <GroupAndReference> > entry in garMap.SetOfKeyValuePairs())
            {
                CurveName curveName = entry.Key;
                ISet <GroupAndReference> curveIds = entry.Value;
//JAVA TO C# CONVERTER TODO TASK: Most Java stream collectors are not converted by Java to C# Converter:
                IDictionary <CurveGroupName, IList <GroupAndReference> > idsByGroup = curveIds.collect(groupingBy(p => p.groupName));

                foreach (KeyValuePair <CurveGroupName, IList <GroupAndReference> > groupEntry in idsByGroup.SetOfKeyValuePairs())
                {
                    CurveGroupName            groupName = groupEntry.Key;
                    IList <GroupAndReference> gars      = groupEntry.Value;
                    groups.put(groupName, curveGroupEntry(curveName, gars));
                }
            }
            return(MapStream.of(groups.asMap()).map((name, entry) => RatesCurveGroupDefinition.of(name, entry, ImmutableList.of())).collect(toImmutableList()));
        }
Example #3
0
 public virtual void test_missingEntries()
 {
     assertThrowsIllegalArg(() => RatesCurveGroupDefinition.of(CurveGroupName.of("group"), ImmutableList.of(ENTRY1), ImmutableList.of(CURVE_DEFN1, CURVE_DEFN2)), "An entry must be provided .* \\[Test2\\]");
 }