public void ToArrayFromFrom() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(100); writer.i64(i64.MaxValue); writer.i32(i32.MaxValue); writer.i16(i16.MaxValue); var result = writer.ToArray(); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(); reader.CopyFrom(result); Assert.AreEqual(i64.MaxValue, reader.i64()); Assert.AreEqual(i32.MaxValue, reader.i32()); Assert.AreEqual(i16.MaxValue, reader.i16()); reader.CopyFrom(result); Assert.AreEqual(i64.MaxValue, reader.i64()); Assert.AreEqual(i32.MaxValue, reader.i32()); Assert.AreEqual(i16.MaxValue, reader.i16()); }
public void LongReadWrite() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); writer.i64(i64.MaxValue);; var data = writer.ToArray(); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(); reader.CopyFrom(data); Assert.AreEqual(i64.MaxValue, reader.i64()); }
public void ToSpanFromFrom() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(100); writer.i64(i64.MaxValue); writer.i32(i32.MaxValue); writer.i16(i16.MaxValue); Span <byte> span = new byte[writer.LengthWritten]; ReadOnlySpan <byte> read = span; writer.ToSpan(span); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(); reader.CopyFrom(read); Assert.AreEqual(i64.MaxValue, reader.i64()); Assert.AreEqual(i32.MaxValue, reader.i32()); Assert.AreEqual(i16.MaxValue, reader.i16()); reader.CopyFrom(read); Assert.AreEqual(i64.MaxValue, reader.i64()); Assert.AreEqual(i32.MaxValue, reader.i32()); Assert.AreEqual(i16.MaxValue, reader.i16()); }
public void ToFromArrayPosition() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); writer.u8(13); writer.i64(i64.MaxValue); writer.Align(); var allocated = new byte[ushort.MaxValue]; writer.ToSpan(new Span <u8>(allocated, 10, 100)); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length); reader.CopyFrom(new ReadOnlySpan <u8>(allocated, 10, 100)); Assert.AreEqual(13, reader.u8()); Assert.AreEqual(long.MaxValue, reader.i64()); }