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.
|
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_MAX_DETERMINIZED_STATES
Default maximum number of states that
Operations.determinize(org.apache.lucene.util.automaton.Automaton, int) should create. |
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 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 testing
|
static String |
randomRegexp(Random r)
Returns random string, including full unicode range.
|
public static final int DEFAULT_MAX_DETERMINIZED_STATES
Operations.determinize(org.apache.lucene.util.automaton.Automaton, int)
should create.public static String randomRegexp(Random r)
public static Automaton randomAutomaton(Random random)
public static Automaton minimizeSimple(Automaton a)
public static Automaton determinizeSimple(Automaton a)
public static Automaton determinizeSimple(Automaton a, Set<Integer> 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)
public static boolean isDeterministicSlow(Automaton a)
Copyright © 2000-2015 Apache Software Foundation. All Rights Reserved.