/
MathParserTest.java
47 lines (40 loc) · 1.34 KB
/
MathParserTest.java
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package org.isk.jvmhardcore.mathparser;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import org.isk.jvmhardcore.mathparser.core.Tokenizer.ParserException;
import org.junit.Assert;
import org.junit.Test;
public class MathParserTest {
@Test
public void parse0() {
final String string = "2+5";
final InputStream inputStream = new ByteArrayInputStream(string.getBytes());
final MathParser parser = new MathParser(inputStream);
final String[] tokens = parser.parse();
Assert.assertArrayEquals(new String[] { "2", "+", "5" }, tokens);
}
@Test
public void parse1() {
final String string = "32+5";
final InputStream inputStream = new ByteArrayInputStream(string.getBytes());
final MathParser parser = new MathParser(inputStream);
try {
parser.parse();
Assert.fail();
} catch (ParserException e) {
Assert.assertEquals("Line 1, column 2 - Expected: '+'. Got: 2", e.getMessage());
}
}
@Test
public void parse2() {
final String string = "2+,5";
final InputStream inputStream = new ByteArrayInputStream(string.getBytes());
final MathParser parser = new MathParser(inputStream);
try {
parser.parse();
Assert.fail();
} catch (ParserException e) {
Assert.assertEquals("Line 1, column 3 - Expected: Digit [0-9]. Got: ,", e.getMessage());
}
}
}