public void RoundTripSByte() { Check(0); Check(1); Check(-1); Check(10); Check(-10); Check(sbyte.MaxValue); Check(sbyte.MinValue); // those would fit in an Int16, but don't fit in an SByte: //Check(byte.MaxValue); //Check(short.MaxValue); //Check(short.MinValue); for (int i = 0; i < 15; ++i) { Check(GetRandom <sbyte>()); } void Check(SByte toWrite) { Array.Clear(buffer, 0, buffer.Length); var sbe = new SpanBinaryEditor(buffer); sbe.WriteSbyte(toWrite); sbe.Seek(0, SeekOrigin.Begin); SByte actual = sbe.ReadSbyte(); CheckEquality(toWrite, actual); stream.Seek(0, SeekOrigin.Begin); CheckEquality(toWrite, binary.ReadSByte()); } }