public void AddLast_ItemShallBeAdded_ToTheEndOfList() { // Arrange var linkedList = new SinglyLinkList<decimal>(); var lastItem = new SinglyLinkListNode<decimal>(10.0m); // Act linkedList.AddLast(lastItem); // Assert Assert.AreEqual(1, linkedList.Count, "There should be 1 item."); Assert.AreEqual(lastItem, linkedList.GetHeadAndTail().Item1, "Head should point to the same item."); Assert.AreEqual(lastItem, linkedList.GetHeadAndTail().Item2, "Tail should point to the same item."); }
public void AddLast_WhenThereAreMoreElements_ShouldAddToTheLastPosition() { // Arrange var linkedList = new SinglyLinkList<decimal>(); linkedList.AddFirst(new SinglyLinkListNode<decimal>(2.0m)); linkedList.AddFirst(new SinglyLinkListNode<decimal>(3.4m)); // Act linkedList.AddLast(new SinglyLinkListNode<decimal>(5.5m)); // Assert Assert.AreEqual(5.5m, linkedList.GetHeadAndTail().Item2.Value, "Should contain expected value."); Assert.AreEqual(3.4m, linkedList.ElementAt(0), "Should be the expected value."); Assert.AreEqual(2.0m, linkedList.ElementAt(1), "Should be the expected value."); Assert.AreEqual(5.5m, linkedList.ElementAt(2), "Should be the expected value."); }
public void AddLast_WhenThereAreOnlySingleItemInTheListAddingNew_ShouldBeTheLast() { // Arrange var linkedList = new SinglyLinkList<short>(); linkedList.AddFirst(new SinglyLinkListNode<short>(1)); // Act linkedList.AddLast(new SinglyLinkListNode<short>(3)); // Assert Assert.AreEqual(1, linkedList.GetHeadAndTail().Item1.Value, "Should contain the expected value."); Assert.AreEqual(3, linkedList.GetHeadAndTail().Item2.Value, "Should contain the expected value."); Assert.AreEqual(linkedList.GetHeadAndTail().Item1.Next, linkedList.GetHeadAndTail().Item2, "Head should point to tail."); }
public void Remove_WhenIsOnlySingleItem_RemovingItShouldResetHeadAndTail() { // Arrange var linkedList = new SinglyLinkList<string>(); linkedList.AddLast(new SinglyLinkListNode<string>("Hello")); // Act linkedList.Remove("Hello"); // Assert Assert.IsNull(linkedList.GetHeadAndTail().Item1, "Should be null."); Assert.IsNull(linkedList.GetHeadAndTail().Item2, "Should be null."); Assert.AreEqual(0, linkedList.Count, "Should not have any value."); }
public void RemoveLast_WhenThereAreItemsMultipleItems_ShoudlRemoveLast() { // Arrange var linkedList = new SinglyLinkList<string>(); linkedList.AddFirst(new SinglyLinkListNode<string>("Hello")); linkedList.AddLast(new SinglyLinkListNode<string>("There")); linkedList.AddLast(new SinglyLinkListNode<string>("SomeMore")); // Act linkedList.RemoveLast(); // Assert Assert.AreEqual("Hello", linkedList.GetHeadAndTail().Item1.Value, "Should contain the expected value."); Assert.AreEqual("There", linkedList.GetHeadAndTail().Item2.Value, "Should contain the expected value."); Assert.AreEqual(linkedList.GetHeadAndTail().Item1.Next, linkedList.GetHeadAndTail().Item2, "Pointer should be correct."); Assert.AreEqual(2, linkedList.Count, "Should contain the expected number of items."); }