public void verifyEq(object expected, object actual, string msg) { if (!OpUtil.compareEQ(expected, actual)) { //if (msg == null) msg = s(expected) + " != " + s(actual); if (msg == null) { msg = s(expected) + " [" + (expected != null ? expected.GetType().ToString() : "null") + "] != " + s(actual) + " [" + (actual != null ? actual.GetType().ToString() : "null") + "]"; } fail(msg); } if (expected != null && actual != null) { if (hash(expected) != hash(actual)) { fail("Equal but different hash codes: " + expected + " (0x" + FanInt.toHex(hash(expected)) + ") ?= " + actual + " (0x" + FanInt.toHex(hash(actual)) + ")"); } } verifyCount++; }