org.apache.lucene.util.automaton

## Class AutomatonTestUtil

- java.lang.Object
- - org.apache.lucene.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
`static class` `AutomatonTestUtil.RandomAcceptedStrings` Lets you retrieve random strings accepted by an Automaton.

### Constructor Summary

Constructors
Constructor and Description
`AutomatonTestUtil()`

### Method Summary

Methods
`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 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.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AutomatonTestUtil

    public AutomatonTestUtil()

### 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 void minimizeSimple(Automaton a)

Simple, original brics implementation of Brzozowski minimize()

#### determinizeSimple

    public static void determinizeSimple(Automaton a)

Simple, original brics implementation of determinize()

#### determinizeSimple

    public 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.

#### 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.