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 Intersect_ListDisplaysAppropriateNumberOfEqualFields() { 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 GenericDynamicObject( num: identicalNumber + identicalNumberOffset, pubString: identicalStrings, secondString: notIdenticalString); var result = _calculator.Intersect( baseObj: baseObj, evaluated: evaluatedObject); Assert.Equal( expected: 3, actual: result.Count(n => n.ValuesMatch)); Assert.Equal( expected: 1, actual: result.Count(n => !n.ValuesMatch)); }
public void GetNonObjectFields_YieldsOnlyNonObjects() { var baseObj = new GenericDynamicObject(subobj: new SubObject("An Object")); var result = _calculator.GetNonOjbectFields(baseObj); Assert.Equal( expected: 3, actual: result.Count()); }
public void GetObjectFields_YieldsOnlyObjects() { var baseObj = new GenericDynamicObject(subobj: new SubObject("An Object")); var result = baseObj.GetObjectInstanceFields(); Assert.Equal( expected: 1, actual: result.Count()); }
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 IsObjectField_DiscernsObject() { var baseObj = new GenericDynamicObject(subobj: new SubObject("derr")); var fields = _calculator.GetFields(baseObj); var result = _calculator.IsObjectField( field: fields.First(n => n.Name.Equals("SubObj")), obj: baseObj); Assert.True(result); }
public void IsObjectField_DiscernsObject() { var baseObj = new GenericDynamicObject(subobj: new SubObject("derr")); var fields = baseObj.GetInstanceFields(); var field = fields.First(n => n.Name.Equals("SubObj")); var result = baseObj.IsObjectField(field); Assert.True(result); }
public void GetCorrelate_DoesNotPullEqualNameDifferentType() { var baseObj = new GenericDynamicObject(); var evaluated = new AlmostGenericDynamicObject(); var fields = _calculator.GetFields(baseObj); var result = _calculator.HasCorrelate( field: fields.First(n => n.Name.Equals("SecondaryString")), obj: evaluated); Assert.False(result); }
public void Intersect_ListHasFieldsSet() { var basePublicString = "This is the base object"; var evaluatedPublicString = "This is the evaluated object"; var baseObj = new GenericDynamicObject( num: 10.0, pubString: basePublicString); var evaluatedObject = new GenericDynamicObject( num: 0.0, pubString: evaluatedPublicString); var result = _calculator.Intersect( baseObj: baseObj, evaluated: evaluatedObject); Assert.True(result.Any( n => string.Equals(n.BaseValue, basePublicString) && string.Equals(n.EvaluatedValue, evaluatedPublicString))); }
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); }
public void DiffObjects_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 GenericDynamicObjectCopy( num: identicalNumber + identicalNumberOffset, pubString: identicalStrings, secondString: identicalStrings); var result = _calculator.DiffObjects( baseObj: baseObj, evaluated: evaluatedObject); Assert.True(result.ValuesMatch); }
public void DiffObjects_ShowsObjectsAreTrueIfTheyMatch() { var identicalString = "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: identicalString, secondString: identicalString); var evaluatedObject = new GenericDynamicObject( num: identicalNumber + identicalNumberOffset, pubString: identicalString, secondString: identicalString); var result = _calculator.DiffObjects( baseObj: baseObj, evaluated: evaluatedObject); Assert.True(result.ValuesMatch); }
public void DiffObjects_RecursesAppropriately() { 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, subobj: new SubObject("I am equal")); var equalObj = new GenericDynamicObjectCopy( num: identicalNumber + identicalNumberOffset, pubString: identicalStrings, secondString: identicalStrings, subobj: new SubObject("I am equal")); var notEqualObj = new GenericDynamicObjectCopy( num: identicalNumber + identicalNumberOffset, pubString: identicalStrings, secondString: identicalStrings, subobj: new SubObject("I am not equal")); var equalResult = _calculator.DiffObjects( baseObj: baseObj, evaluated: equalObj); var notEqualResult = _calculator.DiffObjects( baseObj: baseObj, evaluated: notEqualObj); Assert.True(equalResult.ValuesMatch); Assert.False(notEqualResult.ValuesMatch); }