public void LinkedListPs_IndexOf_ElementIsInCollection(string element, int desiredPosition)
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list.IndexOf(element).ShouldBe(desiredPosition);
        }
        public void LinkedListPs_IndexOf_ElementIsNotInCollection()
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list.IndexOf("3").ShouldBe(-1);
        }
        public void LinkedListPs_IndexOf_NullElementCollectionHasNullOk()
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast((string)null);
            list.AddLast("2");

            list.IndexOf(null).ShouldBe(1);
        }
        public void LinkedListPs_IndexOf_NullElementCollectionDontHaveNull()
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list.IndexOf(null).ShouldBe(-1);
        }
        public void LinkedListPs_InsertAt_InsertOnWrongPosition_ThrowsIndexOutOfRangeException(int index)
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list.InsertAt(index, "kopytko");
        }
        public void LinkedListPs_InsertAt_Ok(int position)
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list.InsertAt(position, "kopytko");

            list[position].ShouldBe("kopytko");
        }
        public void LinkedListPs_RemoveAt_ElementIndexPossible()
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list.RemoveAt(1);

            list.IndexOf("1").ShouldBe(-1);
            list[1].ShouldBe("2");
            list[0].ShouldBe("0");
            list.Count.ShouldBe(2);
        }
        public void LinkedListPs_IndexerSet_ElementIndexProper(int index)
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list[index] = "test";
            list[index].ShouldBe("test");
        }
        public void LinkedListPs_IndexerSet_ElementIndexGreaterThanElementCount_ShouldThrowIndexOutOfRangeException(int index)
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list[index] = "error";
        }
        public void LinkedListPs_RemoveAt_ElementIndexGreaterThanElementCount_ShouldThrowIndexOutOfRangeException(int index)
        {
            var list = new LinkedListPs<string>();
            list.AddLast("0");
            list.AddLast("1");
            list.AddLast("2");

            list.RemoveAt(index);
        }