2 // VersionTest.cs - NUnit Test Cases for the System.ValueType class
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
7 // (c) 2003 Novell, Inc. (http://www.novell.com)
10 using NUnit.Framework;
13 namespace MonoTests.System
20 public Blah (string s, int x)
32 public Lalala (string s, int x)
39 struct NullableStruct {
40 public Nullable<int> f;
44 public class ValueTypeTest
47 public void TestEquals ()
49 Blah a = new Blah ("abc", 1);
50 Blah b = new Blah (string.Format ("ab{0}", 'c'), 1);
51 Assert.AreEqual (a.Equals (b), true, "#01");
55 public void TestEquals_Nullable ()
57 NullableStruct f1 = new NullableStruct { f = 5 };
58 NullableStruct f2 = new NullableStruct { f = 5 };
59 Assert.IsTrue (f1.Equals (f2));
61 f1 = new NullableStruct { f = null };
62 f2 = new NullableStruct { f = null };
63 Assert.IsTrue (f1.Equals (f2));
65 f1 = new NullableStruct { f = 1 };
66 f2 = new NullableStruct { f = 2 };
67 Assert.IsFalse (f1.Equals (f2));
69 f1 = new NullableStruct { f = 1 };
70 f2 = new NullableStruct { f = null };
71 Assert.IsFalse (f1.Equals (f2));
75 public void TestGetHash ()
77 Blah a = new Blah ("abc", 1);
78 Blah b = new Blah (string.Format ("ab{0}", 'c'), 1);
79 Assert.AreEqual (a.GetHashCode (), b.GetHashCode (), "#01");
81 Lalala la = new Lalala ("abc", 1);
82 Lalala lb = new Lalala (string.Format ("ab{0}", 'c'), 1);
83 Assert.AreEqual (la.GetHashCode (), lb.GetHashCode (), "#02");
85 a = new Blah (null, 1);
86 b = new Blah (null, 1);
87 Assert.AreEqual (la.GetHashCode (), lb.GetHashCode (), "#03");
89 la = new Lalala (null, 1);
90 lb = new Lalala (null, 1);
91 Assert.AreEqual (la.GetHashCode (), lb.GetHashCode (), "#04");