public void Remove() { var rd = new RouletteDictionary <string, int>(); for (int i = 0; i < 10; i++) { rd[i.ToString()] = i; } Assert.Equal(10, rd.Count); // remove evens. for (int i = 0; i < 10; i += 2) { rd.Remove(i.ToString()); } Assert.Equal(5, rd.Count); for (int i = 0; i < 10; i++) { bool found = rd.TryGetValue(i.ToString(), out int ret); if (i % 2 == 0) { Assert.False(found); } else { Assert.True(found); Assert.Equal(i, ret); } } }
public void RemoveAndResize() { var rd = new RouletteDictionary <string, int>(); // Add first 500. for (int i = 0; i < 500; i++) { rd.Add(i.ToString(), i); } // remove everything divisible by 7 for (int i = 0; i < 500; i += 7) { bool removed = rd.Remove(i.ToString()); Assert.True(removed); } // Add 2000 more elements to force resizing. for (int i = 500; i < 2500; i++) { rd.Add(i.ToString(), i); } for (int i = 0; i < 2500; i++) { bool found = rd.TryGetValue(i.ToString(), out int ret); if ((i < 500) && (i % 7 == 0)) { Assert.False(found); } else { Assert.True(found); Assert.Equal(i, ret); } } }