Example #1
0
        public void TestFloat32()
        {
            //using (var stream = new MemoryStream())
            {
                float f;
                Buffer stream = new Buffer();
                Serializer serializer = new Serializer(stream);
                Deserializer deserializer = new Deserializer(stream);

                // Boundary value tests

                serializer.Write(0.0F);
                serializer.Write(Single.Epsilon);
                serializer.Write(Single.MinValue);
                serializer.Write(Single.MaxValue);
                serializer.Write(Single.NegativeInfinity);
                serializer.Write(Single.PositiveInfinity);
                serializer.Write(Single.NaN);

                stream.Rewind();
                //stream.Seek(0, SeekOrigin.Begin);

                deserializer.Read(out f);
                Assert.AreEqual(0.0F, f);
                deserializer.Read(out f);
                Assert.AreEqual(Single.Epsilon, f);
                deserializer.Read(out f);
                Assert.AreEqual(Single.MinValue, f);
                deserializer.Read(out f);
                Assert.AreEqual(Single.MaxValue, f);
                deserializer.Read(out f);
                Assert.AreEqual(Single.NegativeInfinity, f);
                deserializer.Read(out f);
                Assert.AreEqual(Single.PositiveInfinity, f);
                deserializer.Read(out f);
                Assert.AreEqual(Single.NaN, f);

                stream.Trim();
                //stream.SetLength(0);

                // Intermediate value tests

                serializer.Write(0.001234F);
                serializer.Write(8765.4321F);

                stream.Rewind();
                //stream.Seek(0, SeekOrigin.Begin);

                deserializer.Read(out f);
                Assert.AreEqual(0.001234F, f);
                deserializer.Read(out f);
                Assert.AreEqual(8765.4321F, f);
            }
        }
Example #2
0
        public void TestFloat32()
        {
            var buffer = new Buffer(1);

            // Boundary value tests

            buffer.Write(0.0F);
            buffer.Write(Single.Epsilon);
            buffer.Write(Single.MinValue);
            buffer.Write(Single.MaxValue);
            buffer.Write(Single.NegativeInfinity);
            buffer.Write(Single.PositiveInfinity);
            buffer.Write(Single.NaN);

            buffer.Rewind();

            float f;

            buffer.Read(out f);
            Assert.AreEqual(0.0F, f);
            buffer.Read(out f);
            Assert.AreEqual(Single.Epsilon, f);
            buffer.Read(out f);
            Assert.AreEqual(Single.MinValue, f);
            buffer.Read(out f);
            Assert.AreEqual(Single.MaxValue, f);
            buffer.Read(out f);
            Assert.AreEqual(Single.NegativeInfinity, f);
            buffer.Read(out f);
            Assert.AreEqual(Single.PositiveInfinity, f);
            buffer.Read(out f);
            Assert.AreEqual(Single.NaN, f);

            buffer.Trim();

            // Intermediate value tests

            buffer.Write(0.001234F);
            buffer.Write(8765.4321F);

            buffer.Rewind();

            buffer.Read(out f);
            Assert.AreEqual(0.001234F, f);
            buffer.Read(out f);
            Assert.AreEqual(8765.4321F, f);
        }
