// 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())); }
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\\]"); }