public void WhereWhere_IEnumerable_ExecutionIsDefered()
{
bool funcCalled = false;
IEnumerable<Func<bool>> source = Enumerable.Repeat((Func<bool>)(() => { funcCalled = true; return true; }), 1);
IEnumerable<Func<bool>> query = source.Where(value => value()).Where(value => value());
Assert.False(funcCalled);
query = source.Where((value, index) => value());
Assert.False(funcCalled);
}