if (!(value is System.Byte))
throw new ArgumentException (Locale.GetText ("Value is not a System.Byte."));
- byte xv = (byte) value;
-
- if (m_value == xv)
- return 0;
- if (m_value > xv)
- return 1;
- else
- return -1;
+ return CompareTo ((byte) value);
}
public override bool Equals (object obj)
public int CompareTo (byte value)
{
- if (m_value == value)
- return 0;
- if (m_value > value)
- return 1;
- else
- return -1;
+ return m_value - value;
}
public bool Equals (byte obj)
if (!(value is System.Int16))
throw new ArgumentException (Locale.GetText ("Value is not a System.Int16"));
- short xv = (short) value;
- if (m_value == xv)
- return 0;
- if (m_value > xv)
- return 1;
- else
- return -1;
+ return CompareTo ((short) value);
}
public override bool Equals (object obj)
public int CompareTo (short value)
{
- if (m_value == value)
- return 0;
- if (m_value > value)
- return 1;
- else
- return -1;
+ return m_value - value;
}
public bool Equals (short obj)
if (!(obj is System.SByte))
throw new ArgumentException (Locale.GetText ("Value is not a System.SByte."));
- sbyte xv = (sbyte) obj;
- if (m_value == xv)
- return 0;
- if (m_value > xv)
- return 1;
- else
- return -1;
+ return CompareTo ((sbyte) obj);
}
public override bool Equals (object obj)
public int CompareTo (sbyte value)
{
- if (m_value == value)
- return 0;
- if (m_value > value)
- return 1;
- else
- return -1;
+ return m_value - value;
}
public bool Equals (sbyte obj)
if(!(value is System.UInt16))
throw new ArgumentException (Locale.GetText ("Value is not a System.UInt16."));
- return this.m_value - ((ushort) value);
+ return CompareTo ((ushort) value);
}
public override bool Equals (object obj)
Thread.CurrentThread.CurrentCulture = old_culture;
}
+ [Test]
public void TestMinMax()
{
Assert.AreEqual(Byte.MinValue, MyByte2);
Assert.AreEqual(Byte.MaxValue, MyByte3);
}
-
+
+ [Test]
public void TestCompareTo()
{
- Assert.IsTrue (MyByte3.CompareTo(MyByte2) > 0);
- Assert.IsTrue (MyByte2.CompareTo(MyByte2) == 0);
- Assert.IsTrue (MyByte1.CompareTo((object)(Byte)42) == 0);
- Assert.IsTrue (MyByte2.CompareTo(MyByte3) < 0);
+ Assert.AreEqual (255, MyByte3.CompareTo(MyByte2), "#1");
+ Assert.AreEqual (0, MyByte2.CompareTo(MyByte2), "#2");
+ Assert.AreEqual (0, MyByte1.CompareTo((object)(Byte)42), "#3");
+ Assert.AreEqual (-255, MyByte2.CompareTo(MyByte3), "#4");
try {
MyByte2.CompareTo((object)100);
Assert.Fail ("Should raise a System.ArgumentException");
- }
- catch (Exception e) {
- Assert.IsTrue (typeof(ArgumentException) == e.GetType());
+ } catch (ArgumentException e) {
}
}
+ [Test]
public void TestEquals()
{
Assert.IsTrue (MyByte1.Equals(MyByte1));
Assert.IsTrue (MyByte1.Equals(MyByte2) == false);
}
+ [Test]
public void TestGetHashCode()
{
try {
}
}
+ [Test]
public void TestParse()
{
//test Parse(string s)
Byte.Parse(OverInt.ToString());
}
-
+ [Test]
public void TestToString()
{
//test ToString()
}
[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");
[Test]
public void TestCompareTo()
{
- Assert.IsTrue(MyInt16_3.CompareTo(MyInt16_2) > 0);
- Assert.IsTrue(MyInt16_2.CompareTo(MyInt16_2) == 0);
- Assert.IsTrue(MyInt16_1.CompareTo((Int16)(-42)) == 0);
- Assert.IsTrue(MyInt16_2.CompareTo(MyInt16_3) < 0);
+ Assert.AreEqual(65535, MyInt16_3.CompareTo(MyInt16_2), "#1");
+ Assert.AreEqual(0, MyInt16_2.CompareTo(MyInt16_2), "#2");
+ Assert.AreEqual(0, MyInt16_1.CompareTo((Int16)(-42)), "#3");
+ Assert.AreEqual(-65535, MyInt16_2.CompareTo(MyInt16_3), "#4");
try {
MyInt16_2.CompareTo((object)100);
Assert.Fail ("Should raise a System.ArgumentException");
- }
- catch (Exception e) {
- Assert.IsTrue(typeof(ArgumentException) == e.GetType());
+ } catch (ArgumentException e) {
}
}
[Test]
public void TestCompareTo()
{
- Assert.IsTrue(MySByte3.CompareTo(MySByte2) > 0);
- Assert.IsTrue(MySByte2.CompareTo(MySByte2) == 0);
- Assert.IsTrue(MySByte1.CompareTo((SByte)(-42)) == 0);
- Assert.IsTrue(MySByte2.CompareTo(MySByte3) < 0);
+ Assert.AreEqual(255, MySByte3.CompareTo(MySByte2), "#1");
+ Assert.AreEqual(0, MySByte2.CompareTo(MySByte2), "#2");
+ Assert.AreEqual(0, MySByte1.CompareTo((SByte)(-42)), "#3");
+ Assert.AreEqual(-255, MySByte2.CompareTo(MySByte3), "#4");
try {
MySByte2.CompareTo((object)(int)100);
Assert.Fail("Should raise a System.ArgumentException");
- }
- catch (Exception e) {
- Assert.IsTrue(typeof(ArgumentException) == e.GetType());
+ } catch (ArgumentException e) {
}
}
[Test]
public void TestCompareTo()
{
- Assert.IsTrue(MyUInt16_3.CompareTo(MyUInt16_2) > 0);
- Assert.IsTrue(MyUInt16_2.CompareTo(MyUInt16_2) == 0);
- Assert.IsTrue(MyUInt16_1.CompareTo((UInt16)(42)) == 0);
- Assert.IsTrue(MyUInt16_2.CompareTo(MyUInt16_3) < 0);
+ Assert.AreEqual(65535, MyUInt16_3.CompareTo(MyUInt16_2), "#1");
+ Assert.AreEqual(0, MyUInt16_2.CompareTo(MyUInt16_2), "#2");
+ Assert.AreEqual(0, MyUInt16_1.CompareTo((UInt16)(42)), "#3");
+ Assert.AreEqual(-65535, MyUInt16_2.CompareTo(MyUInt16_3), "#4");
try {
MyUInt16_2.CompareTo((object)100);
Assert.Fail("Should raise a System.ArgumentException");
- }
- catch (Exception e) {
- Assert.IsTrue(typeof(ArgumentException) == e.GetType());
+ } catch (ArgumentException e) {
}
}
* Dietmar Maurer (dietmar@ximian.com)
* Paolo Molaro (lupus@ximian.com)
* Patrik Torstensson (patrik.torstensson@labs2.com)
+ * Marek Safar (marek.safar@gmail.com)
*
* Copyright 2001-2003 Ximian, Inc (http://www.ximian.com)
* Copyright 2004-2009 Novell, Inc (http://www.novell.com)
- * Copyright 2011-2012 Xamarin Inc (http://www.xamarin.com).
+ * Copyright 2011-2014 Xamarin Inc (http://www.xamarin.com).
*/
#include <config.h>
return me > other ? 1 : -1; \
} while (0)
-#define COMPARE_ENUM_VALUES_RANGE(ENUM_TYPE) do { \
- ENUM_TYPE me = *((ENUM_TYPE*)tdata); \
- ENUM_TYPE other = *((ENUM_TYPE*)odata); \
- if (me == other) \
- return 0; \
- return me - other; \
- } while (0)
-
switch (basetype->type) {
case MONO_TYPE_U1:
COMPARE_ENUM_VALUES (guint8);
COMPARE_ENUM_VALUES (gint8);
case MONO_TYPE_CHAR:
case MONO_TYPE_U2:
- COMPARE_ENUM_VALUES_RANGE (guint16);
+ COMPARE_ENUM_VALUES (guint16);
case MONO_TYPE_I2:
COMPARE_ENUM_VALUES (gint16);
case MONO_TYPE_U4:
default:
g_error ("Implement type 0x%02x in get_hashcode", basetype->type);
}
-#undef COMPARE_ENUM_VALUES_RANGE
#undef COMPARE_ENUM_VALUES
return 0;
}