コード例 #1
0
        private void ComputeIfAbsentTest(int seed)
        {
            var prng = new Random(seed);

            const uint NUM_ENTRIES = 2398;
            var        gt          = new Dictionary <int, int>((int)NUM_ENTRIES);
            var        map         = new VectorFlatHashMap <int, int>(NUM_ENTRIES);

            Assert.Equal(0u, map.Size);

            for (uint i = 0; i < NUM_ENTRIES; ++i)
            {
                int x = prng.Next((int)NUM_ENTRIES * 2);

                int y = map.ComputeIfAbsent(x, a => {
                    Assert.Equal(x, a);
                    Assert.False(gt.ContainsKey(a));
                    return(a * a);
                });
                Assert.Equal(x * x, y);
                gt[x] = x * x;
            }

            Assert.Equal(gt.Count, map.Count);
            foreach ((int key, int value) in map)
            {
                Assert.Equal(key * key, value);
                Assert.Contains(new KeyValuePair <int, int>(key, value), gt);
            }
        }
コード例 #2
0
        private void MergeTest(int seed)
        {
            var prng = new Random(seed);

            const uint NUM_ENTRIES = 3214;

            var gt  = new Dictionary <int, int>((int)NUM_ENTRIES);
            var map = new VectorFlatHashMap <int, int>(NUM_ENTRIES);