コード例 #1
0
        public void CanEnumerateListWhileSomethingChangesIt()
        {
            var list = new SlowImmutableList<int>(new[] { 1, 2, 3, 4 });
            var enumerator = list.GetEnumerator();
            enumerator.MoveNext().ShouldBe(true);

            var list2 = list.Add(1);
            Should.NotThrow(() => enumerator.MoveNext().ShouldBe(true));
        }
コード例 #2
0
        public void AddDoesNotAffectOriginalList()
        {
            var list = new SlowImmutableList<int>();
            var list2 = list.Add(1);

            list2.Count.ShouldBe(1);
            list2.ShouldContain(1);

            list.Count.ShouldBe(0);
            list.ShouldNotContain(1);
        }