public void CanCompareForEquality() { var aAlias = TestEnum.A; // Resolve compiler warning Assert.True(TestEnum.A.Equals(TestEnum.A)); Assert.True(TestEnum.A.Equals((object)TestEnum.A)); Assert.True(aAlias == TestEnum.A); Assert.False(aAlias != TestEnum.A); Assert.False(TestEnum.A.Equals(TestEnum.B)); Assert.False(TestEnum.A.Equals((object)TestEnum.B)); Assert.False(TestEnum.A == TestEnum.B); Assert.True(TestEnum.A != TestEnum.B); Assert.False(TestEnum.A.Equals(TestEnum.Create("c"))); Assert.False(TestEnum.A.Equals((object)TestEnum.Create("c"))); Assert.False(TestEnum.A == TestEnum.Create("c")); Assert.True(TestEnum.A != TestEnum.Create("c")); Assert.True(TestEnum.Create("a").Equals(TestEnum.A)); Assert.True(TestEnum.Create("a").Equals((object)TestEnum.A)); Assert.True(TestEnum.Create("a") == TestEnum.A); Assert.False(TestEnum.Create("a") != TestEnum.A); Assert.True(TestEnum.Special(TestEnum.A).Equals(TestEnum.Special(TestEnum.A))); Assert.True(TestEnum.Special(TestEnum.A).Equals((object)TestEnum.Special(TestEnum.A))); Assert.True(TestEnum.Special(TestEnum.A) == TestEnum.Special(TestEnum.A)); Assert.False(TestEnum.Special(TestEnum.A) != TestEnum.Special(TestEnum.A)); Assert.False(TestEnum.Special(TestEnum.A).Equals(TestEnum.Special(TestEnum.B))); Assert.False(TestEnum.Special(TestEnum.A).Equals((object)TestEnum.Special(TestEnum.B))); Assert.False(TestEnum.Special(TestEnum.A) == TestEnum.Special(TestEnum.B)); Assert.True(TestEnum.Special(TestEnum.A) != TestEnum.Special(TestEnum.B)); }