public void MutuallyExclusive_EqualityReflectedAcrossDifferentObjects() { var identicalStrings = "These strings are identical"; var notIdenticalString = "These strings are not identical"; var identicalNumber = 0.000089; var identicalNumberOffset = 0.000000000000123; var baseObj = new GenericDynamicObject( num: identicalNumber, pubString: identicalStrings, secondString: identicalStrings); var evaluatedObject = new SlightlyDifferentObject( num: identicalNumber + identicalNumberOffset, pubString: notIdenticalString, secondString: notIdenticalString); var result = _calculator.MutuallyExclusive( baseObj: baseObj, evaluated: evaluatedObject); Assert.Equal( expected: 1, actual: result.Count(n => n.BaseValue != null)); Assert.Equal( expected: 1, actual: result.Count(n => n.EvaluatedValue != null)); }
public void GetExclusiveFields_YieldsOnlyExclusiveFields() { var baseObj = new GenericDynamicObject(); var evaluatedObject = new SlightlyDifferentObject(); var result = _calculator.GetExclusiveFields(baseObj, evaluatedObject); Assert.True(result.ToList() .Any(n => string.Equals(n.Name, "SecondaryString"))); }
public void IgnoresFieldsContaining() { var calculator = new DiffCalculator( ignoreFieldsContaining: new[] { "String" }); var a = new SlightlyDifferentObject(secondString: "hi"); var b = new SlightlyDifferentObject(secondString: "there"); var resultObject = calculator.Diff(a, b); Assert.True(resultObject.ValuesMatch); }
public void IgnoresFieldsContainingByType() { var calculator = new DiffCalculator(ignoreFieldsContainingByType: new Dictionary <Type, string[]> { { typeof(SlightlyDifferentObject), new[] { "String" } } }); var a = new SlightlyDifferentObject(secondString: "hi"); var b = new SlightlyDifferentObject(secondString: "there"); var resultObject = calculator.Diff(a, b); Assert.True(resultObject.ValuesMatch); }
public void Intersect_YieldsOnlyCommonFields() { var identicalStrings = "These strings are identical"; var identicalNumber = 0.000089; var baseObj = new GenericDynamicObject( num: identicalNumber, pubString: identicalStrings, secondString: identicalStrings); var evaluatedObject = new SlightlyDifferentObject( num: identicalNumber, pubString: identicalStrings, secondString: identicalStrings); var result = _calculator.Intersect( baseObj: baseObj, evaluated: evaluatedObject); Assert.Equal( expected: 2, actual: result.Count); }