public class AutomatonTestUtil extends Object
Capable of generating random regular expressions, and automata, and also provides a number of very basic unoptimized implementations (*slow) for testing.
Modifier and Type | Class and Description |
---|---|
static class |
AutomatonTestUtil.RandomAcceptedStrings
Lets you retrieve random strings accepted
by an Automaton.
|
Constructor and Description |
---|
AutomatonTestUtil() |
Modifier and Type | Method and Description |
---|---|
static void |
assertNoDetachedStates(Automaton a)
Checks that an automaton has no detached states that are unreachable
from the initial state.
|
static void |
determinizeSimple(Automaton a)
Simple, original brics implementation of determinize()
|
static void |
determinizeSimple(Automaton a,
Set<State> 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 |
isFiniteSlow(Automaton a)
Returns true if the language of this automaton is finite.
|
static void |
minimizeSimple(Automaton a)
Simple, original brics implementation of Brzozowski minimize()
|
static Automaton |
randomAutomaton(Random random)
return a random NFA/DFA for testing
|
static String |
randomRegexp(Random r)
Returns random string, including full unicode range.
|
public static String randomRegexp(Random r)
public static Automaton randomAutomaton(Random random)
public static void minimizeSimple(Automaton a)
public static void determinizeSimple(Automaton a)
public static void determinizeSimple(Automaton a, Set<State> initialset)
public static Set<IntsRef> getFiniteStringsRecursive(Automaton a, int limit)
Returns the set of accepted strings, assuming that at most
limit
strings are accepted. If more than limit
strings are accepted, the first limit strings found are returned. If limit
<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).
public static boolean isFiniteSlow(Automaton a)
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.
public static void assertNoDetachedStates(Automaton a)
Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.