示例#1
0
        public void ReadStringAndBoolFromStringSuccess()
        {
            var data = "0000000005test1" +
                       "1" +
                       "0";
            var des = new Deserializer(data);

            Assert.AreEqual("test1", des.GetString());
            Assert.AreEqual(true, des.GetBool());
            Assert.AreEqual(false, des.GetBool());
        }
示例#2
0
        public void SerializeAndDeserialize4RandomValuesOfDifferentType()
        {
            var    rand          = new Random(Guid.NewGuid().GetHashCode());
            var    value1        = LongRandom(0, long.MaxValue, rand);
            var    value2        = rand.Next(0, int.MaxValue);
            double value3        = LongRandom(0, long.MinValue, rand) + rand.Next(0, 5000) / 1000;
            var    value4        = rand.Next() % 2 == 0;
            var    value5Builder = new StringBuilder();

            for (var i = 0; i < 50; i++)
            {
                //just using numbers as string. should still work
                value5Builder.Append(rand.Next());
            }

            var value5 = value5Builder.ToString();

            TestContext.Out.WriteLine($"long value:{value1}");
            TestContext.Out.WriteLine($"int value:{value2}");
            TestContext.Out.WriteLine($"double value:{value3}");
            TestContext.Out.WriteLine($"bool value:{value4}");
            TestContext.Out.WriteLine($"string value:{value5}");


            ser.AddLong(value1);
            ser.AddInt32(value2);
            ser.AddDouble(value3);
            ser.AddBool(value4);
            ser.AddString(value5);

            var final = ser.FinalizeSerializationProcess();
            var des   = new Deserializer(final);

            Assert.AreEqual(value1, des.GetLong());
            Assert.AreEqual(value2, des.GetInt32());
            Assert.AreEqual(value3, des.GetDouble());
            Assert.AreEqual(value4, des.GetBool());
            var value = des.GetString();

            Assert.AreEqual(value5, value);
        }