예제 #1
0
		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);
		}
예제 #2
0
		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);
		}