Beispiel #1
0
        static void Main(string[] args)
        {
            const int textVLen = 100;
              const int patternVLen = 2;

              var encoder = new ByteStringEncoder();
              var operationTimeTester = new OperationTimeTester();

              var text = GetByte2DArray(@"..\doc\Text2D.t", textVLen);
              var pattern = GetByte2DArray(@"..\doc\Pattern2D.t", patternVLen);
              var patternString = encoder.GetStringTo2DArray(pattern);
              var patternSize = string.Format("{0}x{1}", pattern.GetLength(0), pattern.GetLength(1));
              var textSize = string.Format("{0}x{1}", text.GetLength(0), text.GetLength(1));

              var brute = new Brute2DPatternSearcher();
              var result = operationTimeTester.Test(brute.Search, pattern, text);
              Show("Text", textSize, "Brute", patternString, patternSize, result);

              var rabinkarp2DModulo13 = new RabinKarp2DPatternSearcher(new HashingService(256, 13));
              result = operationTimeTester.Test(rabinkarp2DModulo13.Search, pattern, text);
              Show("Text", textSize, "Rabin-Karp 2D with hashing modulo 13", patternString, patternSize, result);

              var rabinkarp2DModulo101 = new RabinKarp2DPatternSearcher(new HashingService(256, 101));
              result = operationTimeTester.Test(rabinkarp2DModulo101.Search, pattern, text);
              Show("Text", textSize, "Rabin-Karp 2D with hashing modulo 101", patternString, patternSize, result);

              var rabinkarp2DModulo2147483647 = new RabinKarp2DPatternSearcher(new HashingService(256, 2147483647));
              result = operationTimeTester.Test(rabinkarp2DModulo2147483647.Search, pattern, text);
              Show("Text", textSize, "Rabin-Karp 2D with hashing modulo 2147483647", patternString, patternSize, result);
        }