public GrowableArrayBackedNodeContainer(int?size = null, bool useArrayPool = false) { if (size.HasValue == false) { size = 100000; } _size = size.Value; var initialData = new ArrayBackedNodesContainer <T>(_size, useArrayPool); _data.Add(initialData); }
public void UsingIntKeysOnArrayBackedTrie() { object f1() { var container = new ArrayBackedNodesContainer <int>(TotalKeys * 32); 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; Assert.True(allOk); 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 UsingArrayBackedTrie() { object f1() { var container = new ArrayBackedNodesContainer <int>(TotalKeys * 32); 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()); }