Пример #1
0
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);
    }
}
Пример #2
0
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);
    }
}
Пример #3
0
Storage::Storage(SymbolTable &tbl)
{
	AddConstants(tbl);
}