public void TestPush() { var sut = new SungStack <int>(); sut.Push(1); sut.Push(2); sut.Push(3); int[] expected = { 3, 2, 1 }; Assert.True(expected.SequenceEqual(sut.Traverse().ToArray())); }
public void TestPop() { var sut = new SungStack <int>(); sut.Push(1); sut.Push(2); sut.Push(3); var popped = sut.Pop(); Assert.Equal(3, popped); Assert.True(new[] { 2, 1 }.SequenceEqual(sut.Traverse().ToArray())); popped = sut.Pop(); Assert.Equal(2, popped); Assert.True(new[] { 1 }.SequenceEqual(sut.Traverse().ToArray())); popped = sut.Pop(); Assert.Equal(1, popped); Assert.True(new int[] {}.SequenceEqual(sut.Traverse().ToArray())); Assert.Throws <InvalidOperationException>(() => sut.Pop()); }