Extend tests

This commit is contained in:
Carsten Larsen 2017-01-29 01:00:29 +01:00
parent c5589eaf41
commit e04c586c9a
2 changed files with 52 additions and 5 deletions

View File

@ -77,19 +77,25 @@ void TestProgram::RunTests()
RunTestset3(); RunTestset3();
RunTestset4(); RunTestset4();
RunTestset5(); RunTestset5();
RunTestset6();
} }
void TestProgram::TestExpression(const char* expression, const char* result) void TestProgram::TestExpression(const char* expression, const char* result)
{ {
PerformTest(expression, result, true); PerformTest(expression, result, true, true);
} }
void TestProgram::TestStatement(const char* statement, const char* result) void TestProgram::TestStatement(const char* statement, const char* result)
{ {
PerformTest(statement, result, false); PerformTest(statement, result, false, true);
} }
void TestProgram::PerformTest(const char* input, const char* result, bool show) void TestProgram::TestExecution(const char* statement)
{
PerformTest(statement, EMPTYSTRING, false, false);
}
void TestProgram::PerformTest(const char* input, const char* result, bool show, bool check)
{ {
Evaluator *evaluator = new Evaluator(input); Evaluator *evaluator = new Evaluator(input);
evaluator->Evaluate(); evaluator->Evaluate();
@ -100,7 +106,7 @@ void TestProgram::PerformTest(const char* input, const char* result, bool show)
buf->RemoveTrailing(NEWLINE); buf->RemoveTrailing(NEWLINE);
delete evaluator; delete evaluator;
if (buf->Is(result)) { if (buf->Is(result) || !check) {
pass++; pass++;
printf("PASS: [%s]" NEWLINE, show ? result : input); printf("PASS: [%s]" NEWLINE, show ? result : input);
} else { } else {
@ -339,4 +345,43 @@ void TestProgram::RunTestset5()
TestStatement("vars", "a = 2" NEWLINE "b = 3" NEWLINE "c = 5" NEWLINE "d = 6.2"); TestStatement("vars", "a = 2" NEWLINE "b = 3" NEWLINE "c = 5" NEWLINE "d = 6.2");
} }
void TestProgram::RunTestset6()
{
TestExecution("help");
TestExecution("help functions");
TestExecution("help trigon");
TestExecution("help hyper");
TestExecution("help complex");
TestExecution("help statements"); // Error
TestExecution("help operators");
TestExecution("help sin");
TestExecution("help help");
TestExecution("input hex");
TestExecution("input dec");
TestExecution("input oct");
TestExecution("input bin");
TestExecution("input 25");
TestExecution("output hex");
TestExecution("output dec");
TestExecution("output oct");
TestExecution("output bin");
TestExecution("output 25");
TestExecution("digits 1");
TestExecution("digits 5");
TestExecution("digits 9");
TestExecution("digits 15");
TestExecution("digits 33");
TestExecution("input");
TestExecution("output");
TestExecution("digits");
TestExecution("eval 7+7");
TestExecution("delete x");
TestExecution("delete pi");
TestExecution("eval pi/2"); // Error
TestExecution("list");
TestExecution("memory");
TestExecution("version");
TestExecution("variables");
}
#endif #endif

View File

@ -57,8 +57,10 @@ private:
void RunTestset3(); void RunTestset3();
void RunTestset4(); void RunTestset4();
void RunTestset5(); void RunTestset5();
void RunTestset6();
void TestExpression(const char *expression, const char *result); void TestExpression(const char *expression, const char *result);
void TestStatement(const char *statement, const char *result); void TestStatement(const char *statement, const char *result);
void PerformTest(const char *input, const char *result, bool show); void PerformTest(const char *input, const char *result, bool show, bool check);
void TestExecution(const char* statement);
}; };