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); } }