public void ItPopsTheNumbersClosestToTheTopOfTheStack() { var stack = new DistinctStack(); stack.Push(1); stack.Push(1); stack.Push(2); stack.Push(2); stack.Push(4); stack.Push(4); stack.Push(3); stack.Push(3); stack.Push(5); stack.Push(5); var result = stack.Pop(); Assert.IsTrue(result == 5); result = stack.Pop(); Assert.IsTrue(result == 3); result = stack.Pop(); Assert.IsTrue(result == 4); result = stack.Pop(); Assert.IsTrue(result == 2); }
public void ItPopsInOrderWhenThereAreNoDuplicates() { var stack = new DistinctStack(); stack.Push(9); stack.Push(1); stack.Push(2); stack.Push(5); var result = stack.Pop(); Assert.IsTrue(result == 5); result = stack.Pop(); Assert.IsTrue(result == 2); result = stack.Pop(); Assert.IsTrue(result == 1); result = stack.Pop(); Assert.IsTrue(result == 9); }
public void ItPopsTheNumbersWithTheMostOccurances() { var stack = new DistinctStack(); stack.Push(1); stack.Push(1); stack.Push(1); stack.Push(1); stack.Push(2); stack.Push(2); stack.Push(3); stack.Push(3); var result = stack.Pop(); Assert.IsTrue(result == 1); result = stack.Pop(); Assert.IsTrue(result == 1); result = stack.Pop(); Assert.IsTrue(result == 3); result = stack.Pop(); Assert.IsTrue(result == 2); }