public void NotEnoughBytesToRead() { Assert.ThrowsException <ArithmeticException>(() => { var bytes = "c2 19 7c 5e ff 14 e8".ToByteArrayFromHex(); ulong dummy1; int dummy2; VariableLengthInt.ReadOne(bytes, out dummy1, out dummy2); }); Assert.ThrowsException <ArithmeticException>(() => { var bytes = "9d 7f 3e".ToByteArrayFromHex(); ulong dummy1; int dummy2; VariableLengthInt.ReadOne(bytes, out dummy1, out dummy2); }); Assert.ThrowsException <ArithmeticException>(() => { var bytes = "7b".ToByteArrayFromHex(); ulong dummy1; int dummy2; VariableLengthInt.ReadOne(bytes, out dummy1, out dummy2); }); }
public void HappyReadTests() { var bytes = "c2 19 7c 5e ff 14 e8 8c".ToByteArrayFromHex(); ulong expected = 151288809941952652; ulong actual; int bytesUsed; VariableLengthInt.ReadOne(bytes, out actual, out bytesUsed); Assert.AreEqual(expected, actual); Assert.AreEqual(bytes.Length, bytesUsed); bytes = "9d 7f 3e 7d".ToByteArrayFromHex(); expected = 494878333; VariableLengthInt.ReadOne(bytes, out actual, out bytesUsed); Assert.AreEqual(expected, actual); Assert.AreEqual(bytes.Length, bytesUsed); bytes = "7b bd".ToByteArrayFromHex(); expected = 15293; VariableLengthInt.ReadOne(bytes, out actual, out bytesUsed); Assert.AreEqual(expected, actual); Assert.AreEqual(bytes.Length, bytesUsed); bytes = "25".ToByteArrayFromHex(); expected = 37; VariableLengthInt.ReadOne(bytes, out actual, out bytesUsed); Assert.AreEqual(expected, actual); Assert.AreEqual(bytes.Length, bytesUsed); bytes = "40 25".ToByteArrayFromHex(); expected = 37; VariableLengthInt.ReadOne(bytes, out actual, out bytesUsed); Assert.AreEqual(expected, actual); Assert.AreEqual(bytes.Length, bytesUsed); }
public void TrySqueezingToUInt() { var bytes = "9d 7f 3e 7d".ToByteArrayFromHex(); int expected = 494878333; VariableLengthInt.ReadOne(bytes, out int actual, out int bytesUsed); Assert.AreEqual(expected, actual); Assert.AreEqual(bytes.Length, bytesUsed); Assert.ThrowsException <ArithmeticException>(() => { var badBytes = "c2 19 7c 5e ff 14 e8".ToByteArrayFromHex(); int dummy1; int dummy2; VariableLengthInt.ReadOne(badBytes, out dummy1, out dummy2); }); }