public static void TryPopTest() { var valueStack = new ValueStack <int>(new int[] { 1, 2, 3 }); var result = valueStack.TryPop(out var value); Assert.That(() => result, Is.True ); Assert.That(() => value, Is.EqualTo(3) ); valueStack.Push(4); result = valueStack.TryPop(out value); Assert.That(() => result, Is.True ); Assert.That(() => value, Is.EqualTo(4) ); Assert.That(() => valueStack, Has.Property("Capacity").EqualTo(3) .And.Count.EqualTo(2) ); valueStack = new ValueStack <int>(); Assert.That(() => valueStack.TryPop(out _), Is.False ); }