Code Coverage: (bc: block coverage)
Factory Method:
[PexFactoryMethod(typeof(DataStructures.ArrayList))]public static DataStructures.ArrayList Create([PexAssumeNotNull]int[] elems){ PexAssume.IsTrue( elems.Length < 11); //PexAssume.TrueForAll(0, elems.Length, _i => elems[_i] > -11 && elems[_i] < 11); DataStructures.ArrayList ret = new DataStructures.ArrayList(elems.Length+2); for (int i = 0; i < elems.Length; i++) { //if (!ret.Contains(elems[i])) ret.Add(elems[i]); } return ret;}
Equal Method:
public string ToStringForInt(){ string ret = "{"; var en = this.GetEnumerator(); while (en.MoveNext()) { ret += en.Current.ToString() + " "; } return ret + "}";}
public class ArrayListEqualityComparer : EqualityComparer<ArrayList>{ public override bool Equals(DataStructures.ArrayList q1, DataStructures.ArrayList q2) { // handle null cases first if (q1 == null) { return (q2 == null); } else if (q2 == null) { // set1 != null return false; } else if (q1.Count != q2.Count) return false; for (int i = 0; i < q1.Count; i++) { if (!q1[i].Equals(q2[i])) return false; } return true; } public override int GetHashCode(DataStructures.ArrayList q) { int hash = 0; for (int i = 0; i < q.Count; i++) { hash += q[i].GetHashCode(); } return hash; }}