From b53a0b1f926584849712e04cd5007606e75f37b7 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Sun, 21 Jul 2024 19:04:52 +0200 Subject: [PATCH] test(evaluator): Add more tests Signed-off-by: Myzel394 <50424412+Myzel394@users.noreply.github.com> --- .../evaluatto/ExpressionComplexTest.kt | 43 ---------------- .../evaluatto/ExpressionSimpleTest.kt | 51 +++++++++++++++++++ 2 files changed, 51 insertions(+), 43 deletions(-) diff --git a/data/evaluatto/src/test/java/io/github/sadellie/evaluatto/ExpressionComplexTest.kt b/data/evaluatto/src/test/java/io/github/sadellie/evaluatto/ExpressionComplexTest.kt index fc8c8883..cd9f419f 100644 --- a/data/evaluatto/src/test/java/io/github/sadellie/evaluatto/ExpressionComplexTest.kt +++ b/data/evaluatto/src/test/java/io/github/sadellie/evaluatto/ExpressionComplexTest.kt @@ -60,47 +60,4 @@ class ExpressionComplexTest { @Test fun shouldDivideRootAndDivideInCorrectOrder() = assertExpr("(√9)÷6", "0.5") - - @Test - fun singleNumber() = assertExpr("42", "42") - - @Test(expected = NumberFormatException::class) - fun divisionByZero() = assertExpr("1÷0", "") - - @Test(expected = NumberFormatException::class) - fun invalidExpressionMissingOperand() = assertExpr("42+", "") - - @Test - fun largeNumbers() = assertExpr("9999999999*9999999999", "99999999980000000001") - - @Test - fun highPrecision() = assertExpr("1÷3", "0.3333333333") - - @Test - fun deeplyNestedParentheses() = assertExpr("((((((42))))))", "42") - - @Test - fun constantsAndFunctions() = assertExpr("π+e", "${Math.PI + Math.E}") - - @Test - fun edgeMathematicalCases() = - assertExpr("0^0", "1") // Depending on the mathematical interpretation used - - @Test - fun trigonometricLimits() = assertExpr("sin(0)", "0") - - @Test - fun sinAtPi() = assertExpr("sin(π)", "0") - - @Test - fun sinAtHalfPi() = assertExpr("sin(π÷2)", "1") - - @Test - fun cosAtPi() = assertExpr("cos(π)", "-1") - - @Test - fun cosAtHalfPi() = assertExpr("cos(π÷2)", "0") - - @Test - fun cosAtPiOverThree() = assertExpr("cos(π÷3)", "0.5") } diff --git a/data/evaluatto/src/test/java/io/github/sadellie/evaluatto/ExpressionSimpleTest.kt b/data/evaluatto/src/test/java/io/github/sadellie/evaluatto/ExpressionSimpleTest.kt index 03419438..da4dc9a4 100644 --- a/data/evaluatto/src/test/java/io/github/sadellie/evaluatto/ExpressionSimpleTest.kt +++ b/data/evaluatto/src/test/java/io/github/sadellie/evaluatto/ExpressionSimpleTest.kt @@ -111,4 +111,55 @@ class ExpressionSimpleTest { @Test fun expression29() = assertExpr("0!", "1") + + @Test + fun factorial() = assertExpr("5!", "120") + + @Test + fun singleNumber() = assertExpr("42", "42") + + @Test(expected = NumberFormatException::class) + fun divisionByZero() = assertExpr("1÷0", "") + + @Test(expected = NumberFormatException::class) + fun invalidExpressionMissingOperand() = assertExpr("42+", "") + + @Test + fun largeNumbers() = assertExpr("9999999999*9999999999", "99999999980000000001") + + @Test + fun highPrecision() = assertExpr("1÷3", "0.3333333333") + + @Test + fun deeplyNestedParentheses() = assertExpr("((((((42))))))", "42") + + @Test + fun constantsAndFunctions() = assertExpr("π+e", "${Math.PI + Math.E}") + + @Test(expected = NumberFormatException::class) + fun edgeMathematicalCases() = assertExpr("0^0", "") + + @Test + fun zeroExponent() = assertExpr("5^0", "1") + + @Test + fun negativeExponent() = assertExpr("5^-1", "0.2") + + @Test + fun trigonometricLimits() = assertExpr("sin(0)", "0") + + @Test + fun sinAtPi() = assertExpr("sin(π)", "0") + + @Test + fun sinAtHalfPi() = assertExpr("sin(π÷2)", "1") + + @Test + fun cosAtPi() = assertExpr("cos(π)", "-1") + + @Test + fun cosAtHalfPi() = assertExpr("cos(π÷2)", "0") + + @Test + fun cosAtPiOverThree() = assertExpr("cos(π÷3)", "0.5") }