コード例 #1
0
ファイル: AddRangeBefore.cs プロジェクト: panospd/ChainedList
        public void WhenTargetNodeIsHead_ShouldInsertItemsAtStart()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            sut.AddRangeBefore(sut.Head, new List <int> {
                10, 11, 12
            });

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

            Assert.AreEqual(10, first.Value);
            Assert.AreEqual(11, second.Value);
            Assert.AreEqual(12, third.Value);
            Assert.AreEqual(1, fourth.Value);
            Assert.AreEqual(2, fifth.Value);
            Assert.AreEqual(4, sixth.Value);
            Assert.IsNull(sixth.Next);
        }
コード例 #2
0
 public MainWindowViewModel()
 {
     AddNewCommand         = new RelayCommand(() => this.Add());
     RemoveSelectedCommand = new RelayCommand(() => this.Remove());
     ProfileCollection     = new ChainedList <Profile>();
     LoadPlayers();
 }
コード例 #3
0
ファイル: Remove.cs プロジェクト: panospd/ChainedList
        public void WhenCalledWithRefNodeAndPassedElementWithNoMatch_ShouldNotRemoveAnything()
        {
            var sut = new ChainedList <Person>(new List <Person>
            {
                new Person(1, "a", "e"),
                new Person(2, "b", "f"),
                new Person(3, "c", "g"),
                new Person(4, "d", "h"),
            });

            sut.Remove(new Person(1, "a", "e"));

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

            Assert.AreEqual(1, first.Value.Id);
            Assert.AreEqual("a", first.Value.Name);
            Assert.AreEqual(2, second.Value.Id);
            Assert.AreEqual("b", second.Value.Name);
            Assert.AreEqual(3, third.Value.Id);
            Assert.AreEqual("c", third.Value.Name);
            Assert.AreEqual(4, fourth.Value.Id);
            Assert.AreEqual("d", fourth.Value.Name);
            Assert.IsNull(fourth.Next);
        }
コード例 #4
0
ファイル: IsEmptyAndAny.cs プロジェクト: panospd/ChainedList
        public void WhenListEsEmpty_ShouldReturnTrue()
        {
            var sut = new ChainedList <int>();

            Assert.IsTrue(sut.IsEmpty);
            Assert.IsFalse(sut.Any());
        }
コード例 #5
0
ファイル: AddRangeBefore.cs プロジェクト: panospd/ChainedList
        public void WhenCalled_ShouldInsertItemBeforeSpecifiedNode()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            sut.AddRangeBefore(sut.Head.Next, new List <int> {
                10, 11, 12
            });

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

            Assert.AreEqual(1, first.Value);
            Assert.AreEqual(10, second.Value);
            Assert.AreEqual(11, third.Value);
            Assert.AreEqual(12, fourth.Value);
            Assert.AreEqual(2, fifth.Value);
            Assert.AreEqual(4, sixth.Value);
            Assert.IsNull(sixth.Next);
        }
コード例 #6
0
ファイル: Tail.cs プロジェクト: panospd/ChainedList
        public void WhenUsedAndListIsEmpty_ShouldReturnNull()
        {
            var sut = new ChainedList <int>();

            var result = sut.Tail;

            Assert.IsNull(result);
        }
コード例 #7
0
        public void WhenCalledAndEmptyList_ShouldReturn()
        {
            var sut = new ChainedList <int>();

            sut.RemoveTail();

            Assert.IsNull(sut.Head);
        }
コード例 #8
0
ファイル: Count.cs プロジェクト: panospd/ChainedList
        public void WhenListContainsNodes_ShouldReturnTotalNumberOfNodes()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 6
            });

            Assert.AreEqual(4, sut.Count);
        }
コード例 #9
0
        public void WhenIsEmptyList_ReturnsEmptyList()
        {
            var sut = new ChainedList <int>();

            sut.Reverse();

            Assert.IsTrue(sut.IsEmpty);
        }
コード例 #10
0
        public void WhenListNotEmpty_ShouldReturnFirstNode()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            Assert.AreEqual(1, sut.Head.Value);
        }
コード例 #11
0
ファイル: AddAtStart.cs プロジェクト: panospd/ChainedList
        public void WhenListIsEmpty_ShouldInsertItemAtStart()
        {
            var sut = new ChainedList <int>();

            sut.AddAtStart(10);

            Assert.AreEqual(10, sut.Head.Value);
            Assert.IsNull(sut.Head.Next);
        }
コード例 #12
0
ファイル: AddAfter.cs プロジェクト: panospd/ChainedList
        public void WhenCalledWithPredicateAndEmptyList_ShouldInsertItemAtEnd()
        {
            var sut = new ChainedList <int>();

            sut.AddAfter(node => node.Value == 1, 10);

            Assert.AreEqual(10, sut.Head.Value);
            Assert.IsNull(sut.Head.Next);
        }
コード例 #13
0
ファイル: ToList.cs プロジェクト: panospd/ChainedList
        public void WhenListIsEmpty_ShouldReturnAnEmptyList()
        {
            var sut = new ChainedList <int>(new List <int>());

            var result = sut.ToList();

            Assert.IsNotNull(result);
            Assert.IsEmpty(result);
        }
コード例 #14
0
        public void WhenCalledListHasOneNode_ListShouldBeEmpty()
        {
            var sut = new ChainedList <int>(new List <int> {
                1
            });

            sut.RemoveTail();

            Assert.IsTrue(sut.IsEmpty);
        }
