public void RegressionEncodeDecodeNegativeInt() { var i = -10284; var data = new byte[1024]; CoordinateConverter.EncodeInt24(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt24(data, 0)); i = -10284; CoordinateConverter.EncodeInt24(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt24(data, 0)); i = -184; CoordinateConverter.EncodeInt24(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt24(data, 0)); i = -78124; CoordinateConverter.EncodeInt24(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt24(data, 0)); i = 10284; CoordinateConverter.EncodeInt24(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt24(data, 0)); i = 10284; CoordinateConverter.EncodeInt24(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt24(data, 0)); i = 184; CoordinateConverter.EncodeInt24(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt24(data, 0)); i = 78124; CoordinateConverter.EncodeInt24(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt24(data, 0)); // try the 16-bit code. i = -10000; CoordinateConverter.EncodeInt16(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt16(data, 0)); i = -1024; CoordinateConverter.EncodeInt16(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt16(data, 0)); i = -184; CoordinateConverter.EncodeInt16(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt16(data, 0)); i = -781; CoordinateConverter.EncodeInt16(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt16(data, 0)); i = 14; CoordinateConverter.EncodeInt16(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt16(data, 0)); i = 104; CoordinateConverter.EncodeInt16(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt16(data, 0)); i = 184; CoordinateConverter.EncodeInt16(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt16(data, 0)); i = 724; CoordinateConverter.EncodeInt16(i, data, 0); Assert.AreEqual(i, CoordinateConverter.DecodeInt16(data, 0)); }