/// <summary>
        /// Asserts that the given protos are equal and have the same hash code.
        /// </summary>
        private static void CheckEqualsIsConsistent(IMessage message)
        {
            // Object should be equal to itself.
            Assert.AreEqual(message, message);

            // Object should be equal to a dynamic copy of itself.
            DynamicMessage dynamic = DynamicMessage.CreateBuilder(message).Build();

            Assert.AreEqual(message, dynamic);
            Assert.AreEqual(dynamic, message);
            Assert.AreEqual(dynamic.GetHashCode(), message.GetHashCode());
        }