code: def testZigZagDecode(self):
      Z = wire_format.ZigZagDecode
      self.assertEqual(0, Z(0))
      self.assertEqual(-1, Z(1))
      self.assertEqual(1, Z(2))
      self.assertEqual(-2, Z(3))
      self.assertEqual(2, Z(4))
      self.assertEqual(0x7FFFFFFF, Z(0xFFFFFFFE))
      self.assertEqual(-0x80000000, Z(0xFFFFFFFF))
      self.assertEqual(0x7FFFFFFFFFFFFFFF, Z(0xFFFFFFFFFFFFFFFE))
      self.assertEqual(-0x8000000000000000, Z(0xFFFFFFFFFFFFFFFF))
  
      self.assertRaises(TypeError, Z, None)
      self.assertRaises(TypeError, Z, "abcd")
      self.assertRaises(TypeError, Z, 0.0)
      self.assertRaises(TypeError, Z, object())
  
file_path: coremltools/deps/protobuf/python/google/protobuf/internal/wire_format_test.py
imports: from google.protobuf import message
  from google.protobuf.internal import wire_format
label_desc: Use image node_id 4 for calling the WireFormatTest obj's underlying member method code with example usage: obj.testZigZagDecode() without return types