public void ConsecutiveRemovesWithGrow() { var dict = new FastDictionary <int, int>(4); for (int i = 0; i < 100; i++) { dict[i] = i; } for (int i = 0; i < 100; i += 2) { Assert.True(dict.Remove(i)); } for (int i = 0; i < 100; i++) { if (i % 2 == 0) { Assert.False(dict.Contains(i)); } else { Assert.True(dict.Contains(i)); } } Assert.Equal(50, dict.Count); Assert.Equal(256, dict.Capacity); }
public void InsertionAfterClear() { var dict = new FastDictionary <int, int>(200); for (int i = 0; i < 100; i++) { dict[i] = i; } dict.Clear(); Assert.Equal(0, dict.Count); Assert.Equal(256, dict.Capacity); for (int i = 0; i < 100; i += 10) { dict[i] = i; } for (int i = 0; i < 100; i++) { if (i % 10 == 0) { Assert.True(dict.Contains(i)); } else { Assert.False(dict.Contains(i)); } } }
public void AddDeleted() { var dict = new FastDictionary <int, int>(16); dict.Add(1, 1); dict.Add(2, 2); dict.Remove(1); dict.Add(17, 17); Assert.False(dict.Contains(1)); Assert.True(dict.Contains(2)); Assert.True(dict.Contains(17)); Assert.Equal(2, dict.Count); Assert.Equal(16, dict.Capacity); }
public void ConsecutiveInsertionsWithoutGrow() { var dict = new FastDictionary <int, int>(200); for (int i = 0; i < 100; i++) { dict.Add(i, i); } for (int i = 0; i < 100; i++) { Assert.True(dict.Contains(i)); Assert.Equal(i, dict[i]); } int count = 0; foreach (var item in dict) { Assert.Equal(item.Key, item.Value); count++; } Assert.Equal(100, count); Assert.Equal(100, dict.Count); Assert.Equal(256, dict.Capacity); }
public void UseOfOfBoundsHashes() { var dict = new FastDictionary <int, int>(16, new ForceOutOfRangeHashesEqualityComparer()); dict[1] = 1; dict[2] = 2; Assert.Equal(1, dict[1]); Assert.Equal(2, dict[2]); dict.Remove(1); Assert.False(dict.Contains(1)); Assert.True(dict.Contains(2)); dict.Remove(2); Assert.False(dict.Contains(1)); Assert.False(dict.Contains(2)); }
public void InsertDeleted() { var dict = new FastDictionary <int, int>(16); dict[1] = 1; dict[2] = 2; dict.Remove(1); dict[17] = 17; Assert.False(dict.Contains(1)); Assert.True(dict.Contains(2)); Assert.True(dict.Contains(17)); Assert.Equal(2, dict.Count); Assert.Equal(16, dict.Capacity); }
public void ConsecutiveInsertionsAndGrow() { var dict = new FastDictionary <int, int>(4); for (int i = 0; i < 100; i++) { dict.Add(i, i); } for (int i = 0; i < 100; i++) { Assert.True(dict.Contains(i)); Assert.Equal(i, dict[i]); } Assert.Equal(100, dict.Count); Assert.Equal(256, dict.Capacity); }
public void Clear() { var dict = new FastDictionary <int, int>(200); for (int i = 0; i < 100; i++) { dict[i] = i; } dict.Clear(); Assert.Equal(0, dict.Count); Assert.Equal(256, dict.Capacity); for (int i = 0; i < 100; i++) { Assert.False(dict.Contains(i)); } }