Пример #1
0
        public static void LongestPrefixSuffixArray_PrefixSuffixOfLength0_PassExpected()
        {
            // Arrange
            var searcher = new KnuthMorrisPrattSearcher();
            var s        = "AB";

            // Act
            var expectedItem = new[] { 0, 0 };
            var actualItem   = searcher.FindLongestPrefixSuffixValues(s);

            // Assert
            CollectionAssert.AreEqual(expectedItem, actualItem);
        }
Пример #2
0
        public static void FindIndexes_ItemsMissing_NoIndexesReturned()
        {
            // Arrange
            var searcher = new KnuthMorrisPrattSearcher();
            var str      = "ABABA";
            var pat      = "ABB";

            // Act & Assert
            var indexes = searcher.FindIndexes(str, pat);

            // Assert
            Assert.IsEmpty(indexes);
        }
Пример #3
0
        public static void FindIndexes_ItemsPresent_PassExpected()
        {
            // Arrange
            var searcher = new KnuthMorrisPrattSearcher();
            var str      = "ABABAcdeABA";
            var pat      = "ABA";

            // Act
            var expectedItem = new[] { 0, 2, 8 };
            var actualItem   = searcher.FindIndexes(str, pat);

            // Assert
            CollectionAssert.AreEqual(expectedItem, actualItem);
        }
Пример #4
0
        static void SearchDemo()
        {
            string needle   = "ardcara";
            string haystack = "abataradabardardcaraadatatabat";

            Console.WriteLine();
            Console.WriteLine("Needle:");
            Console.WriteLine(needle);
            Console.WriteLine();
            Console.WriteLine("Haystack:");
            Console.WriteLine(haystack);
            Console.WriteLine();

            IStringSearcher stringSearcher = new BoyerMooreSearcher();

            Console.WriteLine("BM found position: {0}", stringSearcher.Search(needle, haystack));

            stringSearcher = new BoyerMooreHorspoolSearcher();
            Console.WriteLine("BMH found position: {0}", stringSearcher.Search(needle, haystack));

            stringSearcher = new KnuthMorrisPrattSearcher();
            Console.WriteLine("KMP found position: {0}", stringSearcher.Search(needle, haystack));

            Console.WriteLine();
            Console.WriteLine("Array:");

            int[] arr     = { 1, 4, 7, 9, 12, 14, 15, 17, 19, 20, 23, 25, 27, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39 };
            int   element = 37;

            ISearcher <int> searcher = new BinarySearcher();

            Console.WriteLine("Binary search of element {0}: position {1}", element, searcher.Search(element, arr, arr.Length));

            searcher = new InterpolationSearcher();
            Console.WriteLine("Interpolation search of element {0}: position {1}", element, searcher.Search(element, arr, arr.Length));

            Console.ReadKey();
            Console.Clear();
        }