예제 #1
0
        public void u16ReadWriteLimits()
        {
            var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();

            writer.u16(2, 0, 10);
            writer.u16(1, 3);
            var data   = writer.ToArray();
            var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >();

            reader.CopyFrom(data);
            Assert.AreEqual(2, reader.i16(0, 10));
            Assert.AreEqual(1, reader.u16(3));
        }
예제 #2
0
        public void u16ReadWrite()
        {
            var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();

            writer.u16(u16.MinValue);
            writer.u16(u16.MaxValue / 2);
            writer.u16(u16.MaxValue);
            var data = writer.ToArray();

            writer.ToArray();
            var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >();

            reader.CopyFrom(data);
            Assert.AreEqual(u16.MinValue, reader.u16());
            var half = u16.MaxValue / 2;

            Assert.AreEqual(half, reader.u16());
            Assert.AreEqual(u16.MaxValue, reader.u16());
        }
예제 #3
0
        public void FibonacciVsSevenBit16()
        {
            var fib   = new BitBufferWriter <FibonacciEncoding <u32ArrayMemory> >();
            u16 value = 16;

            fib.u16(value);
            Assert.AreEqual(7, fib.BitsWritten);

            var sb = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();

            sb.u16(value);
            Assert.AreEqual(8, sb.BitsWritten);
        }
예제 #4
0
        public void FibonacciVsSevenBitFrom256To32766()
        {
            var fib = new BitBufferWriter <FibonacciEncoding <u32ArrayMemory> >(u16.MaxValue);

            for (var i = 256; i <= i16.MaxValue - 1; i++)
            {
                fib.u16((u16)i);
            }

            Assert.AreEqual(675908, fib.BitsWritten);

            var sb = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(u16.MaxValue);

            for (var i = 256; i <= i16.MaxValue - 1; i++)
            {
                sb.u16((u16)i);
            }
            Assert.AreEqual(651240, sb.BitsWritten);
        }
예제 #5
0
        public void FibonacciVsSevenBitFrom0To255()
        {
            var fib = new BitBufferWriter <FibonacciEncoding <u32ArrayMemory> >();

            for (var i = 0; i <= byte.MaxValue; i++)
            {
                fib.u16((u16)i);
            }

            Assert.AreEqual(2732, fib.BitsWritten);

            var sb = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();

            for (var i = 0; i <= byte.MaxValue; i++)
            {
                sb.u16((u16)i);
            }
            Assert.AreEqual(3072, sb.BitsWritten);
        }