}
}
private FunctionRepository createFunctionRepository() {
final InMemoryFunctionRepository functions = new InMemoryFunctionRepository();
// Default property functions
functions.addFunction(new CalcConfigDefaultPropertyFunction.Generic());
functions.addFunction(new CalcConfigDefaultPropertyFunction.Specific());
functions.addFunction(new PositionDefaultPropertyFunction());
functions.addFunction(new AttributableDefaultPropertyFunction());
functions.addFunction(new AggregationDefaultPropertyFunction("Present Value", SummingFunction.AGGREGATION_STYLE_FULL));
// Basic scaling and aggregation
functions.addFunction(new SummingFunction("Present Value"));
functions.addFunction(new PositionOrTradeScalingFunction("Present Value"));
functions.addFunction(new TradeScalingFunction("Present Value"));
// Mock PV function
functions.addFunction(new MockPVFunction());
// Default curve injection
functions.addFunction(new DefaultForwardFundingCurveFunction("DefaultForward", "DefaultFunding", "Present Value"));
return functions;
}