public void TestMethod18()
        {
            SNode n4 = new SNode {
                data = 5
            };
            SNode n3 = new SNode {
                data = 4
            };
            SNode n2 = new SNode {
                data = 3
            };
            SNode n1 = new SNode {
                data = 2
            };
            SNode head = new SNode {
                data = 1
            };

            head.next = n1;
            n1.next   = n2;
            n2.next   = n3;
            n3.next   = n4;

            Assert.AreEqual(-1, SinglyLinkedListOps.FindCycle(head));
        }
        public void TestMethod12()
        {
            SNode head = null;

            head = SinglyLinkedListOps.AddTail(head, 1);
            head = SinglyLinkedListOps.DeleteAll(head, 1);
            ValidateList(head, new List <int>());
        }
        public void TestMethod7()
        {
            SNode head = null;

            head = SinglyLinkedListOps.InsertAt(head, 1, 0);

            Assert.AreEqual(1, head.data);
            Assert.IsNull(head.next);
        }
        public void TestMethod4()
        {
            SNode head = null;

            head = SinglyLinkedListOps.AddTail(head, 1);

            Assert.AreEqual(1, head.data);
            Assert.IsNull(head.next);
        }
        public void TestMethod22()
        {
            SNode head = new SNode {
                data = 1
            };

            head = SinglyLinkedListOps.Reverse(head);

            Assert.AreEqual(1, head.data);
            Assert.IsNull(head.next);
        }
        public void TestMethod3()
        {
            SNode head = null;

            head = SinglyLinkedListOps.AddHead(head, 1);
            head = SinglyLinkedListOps.AddHead(head, 2);
            head = SinglyLinkedListOps.AddHead(head, 3);

            Assert.AreEqual(3, head.data);
            Assert.AreEqual(2, head.next.data);
            Assert.AreEqual(1, head.next.next.data);
            Assert.IsNull(head.next.next.next);
        }
        public void TestMethod28()
        {
            SNode head = new SNode {
                data = 1
            };

            head = SinglyLinkedListOps.AddTail(head, 2);

            // Swap 1 and 2
            SinglyLinkedListOps.Swap(ref head, head, head.next);
            ValidateList(head, new List <int> {
                2, 1
            });
        }
        public void TestMethod19()
        {
            SNode n1 = new SNode {
                data = 2
            };
            SNode head = new SNode {
                data = 1
            };

            head.next = n1;
            n1.next   = head;

            Assert.AreEqual(2, SinglyLinkedListOps.FindCycle(head));
        }
        public void TestMethod24()
        {
            SNode head = new SNode {
                data = 1
            };

            head = SinglyLinkedListOps.AddTail(head, 2);
            head = SinglyLinkedListOps.AddTail(head, 3);

            head = SinglyLinkedListOps.Reverse(head);

            Assert.AreEqual(3, head.data);
            Assert.AreEqual(2, head.next.data);
            Assert.AreEqual(1, head.next.next.data);
            Assert.IsNull(head.next.next.next);
        }
        public void TestMethod32()
        {
            SNode head = new SNode {
                data = 1
            };

            head = SinglyLinkedListOps.AddTail(head, 2);
            head = SinglyLinkedListOps.AddTail(head, 3);

            // Try to swap nodes, where 'b' doesn't exist.
            SinglyLinkedListOps.Swap(ref head, head.next, new SNode {
                data = 20
            });
            ValidateList(head, new List <int> {
                1, 2, 3
            });
        }
        public void TestMethod26()
        {
            SNode head = new SNode {
                data = 1
            };

            head = SinglyLinkedListOps.AddTail(head, 2);
            head = SinglyLinkedListOps.AddTail(head, 3);
            head = SinglyLinkedListOps.AddTail(head, 4);
            head = SinglyLinkedListOps.AddTail(head, 5);

            // Swap 2 and 3
            SinglyLinkedListOps.Swap(ref head, head.next, head.next.next);
            ValidateList(head, new List <int> {
                1, 3, 2, 4, 5
            });
        }
        public void TestMethod30()
        {
            SNode head = new SNode {
                data = 1
            };

            head = SinglyLinkedListOps.AddTail(head, 2);
            head = SinglyLinkedListOps.AddTail(head, 3);

            // Try to swap nodes that don't exist.
            SinglyLinkedListOps.Swap(ref head, new SNode {
                data = 10
            }, new SNode {
                data = 20
            });
            ValidateList(head, new List <int> {
                1, 2, 3
            });
        }