/// <summary> /// Verifies that each item in the expect lists equals the item in the same position in the actual list /// </summary> public static void Are <TItem>(IEnumerable expected, IEnumerable actual, CompareAssertion <TItem> assertion, Converter <TItem, string> itemToStringForErrors) { IEnumerator exp = expected.GetEnumerator(); IEnumerator act = actual.GetEnumerator(); int pos = 0; while (exp.MoveNext()) { if (!act.MoveNext()) { Assert.Fail("Actual has fewer items than expected. Index: {1}, Missing item: {0}", itemToStringForErrors((TItem)exp.Current), pos); } assertion((TItem)exp.Current, (TItem)act.Current); ++pos; } if (act.MoveNext()) { Assert.Fail("Actual has more items than expected. Index: {1}, Extra item: {0}", itemToStringForErrors((TItem)act.Current), pos + 1); } }
/// <summary> /// Verifies that each item in the expect lists equals the item in the same position in the actual list /// </summary> public static void Are <TItem>(IEnumerable expected, IEnumerable actual, CompareAssertion <TItem> assertion) { Are <TItem>(expected, actual, assertion, delegate(TItem item) { return(item.ToString()); }); }