Пример #1
0
        public void HashStack_PushSameItem_ReturnsFalse()
        {
            var s = new HashStack<int>();
            s.Push(1);
            var added = s.Push(1);

            Assert.False(added);
        }
Пример #2
0
        public void HashStack_PushSameItem_ReturnsFalse()
        {
            var s = new HashStack <int>();

            s.Push(1);
            var added = s.Push(1);

            Assert.IsFalse(added);
        }
Пример #3
0
        public void Push_ThrowsArgumentException_OnEqualElements()
        {
            var stack = new HashStack <int>();

            stack.Push(5);
            Action action = () => stack.Push(5);

            action.Should().Throw <ArgumentException>();
        }
Пример #4
0
        public void Remove_ThrowsArgumentException_OnInvalidElement()
        {
            var stack = new HashStack <int>();

            stack.Push(5);
            stack.Push(124);
            Action action = () => stack.Remove(1);

            action.Should().Throw <ArgumentException>();
        }
Пример #5
0
        public void Clear_RemovesAllElements()
        {
            var stack = new HashStack <int>();

            stack.Push(10);
            stack.Push(20);
            stack.Push(40);
            stack.Clear();
            Action action = () => stack.Pop();

            action.Should().Throw <IndexOutOfRangeException>();
        }
Пример #6
0
        public void HashStack_ContainsTest()
        {
            var s = new HashStack <int>();

            s.Push(5);
            Assert.AreEqual(true, s.Contains(5));
        }
Пример #7
0
        private string GetStringRepresentation(object obj, int nestingLevel)
        {
            if (obj == null)
            {
                return(NullRepresentation);
            }

            if (serializingObjects.Contains(obj))
            {
                throw new FormatException("Found circular reference. Please specify custom serialization for circular reference types." +
                                          $"Found object: {obj}, with type {obj.GetType()}");
            }
            serializingObjects.Push(obj);

            if (TryGetPrimitiveTypesAsString(obj, out var primitiveAsString))
            {
                return(primitiveAsString);
            }

            var sb   = new StringBuilder();
            var type = obj.GetType();

            sb.AppendLine(type.Name);

            sb.Append(IsEnumerableType(type)
                ? GetCollectionAsString(obj as IEnumerable, nestingLevel)
                : GetClassAsString(type, obj, nestingLevel));

            serializingObjects.Pop();
            return(sb.ToString());
        }
Пример #8
0
        public void Contains_ReturnsCorrectValues(int numberToCheck, bool expectedValue, params int[] numbers)
        {
            var stack = new HashStack <int>();

            foreach (var number in numbers)
            {
                stack.Push(number);
            }
            stack.Contains(numberToCheck).Should().Be(expectedValue);
        }
Пример #9
0
        /// <summary>
        /// Signals all threads waiting on this condition.
        /// </summary>
        public void Signal()
        {
            // For signal, we iterate through all of the waiting threads and push the condition
            // id onto the stack for that particular thread. Once this is done, we are safe to
            // pulse the monitor to release waiting threads.
            foreach (string threadId in _waitingThreads)
            {
                _threadSignals.Push(threadId, _signalId);
            }

            _monitor.PulseAll();
        }
Пример #10
0
        public void PushAndPop_ReturnsCorrectElementsInCorrectOrder(params int[] elements)
        {
            var stack = new HashStack <int>();

            foreach (var element in elements)
            {
                stack.Push(element);
            }
            foreach (var element in elements.Reverse())
            {
                stack.Pop().Should().Be(element);
            }
        }
Пример #11
0
        public void Remove_DeletesElementsCorrectly(int amountOfDeletions, params int[] elements)
        {
            var random = new Random();
            var stack  = new HashStack <int>();

            foreach (var t in elements)
            {
                stack.Push(t);
            }
            var reversedElements = elements.Reverse().ToList();

            for (var i = 0; i < amountOfDeletions; i++)
            {
                var randomValue = reversedElements[random.Next(reversedElements.Count)];
                reversedElements.Remove(randomValue);
                stack.Remove(randomValue);
                var stackAsList = stack.ToList();
                stackAsList.Should().BeEquivalentTo(reversedElements);
            }
        }
Пример #12
0
 public void HashStack_ContainsTest()
 {
     var s = new HashStack<int>();
     s.Push(5);
     Assert.Equal(true, s.Contains(5));
 }