mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-11 11:47:41 -05:00
Add simple tests
This commit is contained in:
71
tests/tests.cpp
Normal file
71
tests/tests.cpp
Normal file
@@ -0,0 +1,71 @@
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include "catch.hpp"
|
||||
|
||||
#include <math-helpers.hpp>
|
||||
|
||||
TEST_CASE("Expressions are evaluated successfully", "[math-helpers]")
|
||||
{
|
||||
auto expressionResult = EvalMathExpression("1");
|
||||
auto *doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr != nullptr);
|
||||
REQUIRE(*doubleValuePtr == 1.0);
|
||||
|
||||
expressionResult = EvalMathExpression("1 + 2");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr != nullptr);
|
||||
REQUIRE(*doubleValuePtr == 3.0);
|
||||
|
||||
expressionResult = EvalMathExpression("1 + 2 * 3");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr != nullptr);
|
||||
REQUIRE(*doubleValuePtr == 7.0);
|
||||
|
||||
expressionResult = EvalMathExpression("(1 + 2) * 3");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr != nullptr);
|
||||
REQUIRE(*doubleValuePtr == 9.0);
|
||||
|
||||
expressionResult =
|
||||
EvalMathExpression("cos(abs(1 - sqrt(10 - 2 * 3)) -1)");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr != nullptr);
|
||||
REQUIRE(*doubleValuePtr == 1.0);
|
||||
}
|
||||
|
||||
TEST_CASE("Invalid expressions are not evaluated", "[math-helpers]")
|
||||
{
|
||||
auto expressionResult = EvalMathExpression("");
|
||||
auto *doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr == nullptr);
|
||||
|
||||
expressionResult = EvalMathExpression(")");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr == nullptr);
|
||||
|
||||
expressionResult = EvalMathExpression("(");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr == nullptr);
|
||||
|
||||
expressionResult = EvalMathExpression("()");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr == nullptr);
|
||||
|
||||
expressionResult = EvalMathExpression("1 + 2)");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr == nullptr);
|
||||
|
||||
expressionResult = EvalMathExpression("1 + 2 * asdf");
|
||||
doubleValuePtr = std::get_if<double>(&expressionResult);
|
||||
|
||||
REQUIRE(doubleValuePtr == nullptr);
|
||||
}
|
||||
Reference in New Issue
Block a user