Added support for negative enum values and tests
diff --git a/src/ProtocolBuffers/CodedOutputStream.cs b/src/ProtocolBuffers/CodedOutputStream.cs
index c14f5e0..09099ee 100644
--- a/src/ProtocolBuffers/CodedOutputStream.cs
+++ b/src/ProtocolBuffers/CodedOutputStream.cs
@@ -373,7 +373,7 @@
         public void WriteEnum(int fieldNumber, string fieldName, int value, object rawValue)

         {

             WriteTag(fieldNumber, WireFormat.WireType.Varint);

-            WriteRawVarint32((uint) value);

+            WriteInt32NoTag(value);

         }

 

         public void WriteSFixed32(int fieldNumber, string fieldName, int value)

@@ -648,7 +648,7 @@
 

         public void WriteEnumNoTag(int value)

         {

-            WriteRawVarint32((uint) value);

+            WriteInt32NoTag(value);

         }

 

         public void WriteSFixed32NoTag(int value)