public void EqualsTest() { var t0 = new DateTime(2013, 7, 28, 0, 0, 0); // UTC var d0 = TimeSpan.FromSeconds(10d); var d1 = TimeSpan.FromSeconds(11d); var x = new MondaiResult("id0", t0, d0, Difficulty.Hard); var y = new MondaiResult("id0", t0, d0, Difficulty.Hard); var z = new MondaiResult("id0", t0, d0, Difficulty.Hard); // 反射律 Assert.True(x.Equals(x)); // 対象律 Assert.True(x.Equals(y)); Assert.True(y.Equals(x)); // 推移律 Assert.True(y.Equals(z)); Assert.True(z.Equals(x)); Assert.False(x.Equals(null)); Assert.False(x.Equals(new object())); Assert.AreEqual(x.GetHashCode(), y.GetHashCode()); // 等しくないデータ同士を比較 { var zz = new MondaiResult("id0", t0, d1, Difficulty.Hard); Assert.False(zz.Equals(x)); Assert.AreNotEqual(zz.GetHashCode(), x.GetHashCode()); } { var zzz = new MondaiResult("id0", t0, d0, Difficulty.Normal); Assert.False(zzz.Equals(x)); Assert.AreNotEqual(zzz.GetHashCode(), x.GetHashCode()); } }