public void CanCheckValuesForEquality() { const short int16Value = 100; const int int32Value = 100; const double doubleValue = 1.111; const double equalDoubleValue = 1.11100000000001; const double unEqualDoubleValue = 1.1110000000001; const float floatValue = 1.111f; const float equalFloatValue = 1.111000001f; const float unequalFloatValue = 1.11100001f; Assert.True(FieldUtils.AreValuesEqual(int16Value, int32Value)); Assert.True(FieldUtils.AreValuesEqual(int32Value, int16Value)); Assert.True(FieldUtils.AreValuesEqual(doubleValue, floatValue)); Assert.True(FieldUtils.AreValuesEqual(floatValue, doubleValue)); Assert.True(FieldUtils.AreValuesEqual(floatValue, equalFloatValue)); Assert.True(FieldUtils.AreValuesEqual(doubleValue, equalDoubleValue)); Assert.False(FieldUtils.AreValuesEqual(floatValue, unequalFloatValue)); Assert.False(FieldUtils.AreValuesEqual(doubleValue, unEqualDoubleValue)); Assert.False(FieldUtils.AreValuesEqual("aa", "AA")); Assert.True(FieldUtils.AreValuesEqual("aa", "AA", caseSensitive: false)); }
public bool AreValuesEqual([NotNull] IRow row1, int tableIndex1, object value1, [NotNull] IRow row2, int tableIndex2, object value2, bool caseSensitive) { object transformedValue1 = GetTransformedValue(row1, value1); object transformedValue2 = GetTransformedValue(row2, value2); bool equal = FieldUtils.AreValuesEqual(transformedValue1, transformedValue2, caseSensitive); if (equal) { return(true); } // check if the specific difference is allowed return(_allowedDifferenceCondition != null && _allowedDifferenceCondition.IsFulfilled(row1, tableIndex1, transformedValue1, row2, tableIndex2, transformedValue2)); }