private void TestValue_UInt16(params ushort[] values) { var stream = new MemoryStream(); var writer = new BinaryWriter(stream); for (int i = 0; i < values.Length; i += 2) { ushort value = values[i]; ushort size = values[i + 1]; long pos = stream.Position; writer.WriteVar(value); writer.Flush(); long newPos = stream.Position; Assert.AreEqual(size, newPos - pos, "Size mismatch for {0}", value); } stream.Position = 0; var reader = new BinaryReader(stream); for (int i = 0; i < values.Length; i += 2) { ushort value = values[i]; ushort result = reader.ReadVarUInt16(); Assert.AreEqual(value, result); } }
public void UInt16_Overflow_Failure_UpperBound() { var stream = new MemoryStream(); var writer = new BinaryWriter(stream); ulong upper = ushort.MaxValue; writer.WriteVar(upper + 1); writer.Flush(); stream.Position = 0; var reader = new BinaryReader(stream); ushort result = reader.ReadVarUInt16(); Assert.IsTrue(false, "This ought to be unreachable."); }