public void TestComputePrefixFunction() { const string input = "abra$abracadabra"; var expected = new[] { 0, 0, 0, 1, 0, 1, 2, 3, 4, 0, 1, 0, 1, 2, 3, 4 }; var actual = Kmp.ComputePrefixFunction(input); actual.ShouldBeEquivalentTo(expected); }
public void Execute(string mainString, string substring) { // Arrange var expectedResult = mainString.IndexOf(substring); var sut = new Kmp(substring); // Act var result = sut.Execute(mainString); // Assert Assert.Equal(expectedResult, result); }
public void Execute_GivenNull_Throws_ArgumentNullException() { // Arrange var substring = ""; string mainString = null; var sut = new Kmp(substring); // Act Action act = () => sut.Execute(mainString); // Assert Assert.Throws <ArgumentNullException>(act); }
public void Test1() { var kmp = new Kmp("ABCDABD"); Assert.Equal(1, kmp.Count("BBC ABCDAB ABCDABCDABDE")); var kmp2 = new Kmp("AA"); Assert.Equal(3, kmp2.Count("AAAA", true)); Assert.Equal(2, kmp2.Count("AAAA", false)); var kmp3 = new Kmp("A"); Assert.Equal(1, kmp3.Count("A")); }
public void Execute_StressTest() { // Arrange var randomStringGenerator = new RandomStringGenerator(); var substring = randomStringGenerator.Execute(1000); var sut = new Kmp(substring); var max = 10; for (int i = 0; i < max; i++) { var mainString = randomStringGenerator.Execute(999000); mainString = $"{mainString.Substring(0, 500000)}{substring}{mainString.Substring(500000)}"; var expectedResult = mainString.IndexOf(substring); // Act var result = sut.Execute(mainString); // Assert Assert.Equal(expectedResult, result); } }