public void AddValueOrUpdateTest()
        {
            var dictionary = new Dictionary <int, int> {
                { 1, 2 }
            };

            dictionary.Count.ShouldBe(1);
            dictionary[1].ShouldBe(2);

            Dicts.AddValueOrUpdate(dictionary, 1, k => 200, (k, v) => v * 111);

            dictionary.Count.ShouldBe(1);
            dictionary[1].ShouldBe(222);

            Dicts.AddValueOrUpdate(dictionary, 2, k => 200, (k, v) => v * 111);

            dictionary.Count.ShouldBe(2);
            dictionary[1].ShouldBe(222);
            dictionary[2].ShouldBe(200);

            dictionary.AddValueOrUpdate(2, k => 200, (k, v) => v * 111);
            dictionary.AddValueOrUpdate(3, k => 300, (k, v) => v * 111);

            dictionary.Count.ShouldBe(3);
            dictionary[1].ShouldBe(222);
            dictionary[2].ShouldBe(22200);
            dictionary[3].ShouldBe(300);
        }