public static void CreateUnequalTestObjects(out Object1[] l, out Object1[] r, int len) { l = new Object1[len]; r = new Object1[len]; for (int i = 0; i < len; i++) { int valueL = (i & (i + 1)) == 0 ? 42 : i; int valueR = i; string stringL = "test" + valueL; string stringR = "test" + valueR; l[i] = new Object1(valueL, stringL); r[i] = new Object1(valueR, stringR); } }
private static void TestEqualsMethodGenerator() { EqualsMethodGenerator cg = new EqualsMethodGenerator(); Expression <Func <Object1, Object1, bool> > expression = cg.GenerateEqualsMethodExpressionRecurse <Object1>(); Func <Object1, Object1, bool> EqualsMethod = expression.Compile(); Object1 oL = new Object1(3, "string value"); Object1 oR = new Object1(3, "string value"); Console.WriteLine("Should be true:\n\r"); Console.WriteLine("oL.Equals(oR): " + oL.Equals(oR)); Console.WriteLine("oL == oR: " + (oL == oR)); Console.WriteLine("equalMethod(oL, oR): " + EqualsMethod(oL, oR)); oL = new Object1(3, "string value L"); oR = new Object1(3, "string value R"); Console.WriteLine("\n\rShould be false:\n\r"); Console.WriteLine("oL.Equals(oR): " + oL.Equals(oR)); Console.WriteLine("oL == oR: " + (oL == oR)); Console.WriteLine("equalMethod(oL, oR): " + EqualsMethod(oL, oR)); }