public void DeleteTest()
        {
            string      llName = "LLDelete";
            ILinkedList ll     = InitPLL(llName, 16, 8);

            try
            {
                ll.Delete();
                ll = new PersistentLinkedList(llName, 16, 16);
            }
            finally
            {
                ll.Delete();
            }
        }
        //
        // You can use the following additional attributes as you write your tests:
        //
        // Use ClassInitialize to run code before running the first test in the class
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // Use ClassCleanup to run code after all tests in a class have run
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // Use TestInitialize to run code before running each test
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // Use TestCleanup to run code after each test has run
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        private PersistentLinkedList InitPLL(string arrayName, int elementSize, int userHeaderSize)
        {
            PersistentLinkedList pll;

            try
            {
                pll = new PersistentLinkedList(arrayName, elementSize, userHeaderSize);
            }
            catch (FileNameConflictException)
            {
                pll = new PersistentLinkedList(arrayName);
                pll.Delete();
                pll = new PersistentLinkedList(arrayName, elementSize, userHeaderSize);
            }
            return(pll);
        }
        public void ReopenTest()
        {
            const string arrayName      = "ReopenLLTest";
            const int    elementSize    = 7;
            const int    userHeaderSize = 33;
            ILinkedList  ll             = InitPLL(arrayName, elementSize, userHeaderSize);

            try
            {
                byte[] firstBytes  = new byte[] { 1, 1, 1, 1, 1, 1, 1, };
                byte[] secondBytes = new byte[] { 2, 2, 2, 2, 2, 2, 2, };
                byte[] thirdBytes  = new byte[] { 3, 3, 3, 3, 3, 3, 3 };
                byte[] fourthBytes = new byte[] { 4, 4, 4, 4, 4, 4, 4 };
                ll.AddToEnd(firstBytes);
                ll.AddToEnd(secondBytes);
                ll.AddToEnd(thirdBytes);
                ll.AddToEnd(fourthBytes);
                Assert.AreEqual(4, ll.Length());

                ll.Close();

                ll = new PersistentLinkedList(arrayName);
                Assert.AreEqual(4, ll.Length());

                Assert.AreEqual(elementSize, ll.GetElementSize());
                Assert.AreEqual(userHeaderSize, ll.GetUserHeaderSize());

                int first = ll.GetFirst();
                TestHelper.AssertByteArraysAreSame(firstBytes, ll.GetData(first));
                int second = ll.GetNext(first);
                TestHelper.AssertByteArraysAreSame(secondBytes, ll.GetData(second));
                int third = ll.GetNext(second);
                TestHelper.AssertByteArraysAreSame(thirdBytes, ll.GetData(third));
                int fourth = ll.GetNext(third);
                TestHelper.AssertByteArraysAreSame(fourthBytes, ll.GetData(fourth));
            }
            finally
            {
                ll.Close();
            }
        }