public void FindPossibleSubstring_InvalidStartPosBeyondLastCharacter_ThrowsArgumentException()
        {
            var mockFinder = new Mock <IPalindromeFinder>();
            var searcher   = new PalindromeSearcher(mockFinder.Object);

            searcher.FindPossibleSubstring("12345", 5, 4);
        }
        public void FindPossibleSubstring_EndPosLowerThanStartPos_ThrowsArgumentException()
        {
            var mockFinder = new Mock <IPalindromeFinder>();
            var searcher   = new PalindromeSearcher(mockFinder.Object);

            searcher.FindPossibleSubstring("12345", 3, 2);
        }
        public void FindPossibleSubstring_NullInputString_ThrowsArgumentException()
        {
            var mockFinder = new Mock <IPalindromeFinder>();
            var searcher   = new PalindromeSearcher(mockFinder.Object);

            searcher.FindPossibleSubstring(String.Empty, 0, 1);
        }
        public void FindPalindromes_EmptyInputString_ThrowsArgumentException()
        {
            var mockFinder = new Mock <IPalindromeFinder>();
            var searcher   = new PalindromeSearcher(mockFinder.Object);

            searcher.FindPalindromes(String.Empty);
        }
        public void FindPossibleSubstring_ValidPossibleSubstringOutsideEndPosition_ReturnsMinusOne()
        {
            var mockFinder = new Mock <IPalindromeFinder>();
            var searcher   = new PalindromeSearcher(mockFinder.Object);

            var result = searcher.FindPossibleSubstring("123123", 0, 2);

            Assert.AreEqual(-1, result);
        }
        public void FindPossibleSubstring_ValidPossibleSubstring_ReturnsCorrectEndPosition()
        {
            var mockFinder = new Mock <IPalindromeFinder>();
            var searcher   = new PalindromeSearcher(mockFinder.Object);

            var result = searcher.FindPossibleSubstring("123123", 0, 4);

            Assert.AreEqual(3, result);
        }
        public void ScanSubstring_NoPalindromes_AddsNoResults()
        {
            var mockFinder = new Mock <IPalindromeFinder>();

            mockFinder.Setup(foo => foo.IsPalindrome(It.IsAny <String>())).Returns(false);
            var searcher = new PalindromeSearcher(mockFinder.Object);
            var results  = new List <PalindromeResult>();

            searcher.ScanSubstring("12345", 4, 1, results);

            Assert.AreEqual(0, results.Count);
            mockFinder.Verify(foo => foo.IsPalindrome(It.IsAny <String>()), Times.AtLeastOnce());
        }
        public void ScanSubstring_HasPalindromes_AddsSingleResult()
        {
            var mockFinder = new Mock <IPalindromeFinder>();

            mockFinder.Setup(foo => foo.IsPalindrome(It.IsAny <String>())).Returns(true);
            var searcher = new PalindromeSearcher(mockFinder.Object);
            var results  = new List <PalindromeResult>();

            searcher.ScanSubstring("1234321", 4, 1, results);

            Assert.AreEqual(1, results.Count);
            mockFinder.Verify(foo => foo.IsPalindrome(It.IsAny <String>()), Times.Once());
        }
        public void FindPalindromes_OverlappingEvenPalindromes_FindsAllPalindromes()
        {
            var finder   = new PalindromeFinder();
            var searcher = new PalindromeSearcher(finder);

            var results = searcher.FindPalindromes("123321123");

            Assert.AreEqual(2, results.Count);
            Assert.AreEqual(new PalindromeResult {
                Palindrome = "123321", StartIndex = 0, EndIndex = 5
            }, results[0]);
            Assert.AreEqual(new PalindromeResult {
                Palindrome = "321123", StartIndex = 3, EndIndex = 8
            }, results[1]);
        }
Пример #10
0
        public void FindPalindromes_GivenInputExample_FindsAllPalindromes()
        {
            var finder   = new PalindromeFinder();
            var searcher = new PalindromeSearcher(finder);

            var results = searcher.FindPalindromes("sqrrqabccbatudefggfedvwhijkllkjihxymnnmzpop");

            Assert.AreEqual(6, results.Count);
            Assert.AreEqual(new PalindromeResult {
                Palindrome = "hijkllkjih", StartIndex = 23, EndIndex = 32
            }, results[0]);
            Assert.AreEqual(new PalindromeResult {
                Palindrome = "defggfed", StartIndex = 13, EndIndex = 20
            }, results[1]);
            Assert.AreEqual(new PalindromeResult {
                Palindrome = "abccba", StartIndex = 5, EndIndex = 10
            }, results[2]);
        }