Esempio n. 1
0
        public void GivenAnEmptyTrie_WhenIRetrieveAKey_ThenNoneIsReturned()
        {
            var trie = new MutableTrie <int>();
            var key  = "hello";

            trie.TryGet(key).IsSome.ShouldBeFalse();
        }
Esempio n. 2
0
        GivenATrieThatContainsMultipleValues_WhenIEnumerateTheTrie_ThenTheCorrectSequenceIsReturned()
        {
            IEnumerable <(string, int)> GetSequence()
            {
                while (true)
                {
                    var key = Guid.NewGuid();
                    yield return(key.ToString(), key.GetHashCode());
                }
            }

            var items = new HashSet <(string, int)>(
                GetSequence().Take(Random.Next(maxValue: 30) + 20));

            var trie = new MutableTrie <int>();

            foreach (var(key, value) in items)
            {
                trie[key] = value;
            }

            var originalItems = new HashSet <int>(items.Select(x => x.Item2));
            var trieItems     = new HashSet <int>(trie);

            Assert.That(
                originalItems.SetEquals(trieItems),
                $"{string.Join(", ", originalItems.Except(trieItems))} were not present in the Trie");
        }
Esempio n. 3
0
        public void GivenATrieThatContainsAValue_WhenIEnumerateTheTrie_ThenAnSingletonSequenceIsReturned()
        {
            var key   = Guid.NewGuid().ToString();
            var value = Guid.NewGuid().GetHashCode();
            var trie  = new MutableTrie <int> {
                [key] = value
            };

            trie.ShouldBe(new[] { value });
        }
Esempio n. 4
0
        public void GivenAnEmptyTrie_WhenISetAValueToAnEmptyKey_ThenThatValueIsSet()
        {
            var key   = "";
            var value = Guid.NewGuid().GetHashCode();
            var trie  = new MutableTrie <int> {
                [key] = value
            };

            trie[key].ShouldBe(value);
        }
Esempio n. 5
0
        public void GivenATrieThatContainsAValue_WhenIRetrieveThatKey_ThenTheValueIsReturned()
        {
            var key   = Guid.NewGuid().ToString();
            var value = Guid.NewGuid().GetHashCode();
            var trie  = new MutableTrie <int> {
                [key] = value
            };

            trie[key].ShouldBe(value);
        }
Esempio n. 6
0
        public void GivenATrieThatContainsAValue_WhenIRemoveThatKeyThenRetrieveIt_ThenNoValueIsReturned()
        {
            var key   = Guid.NewGuid().ToString();
            var value = Guid.NewGuid().GetHashCode();
            var trie  = new MutableTrie <int> {
                [key] = value
            };

            trie.Remove(key);

            trie.TryGet(key).IsSome.ShouldBeFalse();
        }
Esempio n. 7
0
        public void GivenAnEmptyTrie_WhenIEnumerateTheTrie_ThenAnEmptySequenceIsReturned()
        {
            var trie = new MutableTrie <int>();

            trie.ShouldBeEmpty();
        }