public static void Main() { // SuffixTree.Create("abcabxabcd"); // SuffixTree.Create("abcdefabxybcdmnabcdex"); // SuffixTree.Create("abcadak"); // SuffixTree.Create("dedododeeodo"); // SuffixTree.Create("ooooooooo"); // SuffixTree.Create("mississippi"); SuffixTree.Create("AABAAAB"); }
private static void CreateSuffixTree(string text, TraceLevel traceLevel) { if (string.IsNullOrEmpty(text) || text.Length <= 1) { throw new ArgumentException("text cannot be null, empty, or have a length less than 1"); } Stopwatch stopWatch = new Stopwatch(); Console.Write("."); if (traceLevel >= TraceLevel.Lite) { Debug.WriteLine(""); Debug.WriteLine(""); Debug.WriteLine(""); Debug.WriteLine("================================================================================================= "); Debug.WriteLine(text); Debug.WriteLine(""); Debug.WriteLine("text length: {0}", text.Length); } else if (traceLevel >= TraceLevel.BuildTime) { Debug.WriteLine("================================================================================================= "); Debug.WriteLine(""); Debug.WriteLine("text length: {0}", text.Length); } stopWatch.Start(); var suffixTree = SuffixTree.Create <SortedList>(text); stopWatch.Stop(); if (traceLevel >= TraceLevel.BuildTime) { Debug.WriteLine("total milliseconds: {0}", stopWatch.ElapsedMilliseconds); Debug.WriteLine(""); } // diagnose.. var diag = SuffixTreeDiagnostic.create(suffixTree); diag.display(traceLevel); }