Exemplo n.º 1
0
        static void Main(string[] args)
        {
            //var container = new ArrayBackedNodesContainer<int>(initialSize:32000000);
            var container = new GrowableArrayBackedNodeContainer <int>();
            var trie      = new PlugableBinaryTrie <int>(container);

            for (int i = 1000000; i > 0; i--)
            {
                trie.Add(i, i);
            }

            var allOk = true;

            for (int i = 1; i <= 1000000; i++)
            {
                var value = trie.GetValue(i);
                allOk = allOk & value == i;
            }

            if (allOk)
            {
                Console.WriteLine("All Ok.");
            }
            else
            {
                Console.WriteLine("Something is wrong.");
            }
        }
Exemplo n.º 2
0
        public void UsingIntKeysOnArrayBackedGrowableTrie()
        {
            object f1()
            {
                var container = new GrowableArrayBackedNodeContainer <int>(5000000, true);

                var trie = new PlugableBinaryTrie <int>(container);

                for (int i = TotalKeys; i >= 0; i--)
                {
                    trie.Add(i, i);
                }

                Assert.Equal(TotalKeys + 1, trie.Count);

                var lastKey = -1;
                var allOk   = true;

                foreach (var kvp in trie.GetEntrySet(reuseKeysList: true))
                {
                    var key   = kvp.Item1[0];
                    var value = kvp.Item2;

                    allOk   = allOk && key == value;
                    allOk   = allOk && key >= lastKey;
                    lastKey = key;
                }

                Assert.True(allOk);

                return(trie);
            }

            var oldCount = TotalKeys;

            TotalKeys = 100000;
            var disposable = f1() as IDisposable;

            disposable.Dispose();
            TotalKeys = oldCount;
            var execution = H.Run(f1);

            this.output.WriteLine(execution.ToString());
        }
Exemplo n.º 3
0
        public void UsingArrayBackedGrowableTrie()
        {
            object f1()
            {
                var container = new GrowableArrayBackedNodeContainer <int>(10000000, true);
                var trie      = new PlugableBinaryTrie <int>(container);

                for (int i = TotalKeys; i >= 0; i--)
                {
                    trie.Add(i, i);
                }

                var allOk = true;

                for (int i = TotalKeys; i >= 0; i--)
                {
                    var value = trie.GetValue(i, -1);
                    allOk = allOk && value == i;
                }

                Assert.True(allOk);

                return(trie);
            }

            var oldCount = TotalKeys;

            TotalKeys = 100000;
            var disp = f1() as IDisposable;

            disp.Dispose();
            TotalKeys = oldCount;

            var execution = H.Run(f1);

            this.output.WriteLine(execution.ToString());
        }