aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/de/hysky/skyblocker/utils/CalculatorTest.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/java/de/hysky/skyblocker/utils/CalculatorTest.java b/src/test/java/de/hysky/skyblocker/utils/CalculatorTest.java
new file mode 100644
index 00000000..9b64c7d3
--- /dev/null
+++ b/src/test/java/de/hysky/skyblocker/utils/CalculatorTest.java
@@ -0,0 +1,27 @@
+package de.hysky.skyblocker.utils;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class CalculatorTest {
+ @Test
+ void testCalculator() {
+ //check the magnitudes are working
+ Assertions.assertEquals(Calculator.calculate("1k"),1000);
+ Assertions.assertEquals(Calculator.calculate("0.12k"),120);
+ Assertions.assertEquals(Calculator.calculate("1k + 0.12k"),1120);
+ Assertions.assertEquals(Calculator.calculate("1 + 1s + 1k + 1m + 1b"),1001001065);
+
+ //check precedence works
+ Assertions.assertEquals(Calculator.calculate("5 + 2 * 2"),9);
+ Assertions.assertEquals(Calculator.calculate("5 - 2 / 2"),4);
+ Assertions.assertEquals(Calculator.calculate("5 * (1 + 2)"),15);
+
+ //check implicit multiplication
+ Assertions.assertEquals(Calculator.calculate("5(2 + 2)"),20);
+
+ //check unclosed parenthesis work
+ Assertions.assertEquals(Calculator.calculate("5(2 + 2"),20);
+ }
+
+}