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."); } }
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()); }
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()); }