コード例 #1
0
        public void TestDeserialize()
        {
            var db = new StopLinksDb(5, new RouterDb(), "pedestrian");

            db.Add(0, new RouterPoint(0, 1, 0, 0));
            db.Add(0, new RouterPoint(2, 3, 0, 16));
            db.Add(0, new RouterPoint(4, 5, 0, 64));
            db.Add(0, new RouterPoint(6, 7, 0, 256));
            db.Add(0, new RouterPoint(8, 9, 0, 1024));

            using (var stream = new MemoryStream())
            {
                db.Serialize(stream);

                stream.Seek(0, SeekOrigin.Begin);
                var db1 = StopLinksDb.Deserialize(stream);

                Assert.AreEqual(db.SizeInBytes, db1.SizeInBytes);

                var enumerator  = db.GetEnumerator();
                var enumerator1 = db1.GetEnumerator();

                enumerator.MoveTo(0);
                enumerator1.MoveTo(0);
                while (enumerator.MoveNext())
                {
                    Assert.IsTrue(enumerator1.MoveNext());

                    Assert.AreEqual(enumerator.EdgeId, enumerator1.EdgeId);
                    Assert.AreEqual(enumerator.Offset, enumerator1.Offset);
                }
            }
        }
コード例 #2
0
        public void TestSerialize()
        {
            var db = new StopLinksDb(5, new RouterDb(), "pedestrian");

            db.Add(0, new RouterPoint(0, 1, 0, 0));
            db.Add(0, new RouterPoint(2, 3, 0, 16));
            db.Add(0, new RouterPoint(4, 5, 0, 64));
            db.Add(0, new RouterPoint(6, 7, 0, 256));
            db.Add(0, new RouterPoint(8, 9, 0, 1024));

            var profileBytes = System.Text.Encoding.Unicode.GetByteCount("pedestrian");

            var size = 1 + 8 + 8 + 16 + profileBytes + 8 + 5 * 2 * 4 + 5 * 2 * 4;

            using (var stream = new MemoryStream())
            {
                Assert.AreEqual(size, db.SizeInBytes);
                Assert.AreEqual(size, db.Serialize(stream));
            }
        }