public void Equality() { ByteString b1 = ByteString.CopyFrom(1, 2, 3); ByteString b2 = ByteString.CopyFrom(1, 2, 3); ByteString b3 = ByteString.CopyFrom(1, 2, 4); ByteString b4 = ByteString.CopyFrom(1, 2, 3, 4); EqualityTester.AssertEquality(b1, b1); EqualityTester.AssertEquality(b1, b2); EqualityTester.AssertInequality(b1, b3); EqualityTester.AssertInequality(b1, b4); EqualityTester.AssertInequality(b1, null); #pragma warning disable 1718 // Deliberately calling ==(b1, b1) and !=(b1, b1) Assert.IsTrue(b1 == b1); Assert.IsTrue(b1 == b2); Assert.IsFalse(b1 == b3); Assert.IsFalse(b1 == b4); Assert.IsFalse(b1 == null); Assert.IsTrue((ByteString)null == null); Assert.IsFalse(b1 != b1); Assert.IsFalse(b1 != b2); #pragma warning disable 1718 Assert.IsTrue(b1 != b3); Assert.IsTrue(b1 != b4); Assert.IsTrue(b1 != null); Assert.IsFalse((ByteString)null != null); }
public void EmptyMessageFieldDistinctFromMissingMessageField() { // This demonstrates what we're really interested in... var message1 = new TestAllTypes { SingleForeignMessage = new ForeignMessage() }; var message2 = new TestAllTypes(); // SingleForeignMessage is null EqualityTester.AssertInequality(message1, message2); }
public void NaNComparisons() { var message1 = new TestAllTypes { SingleDouble = SampleNaNs.Regular }; var message2 = new TestAllTypes { SingleDouble = SampleNaNs.PayloadFlipped }; var message3 = new TestAllTypes { SingleDouble = SampleNaNs.Regular }; EqualityTester.AssertInequality(message1, message2); EqualityTester.AssertEquality(message1, message3); }