Exemple #1
0
        public void WhenCalledWithSpecificNodesAndListEmpty_ShouldRemoveNodes()
        {
            var sut = new ChainedList <int>();

            sut.RemoveAll(new List <ChainedNode <int> > {
                sut.Head
            });

            Assert.IsTrue(sut.IsEmpty);
        }
Exemple #2
0
        public void WhenCalledWithElementPredicateAndNoMatch_ShouldNotRemoveAnyElement()
        {
            var sut = new ChainedList <int>(new List <int> {
                2, 10
            });

            sut.RemoveAll(v => v == 1 || v == 4);

            Assert.AreEqual(2, sut.Count);
            var first  = sut.Head;
            var second = first.Next;

            Assert.AreEqual(2, first.Value);
            Assert.AreEqual(10, second.Value);
            Assert.IsNull(second.Next);
        }
Exemple #3
0
        public void WhenCalledWithElementPredicate_ShouldRemoveAllMatchingNodes()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 10, 1, 4
            });

            sut.RemoveAll(v => v == 1 || v == 4);

            Assert.AreEqual(2, sut.Count);
            var first  = sut.Head;
            var second = first.Next;

            Assert.AreEqual(2, first.Value);
            Assert.AreEqual(10, second.Value);
            Assert.IsNull(second.Next);
        }
Exemple #4
0
        public void WhenCalledWithSpecificNodes_ShouldRemoveNodes()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 10
            });

            sut.RemoveAll(new List <ChainedNode <int> > {
                sut.Head, sut.Head.Next
            });

            var first  = sut.Head;
            var second = first.Next;

            Assert.AreEqual(4, first.Value);
            Assert.AreEqual(10, second.Value);
            Assert.IsNull(second.Next);
        }
Exemple #5
0
        public void WhenCalledWithSpecificNodesAndContainNoMatching_ShouldRemoveOnlyMatchingNodes()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 10
            });

            sut.RemoveAll(new List <ChainedNode <int> > {
                sut.Head, sut.Head.Next.Next, new ChainedNode <int>(2)
            });

            var first  = sut.Head;
            var second = first.Next;

            Assert.AreEqual(2, first.Value);
            Assert.AreEqual(10, second.Value);
            Assert.IsNull(second.Next);
        }
Exemple #6
0
        public void WhenCalledWithSpecificElements_ShouldRemoveFirstMatchingNodesContainingElements()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 10, 1, 4
            });

            sut.RemoveAll(new List <int> {
                1, 4
            });

            var first  = sut.Head;
            var second = first.Next;
            var third  = second.Next;
            var fourth = third.Next;

            Assert.AreEqual(2, first.Value);
            Assert.AreEqual(10, second.Value);
            Assert.AreEqual(1, third.Value);
            Assert.AreEqual(4, fourth.Value);
            Assert.IsNull(fourth.Next);
        }