[corlib] Make primitive types smaller than int compare result compatible
[mono.git] / mcs / class / corlib / Test / System / EnumTest.cs
index 973b068e823ee28ebde1fcd9d94ce270b8aa8a4a..4425baaaf85096fb16deaf3dfc370f7116bef921 100644 (file)
@@ -975,23 +975,23 @@ namespace MonoTests.System
                }
 
                [Test]
-               public void CompareTo_ShouldBeEqualToUnderlyingType ()
+               public void CompareTo_NotEqualToUnderlyingType ()
                {
-                       Assert.AreEqual (sbyte.MinValue.CompareTo (sbyte.MinValue), EnInt8.A.CompareTo (EnInt8.A), "i8#0");
-                       Assert.AreEqual (sbyte.MinValue.CompareTo ((sbyte)44), EnInt8.A.CompareTo (EnInt8.B), "i8#1");
-                       Assert.AreEqual (((sbyte)44).CompareTo (sbyte.MinValue), EnInt8.B.CompareTo (EnInt8.A), "i8#2");
+                       Assert.AreEqual (0, EnInt8.A.CompareTo (EnInt8.A), "i8#0");
+                       Assert.AreEqual (-1, EnInt8.A.CompareTo (EnInt8.B), "i8#1");
+                       Assert.AreEqual (1, EnInt8.B.CompareTo (EnInt8.A), "i8#2");
        
-                       Assert.AreEqual (byte.MinValue.CompareTo (byte.MinValue), EnUInt8.A.CompareTo (EnUInt8.A), "ui8#0");
-                       Assert.AreEqual (byte.MinValue.CompareTo ((byte)55),  EnUInt8.A.CompareTo (EnUInt8.B), "ui8#1");
-                       Assert.AreEqual (((byte)55).CompareTo (byte.MinValue), EnUInt8.B.CompareTo (EnUInt8.A),"ui8#2");
+                       Assert.AreEqual (0, EnUInt8.A.CompareTo (EnUInt8.A), "ui8#0");
+                       Assert.AreEqual (-1,  EnUInt8.A.CompareTo (EnUInt8.B), "ui8#1");
+                       Assert.AreEqual (1, EnUInt8.B.CompareTo (EnUInt8.A),"ui8#2");
 
-                       Assert.AreEqual (short.MinValue.CompareTo (short.MinValue), EnInt16.A.CompareTo (EnInt16.A), "i16#0");
-                       Assert.AreEqual (short.MinValue.CompareTo ((short)66), EnInt16.A.CompareTo (EnInt16.B), "i16#1");
-                       Assert.AreEqual (((short)66).CompareTo (short.MinValue), EnInt16.B.CompareTo (EnInt16.A), "i16#2");
+                       Assert.AreEqual (0, EnInt16.A.CompareTo (EnInt16.A), "i16#0");
+                       Assert.AreEqual (-1, EnInt16.A.CompareTo (EnInt16.B), "i16#1");
+                       Assert.AreEqual (1, EnInt16.B.CompareTo (EnInt16.A), "i16#2");
 
-                       Assert.AreEqual (ushort.MinValue.CompareTo (ushort.MinValue), EnUInt16.A.CompareTo (EnUInt16.A), "ui16#0");
-                       Assert.AreEqual (ushort.MinValue.CompareTo ((ushort)77), EnUInt16.A.CompareTo (EnUInt16.B), "ui16#1");
-                       Assert.AreEqual (((ushort)77).CompareTo (ushort.MinValue), EnUInt16.B.CompareTo (EnUInt16.A), "ui16#2");
+                       Assert.AreEqual (0, EnUInt16.A.CompareTo (EnUInt16.A), "ui16#0");
+                       Assert.AreEqual (-1, EnUInt16.A.CompareTo (EnUInt16.B), "ui16#1");
+                       Assert.AreEqual (1, EnUInt16.B.CompareTo (EnUInt16.A), "ui16#2");
 
                        Assert.AreEqual (int.MinValue.CompareTo (int.MinValue), EnInt32.A.CompareTo (EnInt32.A), "i32#0");
                        Assert.AreEqual (int.MinValue.CompareTo ((int)88), EnInt32.A.CompareTo (EnInt32.B), "i32#1");