I have two IEnumerable<string>s that contain the same data. However, they are provided by two different functions so their type doesn't match, and I think that is confusing Assert.Equal. Here is a quick repro case:
(moved to
http://pastebin.com/nBa5wYik due to codeplex formatting fail)
Results:
UnitTests.MyTests.FailingTest[FAIL]
Assert.Equal() Failure
Position: First difference is at position 15
Expected: UnitTests.MyTests+<Flatten>d__1e`1[System.String]
Actual: System.Linq.Enumerable+<SelectManyIterator>d__14`2[System.Collections.Generic.IEnumerable`1[System.String],System.String]
It is entirely possible that this is as designed, since the two types don't match, but I would argue that if I'm testing two IEnumerables, I care more about their contents and not where they came from.