/** * Obtains an instance used to obtain a curve group by name. * * @param groupName the curve group name * @return the identifier */ public static RatesCurveGroupId of(String groupName) { return new RatesCurveGroupId(CurveGroupName.of(groupName), ObservableSource.NONE); }
/** * Obtains an instance from the specified name. * <p> * Curve group names may contain any character, but must not be empty. * * @param name the name of the curve group * @return a curve group name */ @FromString public static CurveGroupName of(String name) { return new CurveGroupName(name); }
private static Curve queryCurve( CurveName name, Map<CurveName, Curve> curves, LocalDate date, CurveGroupName groupName, String curveType) { Curve curve = curves.get(name); if (curve == null) { throw new IllegalArgumentException( curveType + " curve values for " + name.toString() + " in group " + groupName.getName() + " are missing on " + date.toString()); } return curve; }
public void test_of_String() { LegalEntityCurveGroupId test = LegalEntityCurveGroupId.of(GROUP1.toString()); assertEquals(test.getCurveGroupName(), GROUP1); assertEquals(test.getObservableSource(), ObservableSource.NONE); assertEquals(test.getMarketDataType(), LegalEntityCurveGroup.class); assertEquals(test.toString(), "LegalEntityCurveGroupId:Group1"); }
public void test_of_String() { RatesCurveGroupId test = RatesCurveGroupId.of(GROUP1.toString()); assertEquals(test.getCurveGroupName(), GROUP1); assertEquals(test.getObservableSource(), ObservableSource.NONE); assertEquals(test.getMarketDataType(), RatesCurveGroup.class); assertEquals(test.toString(), "RatesCurveGroupId:Group1"); }
/** * Obtains an instance used to obtain a curve group by name. * * @param groupName the curve group name * @return the identifier */ public static LegalEntityCurveGroupId of(String groupName) { return new LegalEntityCurveGroupId(CurveGroupName.of(groupName), ObservableSource.NONE); }
private static void writeCurveGroup(CsvOutput csv, RatesCurveGroup group) { String groupName = group.getName().getName(); Map<Currency, Curve> discountingCurves = group.getDiscountCurves(); for (Entry<Currency, Curve> entry : discountingCurves.entrySet()) { List<String> line = new ArrayList<>(4); line.add(groupName); line.add(DISCOUNT); line.add(entry.getKey().toString()); line.add(entry.getValue().getName().getName()); csv.writeLine(line); } Map<Index, Curve> forwardCurves = group.getForwardCurves(); for (Entry<Index, Curve> entry : forwardCurves.entrySet()) { List<String> line = new ArrayList<>(4); line.add(groupName); line.add(FORWARD); line.add(entry.getKey().toString()); line.add(entry.getValue().getName().getName()); csv.writeLine(line); } }
/** * Obtains an instance used to obtain a curve by name. * * @param groupName the curve group name * @param curveName the curve name * @return the identifier */ public static CurveId of(String groupName, String curveName) { return new CurveId(CurveGroupName.of(groupName), CurveName.of(curveName), ObservableSource.NONE); }
private static void writeCurveGroupDefinition(CsvOutput csv, RatesCurveGroupDefinition group) { String groupName = group.getName().getName(); for (RatesCurveGroupEntry entry : group.getEntries()) { for (Currency currency : entry.getDiscountCurrencies()) { csv.writeLine( ImmutableList.of(groupName, DISCOUNT, currency.toString(), entry.getCurveName().getName())); } for (Index index : entry.getIndices()) { csv.writeLine( ImmutableList.of(groupName, FORWARD, index.toString(), entry.getCurveName().getName())); } } }
public void test_missingEntries() { assertThrowsIllegalArg(() -> RatesCurveGroupDefinition.of( CurveGroupName.of("group"), ImmutableList.of(ENTRY1), ImmutableList.of(CURVE_DEFN1, CURVE_DEFN2)), "An entry must be provided .* \\[Test2\\]"); }
private void assertCurves(List<RatesCurveGroup> curveGroups) { assertNotNull(curveGroups); assertEquals(curveGroups.size(), 1); RatesCurveGroup curveGroup = curveGroups.get(0); assertEquals(curveGroup.getName(), CurveGroupName.of("Default")); assertUsdDisc(curveGroup.findDiscountCurve(Currency.USD).get()); Curve usd3ml = curveGroup.findForwardCurve(IborIndices.USD_LIBOR_3M).get(); assertUsd3ml(usd3ml); }
/** * Parses the curve groups definition CSV file. * <p> * The list of {@link NodalCurveDefinition} will be empty in the resulting definition. * * @param groupsCharSource the curve groups CSV character source * @return the list of definitions */ public static List<RatesCurveGroupDefinition> parseCurveGroupDefinitions(CharSource groupsCharSource) { Map<CurveName, Set<GroupAndReference>> curveGroups = new LinkedHashMap<>(); CsvFile csv = CsvFile.of(groupsCharSource, true); for (CsvRow row : csv.rows()) { String curveGroupStr = row.getField(GROUPS_NAME); String curveTypeStr = row.getField(GROUPS_CURVE_TYPE); String referenceStr = row.getField(GROUPS_REFERENCE); String curveNameStr = row.getField(GROUPS_CURVE_NAME); GroupAndReference gar = createKey(CurveGroupName.of(curveGroupStr), curveTypeStr, referenceStr); CurveName curveName = CurveName.of(curveNameStr); curveGroups.computeIfAbsent(curveName, k -> new LinkedHashSet<>()).add(gar); } return buildCurveGroups(curveGroups); }
public 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.getDiscountCurrencies(), ImmutableSet.of()); assertEquals(multicurveSyn.getIborIndices(), ImmutableSet.of()); assertEquals(multicurveSyn.getOvernightIndices(), ImmutableSet.of()); assertEquals(multicurveSyn.getPriceIndices(), ImmutableSet.of()); assertEquals(mad.getTimeSeriesIds(), ImmutableSet.of()); }
public void test_of_TypesSource() { CurveId test = CurveId.of(CurveGroupName.of("Group"), CurveName.of("Name"), OBS_SOURCE); assertEquals(test.getCurveGroupName(), CurveGroupName.of("Group")); assertEquals(test.getCurveName(), CurveName.of("Name")); assertEquals(test.getObservableSource(), OBS_SOURCE); assertEquals(test.getMarketDataType(), Curve.class); assertEquals(test.getMarketDataName(), CurveName.of("Name")); assertEquals(test.toString(), "CurveId:Group/Name/Vendor"); }
public void test_parsing() { Map<CurveGroupName, RatesCurveGroupDefinition> test = RatesCalibrationCsvLoader.loadWithSeasonality( ResourceLocator.of(GROUPS_1), ResourceLocator.of(SETTINGS_1), ResourceLocator.of(SEASONALITY_1), ImmutableList.of(ResourceLocator.of(CALIBRATION_1))); assertEquals(test.size(), 1); assertDefinition(test.get(CurveGroupName.of("Default"))); }
public void test_builder4() { RatesCurveGroupDefinition test = RatesCurveGroupDefinition.builder() .name(CurveGroupName.of("Test")) .addCurve(CURVE_NAME1, GBP, GBP_LIBOR_1M, GBP_LIBOR_3M) .build(); assertEquals(test.getName(), CurveGroupName.of("Test")); assertEquals(test.getEntries(), ImmutableList.of(ENTRY3)); assertEquals(test.findEntry(CurveName.of("Test")), Optional.of(ENTRY3)); assertEquals(test.findEntry(CurveName.of("Test2")), Optional.empty()); assertEquals(test.findEntry(CurveName.of("Rubbish")), Optional.empty()); }
public void test_of_Types() { CurveId test = CurveId.of(CurveGroupName.of("Group"), CurveName.of("Name")); assertEquals(test.getCurveGroupName(), CurveGroupName.of("Group")); assertEquals(test.getCurveName(), CurveName.of("Name")); assertEquals(test.getObservableSource(), ObservableSource.NONE); assertEquals(test.getMarketDataType(), Curve.class); assertEquals(test.getMarketDataName(), CurveName.of("Name")); assertEquals(test.toString(), "CurveId:Group/Name"); }
public void test_withName() { RatesCurveGroupDefinition test = RatesCurveGroupDefinition.builder() .name(CurveGroupName.of("Test")) .addDiscountCurve(CURVE_DEFN1, GBP) .build(); RatesCurveGroupDefinition expected = RatesCurveGroupDefinition.builder() .name(CurveGroupName.of("NewName")) .addDiscountCurve(CURVE_DEFN1, GBP) .build(); RatesCurveGroupDefinition withNewName = test.withName(CurveGroupName.of("NewName")); assertEquals(withNewName, expected); } }
public void test_builder2() { RatesCurveGroupDefinition test = RatesCurveGroupDefinition.builder() .name(CurveGroupName.of("Test")) .addCurve(CURVE_DEFN1, GBP, GBP_LIBOR_1M, GBP_LIBOR_3M) .build(); assertEquals(test.getName(), CurveGroupName.of("Test")); assertEquals(test.getEntries(), ImmutableList.of(ENTRY3)); assertEquals(test.findEntry(CurveName.of("Test")), Optional.of(ENTRY3)); assertEquals(test.findEntry(CurveName.of("Test2")), Optional.empty()); assertEquals(test.findEntry(CurveName.of("Rubbish")), Optional.empty()); assertEquals(test.findCurveDefinition(CurveName.of("Test")), Optional.of(CURVE_DEFN1)); assertEquals(test.findCurveDefinition(CurveName.of("Test2")), Optional.empty()); assertEquals(test.findCurveDefinition(CurveName.of("Rubbish")), Optional.empty()); }