Beispiel #1
0
        public void TestReadObject()
        {
            la     = new LongSortedList();
            la[1L] = "one";
            la[2L] = "two";
            la.Add("five");
            la.Add("three");
            la[200L] = "twohundred";


            DataWriter      writer    = new DataWriter(stream);
            PofStreamWriter pofWriter = new PofStreamWriter(writer, ctx);

            pofWriter.WriteLongArray(0, la);
            pofWriter.WriteLongArray(0, new LongSortedList());
            pofWriter.WriteLongArray(0, la, typeof(String));

            stream.Position = 0;
            DataReader      reader    = new DataReader(stream);
            PofStreamReader pofReader = new PofStreamReader(reader, ctx);

            LongSortedList resLA = (LongSortedList)pofReader.ReadObject(0);

            Assert.AreEqual(la.Count, resLA.Count);

            IEnumerator e  = resLA.GetEnumerator();
            IEnumerator de = la.GetEnumerator();

            for (; e.MoveNext() && de.MoveNext();)
            {
                Assert.AreEqual(((DictionaryEntry)e.Current).Key, ((DictionaryEntry)de.Current).Key);
                Assert.AreEqual(((DictionaryEntry)e.Current).Value, ((DictionaryEntry)de.Current).Value);
            }

            resLA = (LongSortedList)pofReader.ReadObject(0);
            Assert.AreEqual(0, resLA.Count);

            //uniform sparse array
            resLA = (LongSortedList)pofReader.ReadObject(0);
            Assert.AreEqual(la.Count, resLA.Count);

            e  = resLA.GetEnumerator();
            de = la.GetEnumerator();
            for (; e.MoveNext() && de.MoveNext();)
            {
                Assert.AreEqual(((DictionaryEntry)e.Current).Key, ((DictionaryEntry)de.Current).Key);
                Assert.AreEqual(((DictionaryEntry)e.Current).Value, ((DictionaryEntry)de.Current).Value);
            }
        }