コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: KmpTests.cs プロジェクト: lizzael/Lvc
        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);
        }
コード例 #3
0
ファイル: KmpTests.cs プロジェクト: lizzael/Lvc
        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);
        }
コード例 #4
0
        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"));
        }
コード例 #5
0
ファイル: KmpTests.cs プロジェクト: lizzael/Lvc
        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);
            }
        }