public void u8ArrayMaxWriteRead()
        {
            var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();
            var input  = new byte[writer.Options.U8SpanLengthMax];

            writer.u8(input);
            var allocated = new byte[ushort.MaxValue];

            writer.ToSpan(allocated);
            var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length);

            reader.CopyFrom(allocated);
            Assert.AreEqual(writer.Options.U8SpanLengthMax, reader.u8SpanLengthPeek());
        }
        public void u8ArrayWriteRead()
        {
            var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >();
            var input  = new byte[] { 1, 2, 3, 4, 5 };

            writer.u8(input);
            writer.Align();
            var allocated = new u8[ushort.MaxValue];

            writer.ToSpan(allocated);
            var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length);

            reader.CopyFrom(allocated);
            var output     = new byte[5];
            var lengthPeek = reader.u8SpanLengthPeek();
            var length     = reader.u8(output);

            Assert.AreEqual(lengthPeek, length);
            Assert.AreEqual(input, output);
        }