public void u32ReadWriteLimits <TEncoder, TDecoder>()
            where TEncoder : struct, ICompression <RawBitWriter <u32ArrayMemory> >
            where TDecoder : struct, IDecompression <RawBitReader <u32ArrayMemory> >
        {
            var writer = new BitBufferWriter <TEncoder>();

            writer.u32(123123, 0, 13213123);
            writer.u32(123, 20);
            var data   = writer.ToArray();
            var reader = new BitBufferReader <TDecoder>();

            reader.CopyFrom(data);
            Assert.AreEqual(123123u, reader.u32(0, 13213123));
            Assert.AreEqual(123u, reader.u32(20));
        }
        private void u32ReadWrite <TEncoder, TDecoder>()
            where TEncoder : struct, ICompression <RawBitWriter <u32ArrayMemory> >
            where TDecoder : struct, IDecompression <BitBufferReader <TDecoder> >
        {
            var writer = new BitBufferWriter <TEncoder>();

            writer.u32(u32.MinValue);
            writer.u32(u32.MaxValue);
            var data   = writer.ToArray();
            var reader = new BitBufferReader <TDecoder>();

            reader.CopyFrom(data);
            Assert.AreEqual(u32.MinValue, reader.u32());
            Assert.AreEqual(u32.MaxValue, reader.u32());
        }
Example #3
0
        public void UIntMin()
        {
            var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();

            writer.u32(uint.MinValue);
            Assert.AreEqual(1, writer.LengthWritten);
        }
Example #4
0
        public void UIntMax()
        {
            var buffer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();

            buffer.u32(uint.MaxValue);
            Assert.AreEqual(5, buffer.LengthWritten);
        }
        public void RawToEncodedReadWrite()
        {
            var rawWriter = new BitBufferWriter <RawEncoding <u32ArrayMemory> >();

            rawWriter.i32(i32.MaxValue - 13);
            rawWriter.u32(u32.MaxValue - 666);
            var rawReader = new BitBufferReader <RawDecoding <u32ArrayMemory> >();
            var data      = rawWriter.ToArray();

            rawReader.CopyFrom(data);
            Assert.AreEqual(i32.MaxValue - 13, rawReader.i32());
            Assert.AreEqual(u32.MaxValue - 666, rawReader.u32());
        }
Example #6
0
        public void AngleQuantization()
        {
            var buffer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();
            var angle  = 35901u;

            buffer.u32(angle, 0, 36000);
            Assert.AreEqual(16, buffer.BitsWritten);
            var data   = buffer.ToArray();
            var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >();

            reader.CopyFrom(data);
            var result = reader.f32(0f, 360f, 0.01f);

            Assert.AreEqual(359.01f, result, 2);
        }