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());
            }
        }