aboutsummaryrefslogtreecommitdiffhomepage
path: root/csharp/ProtocolBuffers.Test/CodedInputStreamTest.cs
blob: 56b17a35f45a1c9d400b4454cfa7382a97ecab85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;

namespace Google.ProtocolBuffers {
  [TestFixture]
  public class CodedInputStreamTest {
    
    [Test]
    public void DecodeZigZag32() {
      Assert.AreEqual( 0, CodedInputStream.DecodeZigZag32(0));
      Assert.AreEqual(-1, CodedInputStream.DecodeZigZag32(1));
      Assert.AreEqual( 1, CodedInputStream.DecodeZigZag32(2));
      Assert.AreEqual(-2, CodedInputStream.DecodeZigZag32(3));
      Assert.AreEqual(0x3FFFFFFF, CodedInputStream.DecodeZigZag32(0x7FFFFFFE));
      Assert.AreEqual(unchecked((int)0xC0000000), CodedInputStream.DecodeZigZag32(0x7FFFFFFF));
      Assert.AreEqual(0x7FFFFFFF, CodedInputStream.DecodeZigZag32(0xFFFFFFFE));
      Assert.AreEqual(unchecked((int)0x80000000), CodedInputStream.DecodeZigZag32(0xFFFFFFFF));
    }

    [Test]
    public void DecodeZigZag64() {
      Assert.AreEqual( 0, CodedInputStream.DecodeZigZag64(0));
      Assert.AreEqual(-1, CodedInputStream.DecodeZigZag64(1));
      Assert.AreEqual( 1, CodedInputStream.DecodeZigZag64(2));
      Assert.AreEqual(-2, CodedInputStream.DecodeZigZag64(3));
      Assert.AreEqual(0x000000003FFFFFFFL, CodedInputStream.DecodeZigZag64(0x000000007FFFFFFEL));
      Assert.AreEqual(unchecked((long)0xFFFFFFFFC0000000L), CodedInputStream.DecodeZigZag64(0x000000007FFFFFFFL));
      Assert.AreEqual(0x000000007FFFFFFFL, CodedInputStream.DecodeZigZag64(0x00000000FFFFFFFEL));
      Assert.AreEqual(unchecked((long)0xFFFFFFFF80000000L), CodedInputStream.DecodeZigZag64(0x00000000FFFFFFFFL));
      Assert.AreEqual(0x7FFFFFFFFFFFFFFFL, CodedInputStream.DecodeZigZag64(0xFFFFFFFFFFFFFFFEL));
      Assert.AreEqual(unchecked((long)0x8000000000000000L),CodedInputStream.DecodeZigZag64(0xFFFFFFFFFFFFFFFFL));
    }
  }
}