Implements basic numerical tables
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
48
tests/integration/Tables.cpp
Normal file
48
tests/integration/Tables.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#ifdef TESTS_BUILD
|
||||
#include <catch.hpp>
|
||||
#include "../src/Script.hpp"
|
||||
|
||||
TEST_CASE( "Create empty table", "[integration]" ) {
|
||||
Script* script = Script::Create("table = {}");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("table");
|
||||
REQUIRE(variable != nullptr);
|
||||
delete script;
|
||||
}
|
||||
|
||||
TEST_CASE( "Create simple integer table", "[integration]" ) {
|
||||
Script* script = Script::Create("table = {100, 50, 20, 5, -100, 50+50}");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("table");
|
||||
REQUIRE(variable != nullptr);
|
||||
delete script;
|
||||
}
|
||||
|
||||
TEST_CASE( "Create simple string table", "[integration]" ) {
|
||||
Script* script = Script::Create("table = {'bla', 'test', 'foo', 'bar'}");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("table");
|
||||
REQUIRE(variable != nullptr);
|
||||
delete script;
|
||||
}
|
||||
|
||||
TEST_CASE( "Index string table", "[integration]" ) {
|
||||
Script* script = Script::Create(
|
||||
R"(
|
||||
table = {'bla', 'test', 'foo', 'bar'}
|
||||
result = table[3]
|
||||
)");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("result");
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(*variable->EvaluateString() == "foo");
|
||||
delete script;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user