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); }
public void Cache_Leaf_IteratorIsDisposed () { var r = new CacheIterDisposed (); int c = 0; foreach (var e in r.GetValues ().Take(2).Cache ()) { ++c; Ignore (e); } Assert.AreEqual (2, c); Assert.AreEqual (1, r.Disposed); }