예제 #1
0
        public void TestFindFertileGroundSplitAreaSingleRectangleInput()
        {
            int[,] landMass = new int[400, 600];
            ArrayHelpers.Fill2DArrayWithRectangleValues(landMass, InputParserResult.FERTILE_INDICATOR, 0, 0, 399, 599);
            ArrayHelpers.Fill2DArrayWithRectangleValues(landMass, InputParserResult.BARREN_INDICATOR, 0, 292, 399, 307);
            QueueLandCrawler crawler = new QueueLandCrawler();
            List <long>      areas   = crawler.FindFertileGround(landMass, InputParserResult.BARREN_INDICATOR, InputParserResult.FERTILE_INDICATOR);

            Assert.AreEqual(areas.Count == 2 && areas[0] == 116800 && areas[1] == 116800, true);
        }
예제 #2
0
        public void TestFindFertileGroundFourRectangleInput()
        {
            int[,] landMass = new int[400, 600];
            ArrayHelpers.Fill2DArrayWithRectangleValues(landMass, InputParserResult.FERTILE_INDICATOR, 0, 0, 399, 599);
            ArrayHelpers.Fill2DArrayWithRectangleValues(landMass, InputParserResult.BARREN_INDICATOR, 48, 192, 351, 207);
            ArrayHelpers.Fill2DArrayWithRectangleValues(landMass, InputParserResult.BARREN_INDICATOR, 48, 392, 351, 407);
            ArrayHelpers.Fill2DArrayWithRectangleValues(landMass, InputParserResult.BARREN_INDICATOR, 120, 52, 135, 547);
            ArrayHelpers.Fill2DArrayWithRectangleValues(landMass, InputParserResult.BARREN_INDICATOR, 260, 52, 275, 547);
            QueueLandCrawler crawler = new QueueLandCrawler();
            List <long>      areas   = crawler.FindFertileGround(landMass, InputParserResult.BARREN_INDICATOR, InputParserResult.FERTILE_INDICATOR);

            Assert.AreEqual(areas.Count == 2 && areas[0] == 22816 && areas[1] == 192608, true);
        }