public void GivenSample1_WhenCalculatingHourglassSum_ThenExpectedResultIsReturned()
        {
            var array = new int[6][];

            array[0] = new int[] { -9, -9, -9, 1, 1, 1 };
            array[1] = new int[] { 0, -9, 0, 4, 3, 2 };
            array[2] = new int[] { -9, -9, -9, 1, 2, 3 };
            array[3] = new int[] { 0, 0, 8, 6, 6, 0 };
            array[4] = new int[] { 0, 0, 0, -2, 0, 0 };
            array[5] = new int[] { 0, 0, 1, 2, 4, 0 };

            var result = TwoDArrayDS.HourglassSum(array);

            var expectedSums = new List <int> {
                -63, -34, -9, 12,
                -10, 0, 28, 23,
                -27, -11, -2, 10,
                9, 17, 25, 18
            };

            var actualSums = TwoDArrayDS.GetSums(array);

            foreach (var sum in expectedSums)
            {
                Assert.True(actualSums.Contains(sum), $"Sum of '{ sum }' not found");
            }
            Assert.Equal(28, result);
        }
        public void GivenSample2_WhenCalculatingHourglassSum_ThenExpectedResultIsReturned()
        {
            var array = new int[6][];

            array[0] = new int[] { 1, 1, 1, 0, 0, 0 };
            array[1] = new int[] { 0, 1, 0, 0, 0, 0 };
            array[2] = new int[] { 1, 1, 1, 0, 0, 0 };
            array[3] = new int[] { 0, 0, 2, 4, 4, 0 };
            array[4] = new int[] { 0, 0, 0, 2, 0, 0 };
            array[5] = new int[] { 0, 0, 1, 2, 4, 0 };

            var result = TwoDArrayDS.HourglassSum(array);

            Assert.Equal(19, result);
        }
        public void GivenColumnsSmallerThanHourglassArray_WhenCalculatingHourglassSum_ThenExpectedResultIsReturned()
        {
            var array = new int[6][];

            array[0] = new int[] { 0, 0 };
            array[1] = new int[] { 0, 0, 0, 0, 0, 0 };
            array[2] = new int[] { 0, 0, 0, 0, 0, 0 };
            array[3] = new int[] { 0, 0, 0, 0, 0, 0 };
            array[4] = new int[] { 0, 0, 0, 0, 0, 0 };
            array[5] = new int[] { 0, 0, 0, 0, 0, 0 };

            var result = TwoDArrayDS.HourglassSum(array);

            Assert.Equal(0, result);
        }
Exemplo n.º 4
0
        public void GetLargestHourGlassValueTest_Success3()
        {
            // Arrange
            var expectedSuccessfulTest   = 28;
            var successfulTestStr        = "-9 -9 -9 1 1 1\n0 -9 0 4 3 2\n-9 -9 -9 1 2 3\n0 0 8 6 6 0\n0 0 0 -2 0 0\n0 0 1 2 4 0";
            var successfulTestInputSplit = successfulTestStr.Split('\n');

            int[][] successfulTest = new int[6][];
            for (int i = 0; i < 6; i++)
            {
                successfulTest[i] = Array.ConvertAll(successfulTestInputSplit[i].Split(' '), arrTemp => Convert.ToInt32(arrTemp));
            }

            // Act
            var twoDArrayDS          = new TwoDArrayDS();
            var successfulTestResult = twoDArrayDS.GetLargestHourGlassValue(successfulTest);

            // Assert
            Assert.AreEqual(expectedSuccessfulTest, successfulTestResult);
        }