public void Select_SourceIsIList_ElementAtOrDefault()
{
var source = new List<int> { 1, 2, 3, 4 }.AsReadOnly().Select(i => i * 2);
for (int i = 0; i != 4; ++i)
Assert.Equal(i * 2 + 2, source.ElementAtOrDefault(i));
Assert.Equal(0, source.ElementAtOrDefault(-1));
Assert.Equal(0, source.ElementAtOrDefault(4));
Assert.Equal(0, source.ElementAtOrDefault(40));
Assert.Equal(6, source.Skip(1).ElementAtOrDefault(1));
Assert.Equal(0, source.Skip(2).ElementAtOrDefault(9));
}