@Test
	public void test() {
		Logger.log("regex is " + regex);
		try {
			FileOutputStream stream = new FileOutputStream("res/testdata/AutomatonSerialization/automaton.ser");
			ObjectOutputStream oStream = new ObjectOutputStream(stream);
			oStream.writeObject(matcherAutomaton);
			Logger.log("Wrote Automaton");
			oStream.close();
			stream.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		matcherAutomaton = null;
		
		try {
			FileInputStream file = new FileInputStream("res/testdata/AutomatonSerialization/automaton.ser");
			ObjectInputStream oin = new ObjectInputStream(file);
			matcherAutomaton =  (eNfa) oin.readObject();
			oin.close();
			file.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

		for (String s : stringsToRunMatch) {
			matcherAutomaton.reset();
			System.err.print("at start, states are: ");
			for (State state : matcherAutomaton.getActiveStates())
				System.err.print(state.toString() + ", ");
			System.err.println();

			for (int i = 0; i < s.length(); ++i) {
				matcherAutomaton.nextChar(Character.toString(s.charAt(i)));
				System.err.print("at char " + s.charAt(i) + ", states are: ");
				for (State state : matcherAutomaton.getActiveStates())
					System.err.print(state.toString() + ", ");
				System.err.println();
			}
			assertEquals(regex + "//" + s, s.matches(regex), matcherAutomaton.isAcceptable());
			System.out.println(regex + "//" + s + " == " + s.matches(regex));
		}
	}