void GenerateComplexTestCases(int startIndex, std::vector<std::string>& lines, std::map<std::string, double>& expressions, double(&variables)[MaxVarCount]) { double temporaries[MaxTmpCount]; for (int i = startIndex; i < startIndex + ComplexTestCases; i++) { GenerateFunctionHeader(lines, i); for (int j = 0; j < MaxTmpCount; j++) { AddVariables(expressions, variables); AddConstants(expressions); PopulateExpressions(expressions); std::map<std::string, double>::iterator expression = expressions.begin(); std::advance(expression, rand() % expressions.size()); temporaries[j] = expression->second; lines.push_back(" ADType tmp" + IntToStr(j) + " = " + expression->first + ";"); expressions.clear(); } AddVariables(expressions, variables); AddConstants(expressions); AddTemporaries(expressions, temporaries); PopulateExpressions(expressions); std::map<std::string, double>::iterator expression = expressions.begin(); std::advance(expression, rand() % expressions.size()); lines.push_back(" return " + expression->first + ";"); expressions.clear(); GenerateFunctionFooter(lines); } }
void GenerateSimpleTestCases(int startIndex, std::vector<std::string>& lines, std::map<std::string, double>& expressions, const double(&variables)[MaxVarCount]) { for (int i = startIndex; i < startIndex + SimpleTestCases; i++) { GenerateFunctionHeader(lines, i); AddVariables(expressions, variables); AddConstants(expressions); PopulateExpressions(expressions); std::map<std::string, double>::iterator expression = expressions.begin(); std::advance(expression, rand() % expressions.size()); lines.push_back(" return " + expression->first + ";"); expressions.clear(); GenerateFunctionFooter(lines); } }
Storage::Storage(SymbolTable &tbl) { AddConstants(tbl); }