Example #1
0
        public void EnumeratorDisposal()
        {
            var e    = new TestEnumerator();
            var iter = TaskEnumerator <object> .FromEnumerator(e, 1);

            Scheduler.WaitFor(iter.Fetch());
            iter.Dispose();
            Assert.IsTrue(e.Disposed);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
            }
        }