Beispiel #1
0
        public void GivenAWord_WhenTryToAddTwice_ShouldContainOne()
        {
            // Arrange
            var word = "test";
            var trie = new MyTrie();

            // Act
            trie.Insert(word);
            trie.Insert(word);

            // Assert
            trie.HasWord(word).Should().BeTrue();
        }
        public void GivenAWord_WhenIsHafOfAnotherWord_ShouldRemoveTheEndOfWordFlag()
        {
            // Arrange
            var trie = new MyTrie();
            trie.Insert("can");
            trie.Insert("cannon");

            // Act
            trie.Remove("can");

            // Assert
            trie.HasWord("can").Should().BeFalse();
            trie.HasWord("cannon").Should().BeTrue();
        }
Beispiel #3
0
        public void GivenTwoWords_WhenTheyAreDistinct_ShouldContainsBoth()
        {
            // Arrange
            var word1 = "cat";
            var word2 = "dog";
            var trie  = new MyTrie();

            // Act
            trie.Insert(word1);
            trie.Insert(word2);

            // Assert
            trie.HasWord(word1).Should().BeTrue();
            trie.HasWord(word2).Should().BeTrue();
        }
        public void GivenANonCompleteWord_WhenHasSomeOtherWordsThatMatchesToBegin_ShouldReturnThoseWords()
        {
            // Arrange
            var trie = new MyTrie();

            trie.Insert("car");
            trie.Insert("card");
            trie.Insert("care");
            trie.Insert("careful");
            trie.Insert("egg");

            // Act
            var words = trie.AutoCompletion("car");

            // Assert
            words.Should().HaveCount(4).And.BeEquivalentTo("car", "card", "care", "careful");
        }
        public void GivenAWord_WhenTrieHasThisOne_ShouldRemoveIt()
        {
            // Arrange
            var trie = new MyTrie();
            trie.Insert("cat");

            // Act
            trie.Remove("cat");

            // Assert
            trie.HasWord("cat").Should().BeFalse();
        }
Beispiel #6
0
        public void GivenAWord_WhenTrieIsEmpty_ShouldAddIt()
        {
            // Arrange
            var word = "test";
            var trie = new MyTrie();

            // Act
            trie.Insert(word);

            // Assert
            trie.HasWord(word).Should().BeTrue();
        }
Beispiel #7
0
        public void GivenATrie_WhenTryToFindAInexistentWord_ShouldReturnFalse()
        {
            // Arrange
            var word   = "cat";
            var search = "dog";
            var trie   = new MyTrie();

            // Act
            trie.Insert(word);

            // Assert
            trie.HasWord(search).Should().BeFalse();
        }
Beispiel #8
0
        public void GivenAWord_WhenIsPartOfAnotherWord_ShouldReturnFalse()
        {
            // Arrange
            var word   = "Canada";
            var search = "Can";
            var trie   = new MyTrie();

            // Act
            trie.Insert(word);

            // Assert
            trie.HasWord(search).Should().BeFalse();
        }