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)); }
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()); }
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); }
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); }
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); }