public void testSerialization()
 {
     string str = "Mares eat oats Mares eat oats";
     StringTheory graph = new StringTheory("Mares eat oats Mares eat oats");
     graph.RevFindNext("eat");
     Assert.True(graph.RevFindNext("eat") == 6, "");
     string path = "st_test.per";
     bool condition = true;
     Stream serializationStream = null;
     try
     {
         serializationStream = File.Open(path, FileMode.Create, FileAccess.ReadWrite);
         new BinaryFormatter().Serialize(serializationStream, graph);
         serializationStream.Close();
     }
     catch (IOException exception)
     {
         Console.WriteLine(exception.StackTrace);
         condition = false;
     }
     Assert.True(condition, "Something went wrong while persisting the string to a file.");
     graph = null;
     condition = true;
     try
     {
         serializationStream = File.Open(path, FileMode.Open, FileAccess.Read);
         BinaryFormatter formatter2 = new BinaryFormatter();
         graph = (StringTheory)formatter2.Deserialize(serializationStream);
     }
     catch (IOException exception2)
     {
         Console.WriteLine(exception2.StackTrace);
         condition = false;
     }
     Assert.True(condition, "Something went wrong while retrieving the string from a file.");
     Assert.True(str.Equals(graph.ToString()), "Strings don't match now.");
     Assert.True(graph.FindNext("eat") == 0x15, "string state is incorrect!");
 }
 public void testRevFindNext()
 {
     StringTheory theory = new StringTheory("Mares eat oats Mares eat oats");
     Assert.True(theory.RevFindNext("eat") == 0x15, "1) Couldn't find the test string");
     Assert.True(theory.RevFindNext("eat") == 6, "2) Couldn't find the test string");
     theory.Reset();
     Assert.True(theory.RevFindNext("eat") == 0x15, "3) Couldn't find the test string");
 }