public void EnumeratorDisposal() { var e = new TestEnumerator(); var iter = TaskEnumerator <object> .FromEnumerator(e, 1); Scheduler.WaitFor(iter.Fetch()); iter.Dispose(); Assert.IsTrue(e.Disposed); }
public void TestToArrayOnEmptySequence() { var e = new TestEnumerator(); var iter = TaskEnumerator <object> .FromEnumerator(e, 1); object[] items = (object[])Scheduler.WaitFor(iter.GetArray()); object[] expected = new object[0]; Assert.AreEqual(expected, items); }
public void TestBufferingPerformance() { int[] buf = new int[1024 * 512], copy = null; for (int i = 0; i < buf.Length; i++) { buf[i] = i; } for (int bs = 8; bs <= 4096; bs *= 2) { long timeStart = Time.Ticks; using (var iter = TaskEnumerator <int> .FromEnumerator((buf as IEnumerable <int>).GetEnumerator(), bs)) { copy = (int[])Scheduler.WaitFor(iter.GetArray()); } long timeEnd = Time.Ticks; TimeSpan elapsed = new TimeSpan(timeEnd - timeStart); Console.WriteLine("Took {0:N2} secs with a buffer size of {1}.", elapsed.TotalSeconds, bs); } }