public void Select_ExceptionThrownFromGetEnumeratorOnSource_ExceptionPropagatedToTheCaller()
{
IEnumerable<int> source = new ThrowsOnGetEnumerator();
Func<int, int> selector = i => i + 1;
var result = source.Select(selector);
var enumerator = result.GetEnumerator();
Assert.Throws<InvalidOperationException>(() => enumerator.MoveNext());
}