public void Test()
 {
     var foo1 = new NonEquatable("Hello World!");
     var foo2 = new NonEquatable("HELLO WORLD!");
     var foo3 = new NonEquatable("Goodbye World!");
     Assert.AreEqual(foo1, foo2); // The assertions will use the custom comparer defined above.
     Assert.AreNotEqual(foo1, foo3);
 }
        public static bool Equals(NonEquatable x, NonEquatable y)
        {
            // The inner comparison engine of Gallio handles with the cases
            // where x or y is null. Therefore we can safely assume than x
            // and y are never null here.

            return x.Text.Equals(y.Text, StringComparison.OrdinalIgnoreCase); // Custom equality logic.
        }