Esempio n. 1
0
        public void TestLong()
        {
            var js = new JsonSerializer();
            var v1 = new SampleLong { S = -1L << 33, U = 1UL << 33 };

            js.JsonOptions.Indent = "";
            var result = js.ToString(v1);
            Assert.AreEqual("{\n\"S\":-8589934592,\n\"U\":8589934592\n}", result);

            var v2 = new SampleLong();
            var jd = new JsonDeserializer();
            jd.FromString(v2, result);
            Assert.AreEqual(v1.S, v2.S);
            Assert.AreEqual(v1.U, v2.U);

            js.JsonOptions.Int64AsString = true;
            var result1 = js.ToString(v1);
            Assert.AreEqual("{\n\"S\":\"-8589934592\",\n\"U\":\"8589934592\"\n}", result1);
            var jd1 = new JsonDeserializer();
            jd1.JsonOptions.Int64AsString = true;
            jd1.FromString(v2, result1);
            Assert.AreEqual(v1.S, v2.S);
            Assert.AreEqual(v1.U, v2.U);

            js.JsonOptions.Int64AsString = false;
            v1.S = long.MinValue;
            v1.U = ulong.MaxValue;
            jd.FromString(v2, js.ToString(v1));
            Assert.AreEqual(v1.S, v2.S);
            Assert.AreEqual(v1.U, v2.U);
        }
Esempio n. 2
0
        public void TestLong()
        {
            var bs = new BinarySerializer();
            var v1 = new SampleLong { S = -1L << 33, U = 1UL << 33 };

            var result = bs.ToBytes(v1);
            Assert.AreEqual(
                XS(RoughType.Record) + " 01 00 " + XS(typeof(SampleLong)) + " 02 00 " +
                XS("S", RoughType.Long, "U", RoughType.ULong) +
                " 01 00 00 00 00 00 FE FF FF FF 02 00 00 00 00 00 02 00 00 00 00 00", XS(result));

            var v2 = new SampleLong();
            var bd = new BinaryDeserializer();
            bd.FromBytes(v2, result);
            Assert.AreEqual(v1.S, v2.S);
            Assert.AreEqual(v1.U, v2.U);

            v1.S = long.MinValue;
            v1.U = ulong.MaxValue;
            bd.FromBytes(v2, bs.ToBytes(v1));
            Assert.AreEqual(v1.S, v2.S);
            Assert.AreEqual(v1.U, v2.U);
        }