#ifdef TESTS_BUILD #include #include "../src/Script.hpp" TEST_CASE( "Integer Negation", "[integration]" ) { Script script = Script::Create("-60"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateInteger() == -60); } TEST_CASE( "Float Negation", "[integration]" ) { Script script = Script::Create("-5.65"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateFloat() == Approx(-5.65)); } TEST_CASE( "Integer Addition", "[integration]" ) { Script script = Script::Create("1 + 5"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateInteger() == 6); } TEST_CASE( "Integer Subtraction", "[integration]" ) { Script script = Script::Create("1 - 5"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateInteger() == -4); } TEST_CASE( "Integer Multiplication", "[integration]" ) { Script script = Script::Create("5 * 8"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateInteger() == 40); } TEST_CASE( "Integer Division", "[integration]" ) { Script script = Script::Create("40 / 8"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateInteger() == 5); } TEST_CASE( "Float Addition", "[integration]" ) { Script script = Script::Create("1.2 + 5.34"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateFloat() == 6.54); } TEST_CASE( "Float Subtraction", "[integration]" ) { Script script = Script::Create("1.8 - 5.14"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateFloat() == -3.34); } TEST_CASE( "Float Multiplication", "[integration]" ) { Script script = Script::Create("5.2 * 8.9"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateFloat() == 46.28); } TEST_CASE( "Float Division", "[integration]" ) { Script script = Script::Create("95.18 / 8.87"); REQUIRE(!script.Diagnostics -> HasErrors()); script.Evaluate(); auto lastValue = script.GetLastValue(); REQUIRE(lastValue->EvaluateFloat() == Approx(10.7305524239)); } #endif