aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/de/hysky/skyblocker/utils/CalculatorTest.java
blob: c29efdf25cbd164311179976718217f325c3abf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package de.hysky.skyblocker.utils;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

public class CalculatorTest {
    @Test
    void testShorthands() {
        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);
    }

    @Test
    void testPrecedence() {
        Assertions.assertEquals(Calculator.calculate("5 + 2 * 2"), 9);
        Assertions.assertEquals(Calculator.calculate("5 - 2 / 2"), 4);
        Assertions.assertEquals(Calculator.calculate("5 * (1 + 2)"), 15);
    }

    @Test
    void testImplicitMultiplication() {
        Assertions.assertEquals(Calculator.calculate("5(2 + 2)"), 20);
    }

    @Test
    void testImplicitClosingParenthesis() {
        Assertions.assertEquals(Calculator.calculate("5(2 + 2"), 20);
    }
}