コード例 #1
0
 public void RoundTripZigZag32()
 {
     // Some easier-to-verify round-trip tests.  The inputs (other than 0, 1, -1)
     // were chosen semi-randomly via keyboard bashing.
     Assert.AreEqual(0, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(0)));
     Assert.AreEqual(1, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(1)));
     Assert.AreEqual(-1, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(-1)));
     Assert.AreEqual(14927, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(14927)));
     Assert.AreEqual(-3612, ParsingPrimitives.DecodeZigZag32(WritingPrimitives.EncodeZigZag32(-3612)));
 }
コード例 #2
0
 public void EncodeZigZag32()
 {
     Assert.AreEqual(0u, WritingPrimitives.EncodeZigZag32(0));
     Assert.AreEqual(1u, WritingPrimitives.EncodeZigZag32(-1));
     Assert.AreEqual(2u, WritingPrimitives.EncodeZigZag32(1));
     Assert.AreEqual(3u, WritingPrimitives.EncodeZigZag32(-2));
     Assert.AreEqual(0x7FFFFFFEu, WritingPrimitives.EncodeZigZag32(0x3FFFFFFF));
     Assert.AreEqual(0x7FFFFFFFu, WritingPrimitives.EncodeZigZag32(unchecked ((int)0xC0000000)));
     Assert.AreEqual(0xFFFFFFFEu, WritingPrimitives.EncodeZigZag32(0x7FFFFFFF));
     Assert.AreEqual(0xFFFFFFFFu, WritingPrimitives.EncodeZigZag32(unchecked ((int)0x80000000)));
 }
 /// <summary>
 /// Computes the number of bytes that would be needed to encode an
 /// sint32 field, including the tag.
 /// </summary>
 public static int ComputeSInt32Size(int value)
 {
     return(ComputeRawVarint32Size(WritingPrimitives.EncodeZigZag32(value)));
 }