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); }
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); }
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); }
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(); }