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); }
public MainWindowViewModel() { AddNewCommand = new RelayCommand(() => this.Add()); RemoveSelectedCommand = new RelayCommand(() => this.Remove()); ProfileCollection = new ChainedList <Profile>(); LoadPlayers(); }
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); }
public void WhenListEsEmpty_ShouldReturnTrue() { var sut = new ChainedList <int>(); Assert.IsTrue(sut.IsEmpty); Assert.IsFalse(sut.Any()); }
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); }
public void WhenUsedAndListIsEmpty_ShouldReturnNull() { var sut = new ChainedList <int>(); var result = sut.Tail; Assert.IsNull(result); }
public void WhenCalledAndEmptyList_ShouldReturn() { var sut = new ChainedList <int>(); sut.RemoveTail(); Assert.IsNull(sut.Head); }
public void WhenListContainsNodes_ShouldReturnTotalNumberOfNodes() { var sut = new ChainedList <int>(new List <int> { 1, 2, 4, 6 }); Assert.AreEqual(4, sut.Count); }
public void WhenIsEmptyList_ReturnsEmptyList() { var sut = new ChainedList <int>(); sut.Reverse(); Assert.IsTrue(sut.IsEmpty); }
public void WhenListNotEmpty_ShouldReturnFirstNode() { var sut = new ChainedList <int>(new List <int> { 1, 2, 4 }); Assert.AreEqual(1, sut.Head.Value); }
public void WhenListIsEmpty_ShouldInsertItemAtStart() { var sut = new ChainedList <int>(); sut.AddAtStart(10); Assert.AreEqual(10, sut.Head.Value); Assert.IsNull(sut.Head.Next); }
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); }
public void WhenListIsEmpty_ShouldReturnAnEmptyList() { var sut = new ChainedList <int>(new List <int>()); var result = sut.ToList(); Assert.IsNotNull(result); Assert.IsEmpty(result); }
public void WhenCalledListHasOneNode_ListShouldBeEmpty() { var sut = new ChainedList <int>(new List <int> { 1 }); sut.RemoveTail(); Assert.IsTrue(sut.IsEmpty); }
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); }
public void WhenCalledWithNoNodes_ShouldRemoveAllNodes() { var sut = new ChainedList <int>(new List <int> { 1, 2, 4, 10 }); sut.Clear(); Assert.IsTrue(sut.IsEmpty); }
public void WhenCalledWithSpecificNodesAndListEmpty_ShouldRemoveNodes() { var sut = new ChainedList <int>(); sut.RemoveAll(new List <ChainedNode <int> > { sut.Head }); Assert.IsTrue(sut.IsEmpty); }
public void WhenUsed_ShouldReturnLastNode() { var sut = new ChainedList <int>(new List <int> { 1, 2, 4 }); var result = sut.Tail; Assert.AreEqual(4, result.Value); }
public void WhenCalledForListWithOneNode_ShouldEmptyList() { var sut = new ChainedList <int>(new List <int> { 1 }); sut.RemoveHead(); Assert.IsTrue(sut.IsEmpty); }
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); }
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); }
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); }
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); }
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); }
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); }
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()); }
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()); }
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); }
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]); }
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); }