Example #1
0
        public void Test_Equality()
        {
#pragma warning disable 1718 // No warning for comparison to self.

            CardSet c1 = new CardSet {
                bits = 0x02
            };
            CardSet c2 = new CardSet {
                bits = 0xF0
            };
            CardSet c3 = new CardSet {
                bits = 0x02
            };

            object o1 = c1;
            object o2 = c2;
            object o3 = c3;

            Assert.IsTrue(c1 == c1);
            Assert.IsFalse(c1 != c1);
            Assert.IsTrue(c1.Equals(c1));
            Assert.IsTrue(c1.Equals(o1));
            Assert.IsTrue(o1.Equals(c1));
            Assert.IsTrue(o1.Equals(o1));
            Assert.IsTrue(object.Equals(c1, c1));
            Assert.AreEqual(c1.GetHashCode(), c1.GetHashCode());

            Assert.IsTrue(c1 == c3);
            Assert.IsFalse(c1 != c3);
            Assert.IsTrue(c1.Equals(c3));
            Assert.IsTrue(c1.Equals(o3));
            Assert.IsTrue(o1.Equals(c3));
            Assert.IsTrue(o1.Equals(o3));
            Assert.IsTrue(object.Equals(c1, c3));
            Assert.AreEqual(c1.GetHashCode(), c3.GetHashCode());

            Assert.IsFalse(c1 == c2);
            Assert.IsTrue(c1 != c2);
            Assert.IsFalse(c1.Equals(c2));
            Assert.IsFalse(c1.Equals(o2));
            Assert.IsFalse(o1.Equals(c2));
            Assert.IsFalse(o1.Equals(o2));
            Assert.IsFalse(object.Equals(c1, c2));

#pragma warning restore 1718
        }