public void WhereWhere_List_ExecutionIsDefered()
{
bool funcCalled = false;
List<Func<bool>> source = new List<Func<bool>>() { () => { funcCalled = true; return true; } };
IEnumerable<Func<bool>> query = source.Where(value => value()).Where(value => value());
Assert.False(funcCalled);
query = source.Where((value, index) => value());
Assert.False(funcCalled);
}