예제 #1
0
        public void TestEnumerator()
        {
            var q = new PriorityQueue<int>();
            var e = q.GetEnumerator();

            Assert.Throws<InvalidOperationException>(() =>
            {
                var v = e.Current;
            });

            Assert.IsFalse(e.MoveNext());

            Assert.Throws<InvalidOperationException>(() =>
            {
                var v = e.Current;
            });

            Assert.IsFalse(e.MoveNext());
        }
예제 #2
0
        public void TestEnumeratorWhileModify()
        {
            var q = new PriorityQueue<int>();
            q.Enqueue(3);

            var e = q.GetEnumerator();
            Assert.IsTrue(e.MoveNext());

            q.Dequeue();

            Assert.Throws<InvalidOperationException>(() => e.MoveNext());
        }