Example #1
0
        static void Main(string[] args)
        {
            ListNode nodet18  = new ListNode();
            ListNode nodet23  = new ListNode();
            ListNode nodet34  = new ListNode();
            ListNode nodet72  = new ListNode();
            ListNode nodet100 = new ListNode();

            nodet18.Data = "t-18";
            nodet18.Next = nodet23;
            nodet18.Rand = nodet72;

            nodet23.Data = "t-23";
            nodet23.Next = nodet34;
            nodet23.Prev = nodet18;
            nodet23.Rand = null;

            nodet34.Data = "t-34";
            nodet34.Prev = nodet23;
            nodet34.Next = nodet72;
            nodet34.Rand = nodet18;

            nodet72.Data = "t-72";
            nodet72.Prev = nodet34;
            nodet72.Next = null;
            nodet72.Rand = nodet18;

            nodet100.Data = "t-100";
            nodet100.Prev = nodet34;
            nodet100.Rand = nodet23;
            nodet100.Next = null;

            ListRand panzerList = new ListRand();

            panzerList.Head = nodet18;
            panzerList.Tail = nodet100;


            FileStream fs = File.Create("PanzerList.txt");

            panzerList.Serialize(fs);
            fs.Close();

            fs = File.Open("PanzerList.txt", FileMode.Open);
            ListRand panzerList2 = new ListRand();

            panzerList2.Deserialize(fs);
            fs.Close();

            fs = File.Create("PanzerList2.txt");
            panzerList2.Serialize(fs);
            fs.Close();
        }
Example #2
0
        public void Deserialize()
        {
            var deserializedList = new ListRand.ListRand();

            using (var fileStream = new FileStream(FileName, FileMode.Open))
            {
                deserializedList.Deserialize(fileStream);
            }

            Assert.AreEqual(_listToSerialize.Count, deserializedList.Count);
            Assert.AreEqual(_listToSerialize.Head.Data, deserializedList.Head.Data);
            Assert.AreEqual(_listToSerialize.Tail.Data, deserializedList.Tail.Data);

            var serializedCurrentNode   = _listToSerialize.Head;
            var deserializedCurrentNode = _listToSerialize.Head;

            for (var i = 0; i < deserializedList.Count; i++)
            {
                Assert.AreEqual(serializedCurrentNode.Data, deserializedCurrentNode.Data);

                if (serializedCurrentNode.Next != null)
                {
                    Assert.AreEqual(serializedCurrentNode.Next.Data, deserializedCurrentNode.Next.Data);
                }

                if (serializedCurrentNode.Prev != null)
                {
                    Assert.AreEqual(serializedCurrentNode.Prev.Data, deserializedCurrentNode.Prev.Data);
                }

                if (serializedCurrentNode.Rand != null)
                {
                    Assert.AreEqual(serializedCurrentNode.Rand.Data, deserializedCurrentNode.Rand.Data);
                }
                serializedCurrentNode   = serializedCurrentNode.Next;
                deserializedCurrentNode = deserializedCurrentNode.Next;
            }
        }