Example #3
0
        public void TestVariableLengthInt64()
        {
            //using (var stream = new MemoryStream())
            {
                long l, bytes;
                Buffer stream = new Buffer();
                Serializer serializer = new Serializer(stream);
                Deserializer deserializer = new Deserializer(stream);

                // Boundary value tests

                serializer.Write(0L);
                serializer.Write(-1L);
                serializer.Write(Int64.MaxValue);
                serializer.Write(Int64.MinValue);

                stream.Rewind();
                //stream.Seek(0, SeekOrigin.Begin);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(1, bytes);
                Assert.AreEqual(0L, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(1, bytes);
                Assert.AreEqual(-1L, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(10, bytes);
                Assert.AreEqual(Int64.MaxValue, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(10, bytes);
                Assert.AreEqual(Int64.MinValue, l);

                stream.Trim();
                //stream.SetLength(0);

                // Intermediate value tests

                serializer.Write(0x00003f80L >> 1);  // 2
                serializer.Write(0x001fc000L >> 1);  // 3
                serializer.Write(0x0fe00000L >> 1);  // 4
                serializer.Write(0x00000007f0000000L >> 1);  // 5
                serializer.Write(0x000003f800000000L >> 1);  // 6
                serializer.Write(0x0001fc0000000000L >> 1);  // 7
                serializer.Write(0x00fe000000000000L >> 1);  // 8
                serializer.Write(0x7f00000000000000L >> 1);  // 9

                stream.Rewind();
                //stream.Seek(0, SeekOrigin.Begin);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(2, bytes);
                Assert.AreEqual(0x00003f80L >> 1, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(3, bytes);
                Assert.AreEqual(0x001fc000L >> 1, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(4, bytes);
                Assert.AreEqual(0x0fe00000L >> 1, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(5, bytes);
                Assert.AreEqual(0x00000007f0000000L >> 1, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(6, bytes);
                Assert.AreEqual(0x000003f800000000L >> 1, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(7, bytes);
                Assert.AreEqual(0x0001fc0000000000L >> 1, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(8, bytes);
                Assert.AreEqual(0x00fe000000000000L >> 1, l);

                bytes = deserializer.Read(out l);
                Assert.AreEqual(9, bytes);
                Assert.AreEqual(0x7f00000000000000L >> 1, l);
            }
        }
Example #4
0
        public void TestVariableLengthInt32()
        {
            //using (var stream = new MemoryStream())
            {
                int i, bytes;
                Buffer stream = new Buffer();
                Serializer serializer = new Serializer(stream);
                Deserializer deserializer = new Deserializer(stream);

                // Boundary value tests

                serializer.Write(0);
                serializer.Write(-1);
                serializer.Write(Int32.MaxValue);
                serializer.Write(Int32.MinValue);

                stream.Rewind();
                //stream.Seek(0, SeekOrigin.Begin);

                bytes = deserializer.Read(out i);
                Assert.AreEqual(1, bytes);
                Assert.AreEqual(0, i);

                bytes = deserializer.Read(out i);
                Assert.AreEqual(1, bytes);
                Assert.AreEqual(-1, i);

                bytes = deserializer.Read(out i);
                Assert.AreEqual(5, bytes);
                Assert.AreEqual(Int32.MaxValue, i);

                bytes = deserializer.Read(out i);
                Assert.AreEqual(5, bytes);
                Assert.AreEqual(Int32.MinValue, i);

                stream.Trim();
                //stream.SetLength(0);

                // Intermediate value tests

                serializer.Write(0x00003f80 >> 1);  // 2
                serializer.Write(0x001fc000 >> 1);  // 3
                serializer.Write(0x0fe00000 >> 1);  // 4

                stream.Rewind();
                //stream.Seek(0, SeekOrigin.Begin);

                bytes = deserializer.Read(out i);
                Assert.AreEqual(2, bytes);
                Assert.AreEqual(0x00003f80 >> 1, i);

                bytes = deserializer.Read(out i);
                Assert.AreEqual(3, bytes);
                Assert.AreEqual(0x001fc000 >> 1, i);

                bytes = deserializer.Read(out i);
                Assert.AreEqual(4, bytes);
                Assert.AreEqual(0x0fe00000 >> 1, i);
            }
        }
Example #5
0
        public void TestFloat64()
        {
            var buffer = new Buffer(2);

            // Boundary value tests

            buffer.Write(0.0D);
            buffer.Write(Double.Epsilon);
            buffer.Write(Double.MinValue);
            buffer.Write(Double.MaxValue);
            buffer.Write(Double.NegativeInfinity);
            buffer.Write(Double.PositiveInfinity);
            buffer.Write(Double.NaN);

            buffer.Rewind();

            double d;

            buffer.Read(out d);
            Assert.AreEqual(0.0D, d);
            buffer.Read(out d);
            Assert.AreEqual(Double.Epsilon, d);
            buffer.Read(out d);
            Assert.AreEqual(Double.MinValue, d);
            buffer.Read(out d);
            Assert.AreEqual(Double.MaxValue, d);
            buffer.Read(out d);
            Assert.AreEqual(Double.NegativeInfinity, d);
            buffer.Read(out d);
            Assert.AreEqual(Double.PositiveInfinity, d);
            buffer.Read(out d);
            Assert.AreEqual(Double.NaN, d);

            buffer.Trim();

            // Intermediate value tests

            buffer.Write(0.00123456789D);
            buffer.Write(98765.0004321D);

            buffer.Rewind();

            buffer.Read(out d);
            Assert.AreEqual(0.00123456789D, d);
            buffer.Read(out d);
            Assert.AreEqual(98765.0004321D, d);
        }
Example #6
0
        public void TestVariableLengthInt64()
        {
            var buffer = new Buffer(2);

            // Boundary value tests

            buffer.Write(0L);
            buffer.Write(-1L);
            buffer.Write(Int64.MaxValue);
            buffer.Write(Int64.MinValue);

            buffer.Rewind();

            long l, bytes;

            bytes = buffer.Read(out l);
            Assert.AreEqual(1, bytes);
            Assert.AreEqual(0L, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(1, bytes);
            Assert.AreEqual(-1L, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(10, bytes);
            Assert.AreEqual(Int64.MaxValue, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(10, bytes);
            Assert.AreEqual(Int64.MinValue, l);

            buffer.Trim();

            // Intermediate value tests

            buffer.Write(0x00003f80L >> 1);  // 2
            buffer.Write(0x001fc000L >> 1);  // 3
            buffer.Write(0x0fe00000L >> 1);  // 4
            buffer.Write(0x00000007f0000000L >> 1);  // 5
            buffer.Write(0x000003f800000000L >> 1);  // 6
            buffer.Write(0x0001fc0000000000L >> 1);  // 7
            buffer.Write(0x00fe000000000000L >> 1);  // 8
            buffer.Write(0x7f00000000000000L >> 1);  // 9

            buffer.Rewind();

            bytes = buffer.Read(out l);
            Assert.AreEqual(2, bytes);
            Assert.AreEqual(0x00003f80L >> 1, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(3, bytes);
            Assert.AreEqual(0x001fc000L >> 1, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(4, bytes);
            Assert.AreEqual(0x0fe00000L >> 1, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(5, bytes);
            Assert.AreEqual(0x00000007f0000000L >> 1, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(6, bytes);
            Assert.AreEqual(0x000003f800000000L >> 1, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(7, bytes);
            Assert.AreEqual(0x0001fc0000000000L >> 1, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(8, bytes);
            Assert.AreEqual(0x00fe000000000000L >> 1, l);

            bytes = buffer.Read(out l);
            Assert.AreEqual(9, bytes);
            Assert.AreEqual(0x7f00000000000000L >> 1, l);
        }
Example #7
0
        public void TestVariableLengthInt32()
        {
            var buffer = new Buffer(2);

            // Boundary value tests

            buffer.Write(0);
            buffer.Write(-1);
            buffer.Write(Int32.MaxValue);
            buffer.Write(Int32.MinValue);

            buffer.Rewind();

            int i, bytes;

            bytes = buffer.Read(out i);
            Assert.AreEqual(1, bytes);
            Assert.AreEqual(0, i);

            bytes = buffer.Read(out i);
            Assert.AreEqual(1, bytes);
            Assert.AreEqual(-1, i);

            bytes = buffer.Read(out i);
            Assert.AreEqual(5, bytes);
            Assert.AreEqual(Int32.MaxValue, i);

            bytes = buffer.Read(out i);
            Assert.AreEqual(5, bytes);
            Assert.AreEqual(Int32.MinValue, i);

            buffer.Trim();

            // Intermediate value tests

            buffer.Write(0x00003f80 >> 1);  // 2
            buffer.Write(0x001fc000 >> 1);  // 3
            buffer.Write(0x0fe00000 >> 1);  // 4

            buffer.Rewind();

            bytes = buffer.Read(out i);
            Assert.AreEqual(2, bytes);
            Assert.AreEqual(0x00003f80 >> 1, i);

            bytes = buffer.Read(out i);
            Assert.AreEqual(3, bytes);
            Assert.AreEqual(0x001fc000 >> 1, i);

            bytes = buffer.Read(out i);
            Assert.AreEqual(4, bytes);
            Assert.AreEqual(0x0fe00000 >> 1, i);
        }
Example #8
0
        public void TestFloat64()
        {
            //using (var stream = new MemoryStream())
            {
                double d;
                var stream = new x2.Buffer();
                Serializer serializer = new Serializer(stream);
                Deserializer deserializer = new Deserializer(stream);

                // Boundary value tests

                serializer.Write(0.0);
                serializer.Write(Double.Epsilon);
                serializer.Write(Double.MinValue);
                serializer.Write(Double.MaxValue);
                serializer.Write(Double.NegativeInfinity);
                serializer.Write(Double.PositiveInfinity);
                serializer.Write(Double.NaN);

                stream.Rewind();
                //stream.Seek(0, SeekOrigin.Begin);

                deserializer.Read(out d);
                Assert.AreEqual(0.0, d);
                deserializer.Read(out d);
                Assert.AreEqual(Double.Epsilon, d);
                deserializer.Read(out d);
                Assert.AreEqual(Double.MinValue, d);
                deserializer.Read(out d);
                Assert.AreEqual(Double.MaxValue, d);
                deserializer.Read(out d);
                Assert.AreEqual(Double.NegativeInfinity, d);
                deserializer.Read(out d);
                Assert.AreEqual(Double.PositiveInfinity, d);
                deserializer.Read(out d);
                Assert.AreEqual(Double.NaN, d);

                stream.Trim();
                //stream.SetLength(0);

                // Intermediate value tests

                serializer.Write(0.001234);
                serializer.Write(8765.4321);

                stream.Rewind();
                //stream.Seek(0, SeekOrigin.Begin);

                deserializer.Read(out d);
                Assert.AreEqual(0.001234, d);
                deserializer.Read(out d);
                Assert.AreEqual(8765.4321, d);
            }
        }