-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathParserTest.java
executable file
·42 lines (35 loc) · 1.49 KB
/
ParserTest.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
package cljtest.parsing;
import base.Selector;
import jstest.expression.AbstractTests;
import jstest.expression.Operation;
import java.util.function.BiConsumer;
import static jstest.expression.Operations.*;
/**
* @author Georgiy Korneev ([email protected])
*/
public final class ParserTest {
private static final Operation VARIABLES = checker -> {
final AbstractTests t = checker.getTests();
final BiConsumer<Character, Integer> var = (first, index) -> {
final char prefix = t.random().nextBoolean() ? first : Character.toUpperCase(first);
t.variable(prefix + t.random().randomString("xyzXYZ"), index);
};
for (int i = 0; i < 10; i++) {
var.accept('x', 0);
var.accept('y', 1);
var.accept('z', 2);
}
};
private static final Selector SELECTOR = ParserTester.builder()
.variant("Base", ARITH)
.variant("Variables", VARIABLES, ARITH)
.variant("Bitwise", VARIABLES, ARITH, INFIX_BIT_AND, INFIX_BIT_OR, INFIX_BIT_XOR)
.variant("PowLog", VARIABLES, ARITH, INFIX_POW, INFIX_LOG)
.variant("BitImplIff", VARIABLES, ARITH, INFIX_BIT_AND, INFIX_BIT_OR, INFIX_BIT_XOR, INFIX_BIT_IMPL, INFIX_BIT_IFF)
.selector();
private ParserTest() {
}
public static void main(final String... args) {
SELECTOR.main(args);
}
}