public static bool Equals(MetaProgram.List thisObj, MetaProgram.List obj) { //If not a list //if (!(obj is List)) // return false; if (obj.Count() != thisObj.Count()) { return(false); } //Same length else { //Deep check List current = thisObj; List temp = obj; while (current != null) { //Iterate if (temp.value != current.value) { return(false); } current = current.next; temp = temp.next; } } return(true); }
public static void Check1([PexAssumeUnderTest] MetaProgram.List l, [PexAssumeUnderTest] MetaProgram.List l2, int x) { PexAssume.IsTrue(MetaProgram.List.Equals(l, l2)); PexAssume.AreNotSame(l, l2); PexAssume.IsTrue(l.Count() <= 1); //int oldCount = l.Count(); PexObserve.ValueForViewing("old_count", l.Count()); //PexObserve.ValueForViewing("old_last", l.Last()); //l.addToEnd(x); //bad //l.addToEnd2(x); //bad l.addToEnd3(x); //bad PexObserve.ValueForViewing("new_count", l.Count()); //PexObserve.ValueForViewing("new_last", l.Last()); l2.addToEndSolutionForReal(x); //Reference PexAssert.IsTrue(MetaProgram.List.Equals(l, l2)); }