コード例 #1
0
        public void Count_StackSize()
        {
            var stack = new LimitedSizeStack <int>(20);

            stack.Push(0);
            stack.Push(10);
            stack.Push(20);
            Assert.AreEqual(3, stack.Count);
        }
コード例 #2
0
 public LimitedSizeStackTest()
 {
     _LimitedSizeStack     = new LimitedSizeStack <int>(5);
     _LimitedSizeStackFull = new LimitedSizeStack <int>(5);
     for (int i = 0; i < 5; i++)
     {
         _LimitedSizeStackFull.AddFirst(i);
     }
 }
コード例 #3
0
    public void TestPopThrows()
    {
        var stack = new LimitedSizeStack <int>(Size);

        stack.Push(1);
        stack.Pop();
        Assert.True(stack.IsEmpty);

        Assert.Throws <InvalidOperationException>(() => stack.Pop());
    }
コード例 #4
0
        public void ForgetFirstElement_AfterPushBeyondLimit()
        {
            var stack = new LimitedSizeStack <int>(2);

            stack.Push(0);
            stack.Push(10);
            stack.Push(20);
            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(20, stack.Pop());
        }
コード例 #5
0
        public void Push_ShouldTakeConstantTime()
        {
            int limit = 100000;
            var stack = new LimitedSizeStack <int>(limit);

            for (int i = 0; i < 5 * limit; ++i)
            {
                stack.Push(0);
            }
            Assert.AreEqual(limit, stack.Count);
        }
コード例 #6
0
        public void PushAfterEmptyStack()
        {
            var stack = new LimitedSizeStack <int>(20);

            stack.Push(0);
            stack.Push(1);
            stack.Pop();
            stack.Pop();
            stack.Push(2);
            Assert.AreEqual(2, stack.Pop());
        }
コード例 #7
0
        public void PopAfterPush()
        {
            var stack = new LimitedSizeStack <int>(20);

            stack.Push(0);
            stack.Push(1);
            stack.Push(2);
            Assert.AreEqual(2, stack.Pop());
            Assert.AreEqual(1, stack.Pop());
            Assert.AreEqual(0, stack.Pop());
        }
コード例 #8
0
    public void TestPopPush()
    {
        var stack = new LimitedSizeStack <int>(Size);

        Assert.True(stack.IsEmpty);

        const int element = 1;

        stack.Push(element);
        Assert.False(stack.IsEmpty);

        Assert.Equal(element, stack.Pop());
    }
コード例 #9
0
        public void PopPushAfterLimitReached()
        {
            var stack = new LimitedSizeStack <int>(2);

            stack.Push(0);
            stack.Push(1);
            stack.Push(2);
            stack.Pop();
            stack.Push(3);
            Assert.AreEqual(3, stack.Pop());
            Assert.AreEqual(1, stack.Pop());
            Assert.AreEqual(0, stack.Count);
        }
コード例 #10
0
    public void TestClear()
    {
        var stack = new LimitedSizeStack <int>(Size);

        for (var i = 0; i < 5; i++)
        {
            stack.Push(i);
        }

        Assert.False(stack.IsEmpty);

        stack.Clear();

        Assert.True(stack.IsEmpty);
        Assert.Empty(stack.Items);
    }
コード例 #11
0
    public OperationsStatesListViewModel(
        IOperationsStateService operationsStateService,
        IOperationStateViewModelFactory operationStateViewModelFactory,
        IApplicationDispatcher applicationDispatcher,
        IDialogService dialogService,
        OperationsStatesConfiguration configuration)
    {
        _operationsStateService         = operationsStateService;
        _operationStateViewModelFactory = operationStateViewModelFactory;
        _applicationDispatcher          = applicationDispatcher;
        _dialogService = dialogService;

        _activeOperations               = new ObservableCollection <IOperationStateViewModel>();
        _finishedOperationsQueue        = new LimitedSizeStack <IOperationStateViewModel>(configuration.MaximumFinishedOperationsCount);
        _operationsViewModelsDictionary = new ConcurrentDictionary <IOperation, IOperationStateViewModel>();

        SubscribeToEvents();
    }
コード例 #12
0
    public void TestLimitedSize()
    {
        var stack = new LimitedSizeStack <int>(Size);

        Assert.True(stack.IsEmpty);

        for (var i = 0; i < 5; i++)
        {
            stack.Push(i);
        }

        Assert.NotNull(stack.Items);

        var items = stack.Items.ToArray();

        Assert.Equal(3, items.Length);
        Assert.Equal(2, items[0]);
        Assert.Equal(3, items[1]);
        Assert.Equal(4, items[2]);
    }
コード例 #13
0
        public void BeEmpty_AfterCreation()
        {
            var stack = new LimitedSizeStack <int>(20);

            Assert.AreEqual(0, stack.Count);
        }
コード例 #14
0
 public Caretaker()
 {
     employeeHistory = new LimitedSizeStack <EmployeeMemento>(10);
 }
コード例 #15
0
 public void Awake()
 {
     commands = new LimitedSizeStack <Command>(stackSize);
 }