public void GetNextSlice_DiminishButNotToZeroFirstSlice()
        {
            var A = new[] { 3, 2, -4, 1, 1 };
            var nextSliceStart = 0;

            var expected = new Solution.Slice()
            {
                MinIndex = 0,
                MaxIndex = 1,
                Sum = 5,
                SliceLength = 2,
                MaxValueInSlice = 3
            };

            var actual = Solution.GetNextSlice(A, nextSliceStart);

            Assert.IsTrue(SlicesAreEqual(expected, actual));
        }
        public void GetNextSlice_ExampleSecondSlice()
        {
            var A = new[] { 3, 2, -6, 3, 1 };
            var nextSliceStart = 2;

            var expected = new Solution.Slice()
            {
                MinIndex = 2,
                MaxIndex = 2,
                Sum = -6,
                SliceLength = 1,
                MaxValueInSlice = -6
            };

            var actual = Solution.GetNextSlice(A, nextSliceStart);

            Assert.IsTrue(SlicesAreEqual(expected, actual));
        }
        public void GetNextSlice_DiminishedThenExceeded_JustOneSlice()
        {
            var A = new[] { 3, 2, -4, 3, 3 };
            var nextSliceStart = 0;

            var expected = new Solution.Slice()
            {
                MinIndex = 0,
                MaxIndex = 4,
                Sum = 7,
                SliceLength = 5,
                MaxValueInSlice = 3
            };

            var actual = Solution.GetNextSlice(A, nextSliceStart);

            Assert.IsTrue(SlicesAreEqual(expected, actual));
        }