public static void Update_ReferenceNotEquals(bool useInterpreter) { TestClass testClass1 = new TestClass(); TestClass testClass2 = new TestClass(); BinaryExpression equal = Expression.NotEqual(Expression.Constant(testClass1), Expression.Constant(testClass2)); BinaryExpression newEqual = equal.Update(Expression.Constant(testClass1), equal.Conversion, Expression.Constant(testClass1)); // Original BinaryExpression should be unchanged GeneralBinaryTests.CompileBinaryExpression(equal, useInterpreter, true); GeneralBinaryTests.CompileBinaryExpression(newEqual, useInterpreter, false); }
public static void Equal_Constant_DefaultNullable(bool useInterpreter) { var array = new Expression[] { Expression.Constant(42, typeof(int?)), Expression.Constant(null, typeof(int?)), Expression.Default(typeof(int?)) }; var isNull = new bool[] { false, true, true }; for (int i = 0; i < array.Length; i++) { for (int j = 0; j < array.Length; j++) { BinaryExpression equal = Expression.Equal(array[i], array[j]); GeneralBinaryTests.CompileBinaryExpression(equal, useInterpreter, isNull[i] == isNull[j]); } } }
public static void NotEqual(Array array, bool useInterpreter) { Type type = array.GetType().GetElementType(); for (int i = 0; i < array.Length; i++) { for (int j = 0; j < array.Length; j++) { object a = array.GetValue(i); object b = array.GetValue(j); BinaryExpression equal = Expression.NotEqual(Expression.Constant(a, type), Expression.Constant(b, type)); GeneralBinaryTests.CompileBinaryExpression(equal, useInterpreter, !GeneralBinaryTests.CustomEquals(a, b)); } } }