Class AutomatonTestUtil
- java.lang.Object
-
- org.apache.lucene.tests.util.automaton.AutomatonTestUtil
-
public class AutomatonTestUtil extends Object
Utilities for testing automata.Capable of generating random regular expressions, and automata, and also provides a number of very basic unoptimized implementations (*slow) for testing.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AutomatonTestUtil.RandomAcceptedStrings
Lets you retrieve random strings accepted by an Automaton.
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_MAX_DETERMINIZED_STATES
Default maximum number of states thatOperations.determinize(org.apache.lucene.util.automaton.Automaton, int)
should create.
-
Constructor Summary
Constructors Constructor Description AutomatonTestUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
assertNoDetachedStates(Automaton a)
Checks that an automaton has no detached states that are unreachable from the initial state.static Automaton
determinizeSimple(Automaton a)
Simple, original brics implementation of determinize()static Automaton
determinizeSimple(Automaton a, Set<Integer> initialset)
Simple, original brics implementation of determinize() Determinizes the given automaton using the given set of initial states.static Set<IntsRef>
getFiniteStringsRecursive(Automaton a, int limit)
Simple, original implementation of getFiniteStrings.static boolean
isDeterministicSlow(Automaton a)
Returns true if the automaton is deterministic.static boolean
isFiniteSlow(Automaton a)
Returns true if the language of this automaton is finite.static Automaton
minimizeSimple(Automaton a)
Simple, original brics implementation of Brzozowski minimize()static Automaton
randomAutomaton(Random random)
return a random NFA/DFA for testingstatic String
randomRegexp(Random r)
Returns random string, including full unicode range.
-
-
-
Field Detail
-
DEFAULT_MAX_DETERMINIZED_STATES
public static final int DEFAULT_MAX_DETERMINIZED_STATES
Default maximum number of states thatOperations.determinize(org.apache.lucene.util.automaton.Automaton, int)
should create.- See Also:
- Constant Field Values
-
-
Method Detail
-
randomRegexp
public static String randomRegexp(Random r)
Returns random string, including full unicode range.
-
randomAutomaton
public static Automaton randomAutomaton(Random random)
return a random NFA/DFA for testing
-
minimizeSimple
public static Automaton minimizeSimple(Automaton a)
Simple, original brics implementation of Brzozowski minimize()
-
determinizeSimple
public static Automaton determinizeSimple(Automaton a)
Simple, original brics implementation of determinize()
-
determinizeSimple
public static Automaton determinizeSimple(Automaton a, Set<Integer> initialset)
Simple, original brics implementation of determinize() Determinizes the given automaton using the given set of initial states.
-
getFiniteStringsRecursive
public static Set<IntsRef> getFiniteStringsRecursive(Automaton a, int limit)
Simple, original implementation of getFiniteStrings.Returns the set of accepted strings, assuming that at most
limit
strings are accepted. If more thanlimit
strings are accepted, the first limit strings found are returned. Iflimit
<0, then the limit is infinite.This implementation is recursive: it uses one stack frame for each digit in the returned strings (ie, max is the max length returned string).
-
isFiniteSlow
public static boolean isFiniteSlow(Automaton a)
Returns true if the language of this automaton is finite.WARNING: this method is slow, it will blow up if the automaton is large. this is only used to test the correctness of our faster implementation.
-
assertNoDetachedStates
public static void assertNoDetachedStates(Automaton a)
Checks that an automaton has no detached states that are unreachable from the initial state.
-
isDeterministicSlow
public static boolean isDeterministicSlow(Automaton a)
Returns true if the automaton is deterministic.
-
-