@Test
    public void removeWhiteSpace(){
        // Test to check lexer handles whitespace correctly, i.e. uses it as a limiter and ignores it
        String string = "(   x      *      y    )";
        Token[] expectedOutput = {new Token("("), new Token("x"), new Token("*"), new Token("y"), new Token(")"), new Token("")};
        String[] expectedValues = new String[6];
        Token.Type[] expectedTypes = new Token.Type[6];
        Lexer lexer = new Lexer(string);
        Token[] output = lexer.Tokenize();
        String[] outputValues = new String[6];
        Token.Type[] outputTypes = new Token.Type[6];
        
        for (int i = 0; i < output.length; i++){
            expectedValues[i] = expectedOutput[i].getValue();
            expectedTypes[i] = expectedOutput[i].getType();
            outputValues[i] = output[i].getValue();
            outputTypes[i] = output[i].getType();
        }
        assertArrayEquals(expectedValues, outputValues);
        assertArrayEquals(expectedTypes, outputTypes);
    }