コード例 #15
0
        public void WhenCalledWithNoMatch_ReturnsNUll()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var result = sut.Find(a => a.Value == 5);

            Assert.IsNull(result);
        }
コード例 #16
0
ファイル: RemoveAll.cs プロジェクト: panospd/ChainedList
        public void WhenCalledWithNoNodes_ShouldRemoveAllNodes()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 10
            });

            sut.Clear();

            Assert.IsTrue(sut.IsEmpty);
        }
コード例 #17
0
ファイル: RemoveAll.cs プロジェクト: panospd/ChainedList
        public void WhenCalledWithSpecificNodesAndListEmpty_ShouldRemoveNodes()
        {
            var sut = new ChainedList <int>();

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

            Assert.IsTrue(sut.IsEmpty);
        }
コード例 #18
0
ファイル: Tail.cs プロジェクト: panospd/ChainedList
        public void WhenUsed_ShouldReturnLastNode()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var result = sut.Tail;

            Assert.AreEqual(4, result.Value);
        }
コード例 #19
0
ファイル: RemoveHead.cs プロジェクト: panospd/ChainedList
        public void WhenCalledForListWithOneNode_ShouldEmptyList()
        {
            var sut = new ChainedList <int>(new List <int> {
                1
            });

            sut.RemoveHead();

            Assert.IsTrue(sut.IsEmpty);
        }
コード例 #20
0
        public void WhenCalledWithTElement_ReturnsFirstMatch()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var result = sut.NodeOf(2);

            Assert.AreEqual(2, result.Value);
            Assert.IsNotNull(result.Next);
        }
コード例 #21
0
        public void WhenCalled_ReturnsFirstMatch()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var result = sut.Find(a => a.Value == 2);

            Assert.AreEqual(2, result.Value);
            Assert.IsNotNull(result.Next);
        }
コード例 #22
0
        public void WhenCalledWithPredicateAndWithEmptyList_ShouldInsertItemAtEnd()
        {
            var sut = new ChainedList <int>();

            sut.AddBefore(node => node.Value == 1, 10);

            var first = sut.Head;

            Assert.AreEqual(10, first.Value);
            Assert.IsNull(first.Next);
        }
コード例 #23
0
ファイル: Count.cs プロジェクト: panospd/ChainedList
        public void WhenRemoveNode_CountShouldDecrement()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 6
            });
            var originalCount = sut.Count;

            sut.Remove(sut.Head);
            var newCount = sut.Count;

            Assert.AreEqual(4, originalCount);
            Assert.AreEqual(3, newCount);
        }
コード例 #24
0
        public void WhenHasOneNode_ReturnsListWithOneNode()
        {
            var sut = new ChainedList <int>(new List <int> {
                1
            });

            sut.Reverse();

            Assert.AreEqual(1, sut.Head.Value);
            Assert.AreEqual(1, sut.Tail.Value);
            Assert.IsNull(sut.Head.Next);
            Assert.IsFalse(sut.IsEmpty);
        }
コード例 #25
0
        public void WhenCreatingFromList_CreatesNewLighterList()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var head   = sut.Head;
            var second = head.Next;
            var third  = second.Next;

            Assert.AreEqual(1, head.Value);
            Assert.AreEqual(2, second.Value);
            Assert.AreEqual(4, third.Value);
        }
コード例 #26
0
ファイル: IsEmptyAndAny.cs プロジェクト: panospd/ChainedList
        public void WhenRemovesOnlyNOde_ShouldReturnTrue()
        {
            var sut = new ChainedList <int>(new List <int> {
                1
            });

            Assert.IsFalse(sut.IsEmpty);
            Assert.IsTrue(sut.Any());

            sut.RemoveHead();

            Assert.IsTrue(sut.IsEmpty);
            Assert.IsFalse(sut.Any());
        }
コード例 #27
0
ファイル: IsEmptyAndAny.cs プロジェクト: panospd/ChainedList
        public void WhenListNotEmpty_ShouldReturnFalse()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2
            });

            Assert.IsFalse(sut.IsEmpty);
            Assert.IsTrue(sut.Any());

            sut.RemoveHead();

            Assert.IsFalse(sut.IsEmpty);
            Assert.IsTrue(sut.Any());
        }
コード例 #28
0
        public void WhenCalledWithObjectTElementAndNoMatchFound_ReturnsNull()
        {
            var sut = new ChainedList <Person>(new List <Person>
            {
                new Person(1, "John", "Smith"),
                new Person(2, "Maria", "db"),
                new Person(3, "Docker", "Container"),
                new Person(4, "Ci", "Cd")
            });

            var result = sut.NodeOf(new Person(5, "a", "b"));

            Assert.IsNull(result);
        }
コード例 #29
0
ファイル: ToList.cs プロジェクト: panospd/ChainedList
        public void WhenCalled_ReturnsFlatList()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 3, 4
            });

            var result = sut.ToList();

            Assert.IsNotNull(result);
            Assert.IsNotEmpty(result);
            Assert.AreEqual(result.Count, 4);
            Assert.AreEqual(1, result[0]);
            Assert.AreEqual(2, result[1]);
            Assert.AreEqual(3, result[2]);
            Assert.AreEqual(4, result[3]);
        }
コード例 #30
0
ファイル: RemoveAll.cs プロジェクト: panospd/ChainedList
        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);
        }