CodedInputStreamTest.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using NUnit.Framework;
  5. namespace Google.ProtocolBuffers {
  6. [TestFixture]
  7. public class CodedInputStreamTest {
  8. [Test]
  9. public void DecodeZigZag32() {
  10. Assert.AreEqual( 0, CodedInputStream.DecodeZigZag32(0));
  11. Assert.AreEqual(-1, CodedInputStream.DecodeZigZag32(1));
  12. Assert.AreEqual( 1, CodedInputStream.DecodeZigZag32(2));
  13. Assert.AreEqual(-2, CodedInputStream.DecodeZigZag32(3));
  14. Assert.AreEqual(0x3FFFFFFF, CodedInputStream.DecodeZigZag32(0x7FFFFFFE));
  15. Assert.AreEqual(unchecked((int)0xC0000000), CodedInputStream.DecodeZigZag32(0x7FFFFFFF));
  16. Assert.AreEqual(0x7FFFFFFF, CodedInputStream.DecodeZigZag32(0xFFFFFFFE));
  17. Assert.AreEqual(unchecked((int)0x80000000), CodedInputStream.DecodeZigZag32(0xFFFFFFFF));
  18. }
  19. [Test]
  20. public void DecodeZigZag64() {
  21. Assert.AreEqual( 0, CodedInputStream.DecodeZigZag64(0));
  22. Assert.AreEqual(-1, CodedInputStream.DecodeZigZag64(1));
  23. Assert.AreEqual( 1, CodedInputStream.DecodeZigZag64(2));
  24. Assert.AreEqual(-2, CodedInputStream.DecodeZigZag64(3));
  25. Assert.AreEqual(0x000000003FFFFFFFL, CodedInputStream.DecodeZigZag64(0x000000007FFFFFFEL));
  26. Assert.AreEqual(unchecked((long)0xFFFFFFFFC0000000L), CodedInputStream.DecodeZigZag64(0x000000007FFFFFFFL));
  27. Assert.AreEqual(0x000000007FFFFFFFL, CodedInputStream.DecodeZigZag64(0x00000000FFFFFFFEL));
  28. Assert.AreEqual(unchecked((long)0xFFFFFFFF80000000L), CodedInputStream.DecodeZigZag64(0x00000000FFFFFFFFL));
  29. Assert.AreEqual(0x7FFFFFFFFFFFFFFFL, CodedInputStream.DecodeZigZag64(0xFFFFFFFFFFFFFFFEL));
  30. Assert.AreEqual(unchecked((long)0x8000000000000000L),CodedInputStream.DecodeZigZag64(0xFFFFFFFFFFFFFFFFL));
  31. }
  32. }
  33. }