public void Cache_Intermediate_IteratorIsDisposed ()
{
var r = new CacheIterDisposed ();
int c = 0;
foreach (var e in r.GetValues ().Cache ().Take (2)) {
++c;
Ignore (e);
}
Assert.AreEqual (2, c);
Assert.AreEqual (1, r.Disposed);
r.Disposed=0;
r.GetValues ().Where (v => v%2==0).Select (v => v*2).Apply ();
Assert.AreEqual (1, r.Disposed);
r.Disposed=0;
r.GetValues().Cache ().Where(v => v%2==0).Select(v => v*2).Apply ();
Assert.AreEqual (1, r.Disposed);
}