public void BenchMark()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();

            IMinStacks stack1 = new MinStacks();

            BenchMark_Cenario(stack1, out _, out _, out _);

            sw.Stop();
            var ticks1 = sw.ElapsedTicks;

            sw.Reset();
            sw.Start();

            IMinStacks stack2 = new MinStack2();

            BenchMark_Cenario(stack2, out _, out _, out _);

            sw.Stop();
            var ticks2 = sw.ElapsedTicks;

            TestContext.WriteLine($"MinStack: {ticks2} {Environment.NewLine} MinStack2: {ticks1}");
        }
        public void MinStacks_TopDonRemoveMin()
        {
            IMinStacks stack = new MinStacks();

            TopDonRemoveMin(stack, out int min1, out int top, out int min2);

            Assert.That(int.MinValue == min1);
            Assert.That(2 == top);
            Assert.That(2 == min2);
        }
        public void MinStacks_BasicTest()
        {
            IMinStacks stack = new MinStacks();

            BasicTest(stack, out int min1, out int top, out int min2);

            Assert.That(-3 == min1);
            Assert.That(0 == top);
            Assert.That(-2 == min2);
        }