public void i16ReadWrite() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); writer.i16(i16.MinValue); writer.i16(i16.MinValue / 2); writer.i16(0); i16 half = i16.MaxValue / 2; writer.i16(half); writer.i16(i16.MaxValue); writer.Align(); var allocated = new byte[i16.MaxValue]; writer.ToSpan(allocated); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length); reader.CopyFrom(allocated); Assert.AreEqual(i16.MinValue, reader.i16()); Assert.AreEqual(i16.MinValue / 2, reader.i16()); Assert.AreEqual(0, reader.i16()); Assert.AreEqual(half, reader.i16Peek()); Assert.AreEqual(half, reader.i16()); Assert.AreEqual(i16.MaxValue, reader.i16()); }
public void f32ReadWrite() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); writer.f32(123.456f); writer.Align(); var data = writer.ToArray(); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(); reader.CopyFrom(data); Assert.AreEqual(123.456f, reader.f32Peek()); Assert.AreEqual(123.456f, reader.f32()); }
public void AnsiStringWriteRead() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); writer.c("123456789"); writer.Align(); var allocated = new byte[ushort.MaxValue]; writer.ToSpan(allocated); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length); reader.CopyFrom(allocated); Assert.AreEqual("123456789", reader.String()); }
public void u8WriteRead() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); writer.u8(u8.MaxValue); writer.Align(); var allocated = new u8[ushort.MaxValue]; writer.ToSpan(allocated); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length); reader.CopyFrom(allocated); Assert.AreEqual(u8.MaxValue, reader.u8()); }
public void BoolReadWrite() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); writer.b(true); writer.Align(); var allocated = new byte[ushort.MaxValue]; writer.ToSpan(allocated); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length); reader.CopyFrom(allocated); Assert.True(reader.b()); }
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()); }
public void SimpleStructReadWrite() { var buffer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); var expected = new SimpleStruct { a = 1.2f, b = 123, c = byte.MaxValue, d = ushort.MaxValue }; buffer.block(expected); buffer.Align(); var allocated = new byte[ushort.MaxValue]; buffer.ToSpan(allocated); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length); reader.CopyFrom(allocated); Assert.AreEqual(expected, reader.block <SimpleStruct>()); }
public void IntReadWrite() { var writer = new BitBufferWriter <SevenBitEncoding <u32ArrayMemory> >(); writer.i32(int.MinValue); writer.i32(0); writer.i32(int.MaxValue); writer.Align(); var allocated = new byte[ushort.MaxValue]; writer.ToSpan(allocated); var reader = new BitBufferReader <SevenBitDecoding <u32ArrayMemory> >(allocated.Length); reader.CopyFrom(allocated); Assert.AreEqual(int.MinValue, reader.i32()); Assert.AreEqual(0, reader.i32()); Assert.AreEqual(int.MaxValue, reader.i32()); }
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); }