Exemplo n.º 1
0
        public void Test_Add_Remove_CopyTo_Keys_Values()
        {
            var table = new SlimHashTable <string, string>(x => x, 10);

            table.Add("foo");
            AssertTableContents(table);
            var count = 32 * 5;

            for (var i = 0; i < count; i++)
            {
                table.Add("foo" + i);
                AssertTableContents(table);
            }
            AssertTableContents(table);
            Assert.IsTrue(table.Contains("foo"));
            Assert.AreEqual(count + 1, table.Count);
            Assert.IsFalse(table.Contains("bar"));

            AssertTableContents(table);
            for (var i = count - 1; i >= 0; i--)
            {
                var removed = table.Remove("foo" + i);
                Assert.IsTrue(removed);
                AssertTableContents(table);
            }
            Assert.IsTrue(table.Contains("foo"));
            Assert.AreEqual(1, table.Count);
            Assert.IsFalse(table.Contains("bar"));

            Assert.IsTrue(table.Remove("foo"));
            Assert.IsFalse(table.Contains("foo"));
            Assert.AreEqual(0, table.Count);
        }
Exemplo n.º 2
0
        private void AssertTableContents(SlimHashTable <string, string> table)
        {
            var dic      = table.ToDictionary(x => x.Key, x => x.Value);
            var keySet   = new HashSet <string>(table.Keys);
            var valueSet = new HashSet <string>(table.Values);
            var kvp      = new KeyValuePair <string, string> [table.Count];

            table.CopyTo(kvp, 0);
            var dic2 = kvp.ToDictionary(x => x.Key, x => x.Value);

            if (table.Count >= 1)
            {
                Assert.IsTrue(table.Contains("foo"));
                Assert.IsTrue(dic.ContainsKey("foo"));
                Assert.IsTrue(dic2.ContainsKey("foo"));
                Assert.IsTrue(keySet.Contains("foo"));
                Assert.IsTrue(valueSet.Contains("foo"));
            }

            for (var i = 0; i < table.Count - 1; i++)
            {
                var key = "foo" + (table.Count - 2 - i);
                Assert.IsTrue(table.Contains(key));
                Assert.IsTrue(dic.ContainsKey(key));
                Assert.IsTrue(dic2.ContainsKey(key));
                Assert.IsTrue(keySet.Contains(key));
                Assert.IsTrue(valueSet.Contains(key));
            }
        }
Exemplo n.º 3
0
        public void TestUpdateValueType()
        {
            var table = new SlimHashTable <string, MyTestValueType>(x => x.Key, 10);

            table.Add(new MyTestValueType("test", 5));

            Assert.IsTrue(table.Contains("test"));
            Assert.AreEqual(5, table["test"].Value);

            table["test"] = new MyTestValueType("test", 15);

            Assert.IsTrue(table.Contains("test"));
            Assert.AreEqual(15, table["test"].Value);
        }