public void Select_SourceIsArray_Take()
{
var source = new[] { 1, 2, 3, 4 }.Select(i => i * 2);
Assert.Equal(new[] { 2, 4 }, source.Take(2));
Assert.Equal(new[] { 2, 4 }, source.Take(3).Take(2));
Assert.Empty(source.Take(-1));
Assert.Equal(new[] { 2, 4, 6, 8 }, source.Take(4));
Assert.Equal(new[] { 2, 4, 6, 8 }, source.Take(40));
Assert.Equal(new[] { 2 }, source.Take(1));
Assert.Equal(new[] { 4 }, source.Skip(1).Take(1));
Assert.Equal(new[] { 6 }, source.Take(3).Skip(2));
Assert.Equal(new[] { 2 }, source.Take(3).Take(1));
}