Пример #1
0
        public void EnumeratorTest()
        {
            int count = 100;

            IEnumerable <int> items    = Enumerable.Range(0, count);
            IEnumerable <int> reversed = items.Reverse();

            IPersistentStack <int> stack = PersistentStack <int> .Of(items);

            foreach (IEnumerator enumerator in
                     new IEnumerator[] { stack.GetEnumerator(), ((IEnumerable)stack).GetEnumerator() })
            {
                foreach (int item in reversed)
                {
                    Assert.True(enumerator.MoveNext());
                    Assert.Equal(item, enumerator.Current);
                }
                Assert.False(enumerator.MoveNext());
            }
        }
Пример #2
0
        public void CreateStackTest()
        {
            int count = 100;

            IEnumerable <int> items         = Enumerable.Range(0, count);
            IEnumerable <int> reversedItems = items.Reverse();

            IPersistentStack <int> stack = PersistentStack <int> .Of(items);

            int itemsLeft = count;

            foreach (int expectedItem in reversedItems)
            {
                Assert.Equal(itemsLeft, stack.Count);

                int head;
                (head, stack) = stack.Pop();
                itemsLeft--;

                Assert.Equal(expectedItem, head);
            }

            CheckEmptyBehaviour(stack);
        }
Пример #3
0
 static void Main(string[] args)
 {
     TestStack = new PersistentStack <string>();
     TestStack.StackEventHandler += X_StackEventHandler;;
     Menu();
 }
Пример #4
0
 private PersistentStack(PersistentStack <T> prev, T top, int count)
 {
     previousStack = prev;
     Top           = top;
     Count         = count;
 }