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()); }
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)); }
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()); }
public i32 i32(BitBufferReader <FibonacciDecoding> b, u8 numberOfBits) { u32 value = b.u32(numberOfBits); return(decode(value)); }