public void ListWithOneItem_ShouldNotBeEmpty()
        {
            var list = new DblLinkedList <int>();
            var node = DblLinkedList.CreateNode(1);

            list.InsertHead(node);
            list.IsEmpty().Should().BeFalse();
        }
        public void ListAfterInsertingAndRemovingNode_ShouldBeEmpty()
        {
            var list = new DblLinkedList <int>();
            var node = DblLinkedList.CreateNode(1);

            list.InsertTail(node);
            list.Remove(node);
            list.IsEmpty().Should().BeTrue();
        }
        private void VerifyList <T>(DblLinkedList <T> list, IList <T> expectedList)
        {
            if (!expectedList.Any())
            {
                list.Head.IsNull.Should().BeTrue();
                list.Tail.IsNull.Should().BeTrue();
                list.IsEmpty().Should().BeTrue();
                return;
            }

            list.Head.IsNull.Should().BeFalse();
            list.Tail.IsNull.Should().BeFalse();

            list.Head.Value.Should().Be(expectedList.First());
            list.Tail.Value.Should().Be(expectedList.Last());

            VerifyListNode(list.Head, expectedList);
        }
        public void NewlyCreatedList_ShouldBeEmpty()
        {
            var list = new DblLinkedList <int>();

            list.IsEmpty().Should().BeTrue();
        }