예제 #1
0
        public void Regression2()
        {
            // Init
            var report = new TestReport();

            var puz = Puzzle.Builder.FromLines(new[]
            {
                "################",
                "#..............#",
                "#..............#",
                "#.############.#",
                "#..............#",
                "################"
            });

            var stat = new StaticAnalysisMaps(puz);
            var dead = DeadMapAnalysis.FindDeadMap(stat);

            Assert.NotNull(dead);
            report.WriteLine(dead);

            //            Assert.That(report, Is.EqualTo(new TestReport(
            //@"...........
            //...........
            //...........
            //.......X...
            //...........
            //...........
            //.......X...
            //...X..X....
            //...........
            //...........
            //..........."
            //
        }
예제 #2
0
        public void DeadMap()
        {
            // Init
            var report = new TestReport();

            var stat = new StaticAnalysisMaps(TestLibrary.Default.Puzzle);
            var dead = DeadMapAnalysis.FindDeadMap(stat);

            Assert.NotNull(dead);
            report.WriteLine(dead);


            var expect = new TestReport(
                @"...........
....X......
...X....XX.
..X......X.
.X....X..X.
.........X.
....X....X.
........X..
..X....X...
..XXXXX....
...........");

            Assert.Equal(report, expect);
        }
예제 #3
0
        public void Box()
        {
            // Init
            var report = new TestReport();

            var puz = Puzzle.Builder.FromLines(new[]
            {
                "#####",
                "#...#",
                "#...#",
                "#...#",
                "#####"
            });

            var stat = new StaticAnalysisMaps(puz);

            var dead = DeadMapAnalysis.FindDeadMap(stat);

            Assert.NotNull(dead);
            report.WriteLine(dead);

            Assert.Equal(new TestReport(
                             @".....
.XXX.
.X.X.
.XXX.
....."), report);
        }
예제 #4
0
        public void Walls_Box_4v4()
        {
            // Init
            var report = new TestReport();

            var puz = Puzzle.Builder.FromLines(new[]
            {
                "######",
                "#....#",
                "#....#",
                "#....#",
                "#....#",
                "######"
            });


            var stat = new StaticAnalysisMaps(puz);

            Assert.NotNull(stat.IndividualWalls);


            foreach (var wall in stat.IndividualWalls)
            {
                report.WriteLine(wall);
            }

            Assert.Equal(new TestReport(@"(1,1) => (4,1)
......
.XXXX.
......
......
......
......

(1,4) => (4,4)
......
......
......
......
.XXXX.
......

(1,1) => (1,4)
......
.X....
.X....
.X....
.X....
......

(4,1) => (4,4)
......
....X.
....X.
....X.
....X.
......
"), report);
        }
예제 #5
0
        public void DoorMap()
        {
            // Init
            var report = new TestReport();

            var stat = new StaticAnalysisMaps(Puzzle.Builder.DefaultTestPuzzle());

            Assert.NotNull(stat.DoorMap);
            report.WriteLine(stat.DoorMap);

            Assert.Equal(new TestReport(@"...........
...........
...........
.......X...
...........
...........
.......X...
...X..X....
...........
...........
..........."), report);
        }
예제 #6
0
        public void DynamicDeadMap()
        {
            // Init
            var p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#...XX...#",
                "#...X#...#",
                "#.P......#",
                "##########"
            });
            var stat = new StaticAnalysisMaps(p);

            Assert.True(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));


            p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#...#X...#",
                "#...X#...#",
                "#.P......#",
                "##########"
            });
            stat = new StaticAnalysisMaps(p);
            Assert.True(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));

            p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#...##...#",
                "#...XX...#",
                "#.P......#",
                "##########"
            });
            stat = new StaticAnalysisMaps(p);
            Assert.True(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));

            p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#........#",
                "#...XX...#",
                "#...##...#",
                "#.P......#",
                "##########"
            });
            stat = new StaticAnalysisMaps(p);
            Assert.True(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));

            p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#........#",
                "#...XX...#",
                "#...X#...#",
                "#.P......#",
                "##########"
            });
            stat = new StaticAnalysisMaps(p);
            Assert.True(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));



            p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#........#",
                "#...$$...#",
                "#...X#...#",
                "#.P......#",
                "##########"
            });
            stat = new StaticAnalysisMaps(p);
            Assert.True(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));

            p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#........#",
                "#...$$...#",
                "#...#X...#",
                "#.P......#",
                "##########"
            });
            stat = new StaticAnalysisMaps(p);
            Assert.True(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));

            p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#........#",
                "#...#X...#",
                "#...$$...#",
                "#.P......#",
                "##########"
            });
            stat = new StaticAnalysisMaps(p);
            Assert.True(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));


            // NOT_DEAD
            p = Puzzle.Builder.FromLines(
                new[]
            {
                "##########",
                "#........#",
                "#...$$...#",
                "#...$#...#",
                "#.P......#",
                "##########"
            });
            stat = new StaticAnalysisMaps(p);
            Assert.False(DeadMapAnalysis.DynamicCheck(stat, StateMaps.Create(p)));
        }
예제 #7
0
        public void Recesses()
        {
            // Init
            var report = new TestReport();

            var stat = new StaticAnalysisMaps(Puzzle.Builder.DefaultTestPuzzle());

            Assert.NotNull(stat.RecessMaps);
            foreach (var recess in stat.RecessMaps)
            {
                report.WriteLine(recess);
            }

            Assert.Equal(new TestReport(@"(8,2) => (9,2)
...........
...........
........XX.
...........
...........
...........
...........
...........
...........
...........
...........

(2,9) => (6,9)
...........
...........
...........
...........
...........
...........
...........
...........
...........
..XXXXX....
...........

(2,8) => (2,9)
...........
...........
...........
...........
...........
...........
...........
...........
..X........
..X........
...........

(9,2) => (9,6)
...........
...........
.........X.
.........X.
.........X.
.........X.
.........X.
...........
...........
...........
..........."), report);
        }
예제 #8
0
        public void Walls()
        {
            // Init
            var report = new TestReport();

            var stat = new StaticAnalysisMaps(Puzzle.Builder.DefaultTestPuzzle());

            Assert.NotNull(stat.IndividualWalls);
            foreach (var wall in stat.IndividualWalls)
            {
                report.WriteLine(wall);
            }

            Assert.Equal(new TestReport(@"(8,2) => (9,2)
...........
...........
........XX.
...........
...........
...........
...........
...........
...........
...........
...........

(3,6) => (4,6)
...........
...........
...........
...........
...........
...........
...XX......
...........
...........
...........
...........

(2,9) => (6,9)
...........
...........
...........
...........
...........
...........
...........
...........
...........
..XXXXX....
...........

(2,8) => (2,9)
...........
...........
...........
...........
...........
...........
...........
...........
..X........
..X........
...........

(6,3) => (6,4)
...........
...........
...........
......X....
......X....
...........
...........
...........
...........
...........
...........

(9,2) => (9,6)
...........
...........
.........X.
.........X.
.........X.
.........X.
.........X.
...........
...........
...........
...........
"), report);
        }