Exemplo n.º 1
0
 private static void AddOrUpdateInner(int i, MonsterIndexBackedIndex.View <int, string> thing)
 {
     thing.AddOrUpdate(i, "hello");
     Assert.Equal("hello", thing.GetOrThrow(i));
     thing.AddOrUpdate(i, "world hello");
     Assert.Equal("world hello", thing.GetOrThrow(i));
 }
Exemplo n.º 2
0
        private static void GetOrThrowInner(int i, MonsterIndexBackedIndex.View <int, string> target)
        {
            Assert.ThrowsAny <Exception>(() => target.GetOrThrow(i));

            Assert.True(target.TryAdd(i, "1"));

            Assert.Equal("1", target.GetOrThrow(i));
        }
Exemplo n.º 3
0
        private static void TryGetValueInner(int i, MonsterIndexBackedIndex.View <int, string> target)
        {
            Assert.False(target.TryGetValue(i, out var _));

            Assert.True(target.TryAdd(i, "1"));

            Assert.True(target.TryGetValue(i, out var second));
            Assert.Equal("1", second);
        }
Exemplo n.º 4
0
        public async Task AddUpdateParallelSameView()
        {
            var thing = new MonsterIndexBackedIndex.View <int, string>();

            var tasks = new List <Task>();

            for (var i = 0; i < 500 * 4; i += 4)
            {
                var j = i;
                tasks.Add(Task.Run(() => AddOrUpdateInner(j, thing)));
                tasks.Add(Task.Run(() => GetOrAddInner(j + 1, thing)));
                tasks.Add(Task.Run(() => TryGetValueInner(j + 2, thing)));
                tasks.Add(Task.Run(() => GetOrThrowInner(j + 3, thing)));
            }

            await Task.WhenAll(tasks.ToArray());
        }
Exemplo n.º 5
0
        public void GetOrThrow(int i)
        {
            var target = new MonsterIndexBackedIndex.View <int, string>();

            GetOrThrowInner(i, target);
        }
Exemplo n.º 6
0
        public void TryGetValue(int i)
        {
            var target = new MonsterIndexBackedIndex.View <int, string>();

            TryGetValueInner(i, target);
        }
Exemplo n.º 7
0
 private static void GetOrAddInner(int i, MonsterIndexBackedIndex.View <int, string> thing)
 {
     Assert.Equal("not hello", thing.GetOrAdd(i, "not hello"));
     Assert.Equal("not hello", thing.GetOrAdd(i, "hello"));
 }
Exemplo n.º 8
0
        public void GetOrAdd(int i)
        {
            var thing = new MonsterIndexBackedIndex.View <int, string>();

            GetOrAddInner(i, thing);
        }
Exemplo n.º 9
0
        public void AddOrUpdate(int i)
        {
            var thing = new MonsterIndexBackedIndex.View <int, string>();

            AddOrUpdateInner(i, thing);
        }