public void Can_find_pattern_within_text()
        {
            var text    = "abacadabrabracabracadabrabrabracad";
            var pattern = "rab";

            var result = RabinKarpMatcher.Find(text, pattern, 256, 13);

            Assert.AreEqual(8, result);
        }
        public void Can_find_not_pattern_within_text_when_pattern_is_wrong()
        {
            var text    = "abacadabrabracabracadabrabrabracad";
            var pattern = "abracadabra";

            var result = RabinKarpMatcher.Find(text, pattern, 256, 13);

            Assert.AreEqual(-1, result);
        }
        public void GetMatchingIndexes_InRabinKarpMatcher_ShouldReturn_MatchingPatternIndexes(
            string text,
            string pattern,
            int matchingIndexCount)
        {
            // Arrange
            IStringMatcher stringMatcher = new RabinKarpMatcher();

            // Act
            var matchingIndexes = stringMatcher.GetMatchingIndexes(text, pattern);

            // Assert
            matchingIndexes.Count.Should().Be(matchingIndexCount);
        }