Beispiel #1
0
        public void RotaetRightTest()
        {
            int[,] rotated1 = new int[N, N]
            {
                { 4, 3, 2, 1 },
                { 4, 3, 2, 1 },
                { 4, 3, 2, 1 },
                { 4, 3, 2, 1 }
            };
            int[,] rotated2 = new int[N, N]
            {
                { 4, 4, 4, 4 },
                { 3, 3, 3, 3 },
                { 2, 2, 2, 2 },
                { 1, 1, 1, 1 }
            };
            int[,] rotated3 = new int[N, N]
            {
                { 1, 2, 3, 4 },
                { 1, 2, 3, 4 },
                { 1, 2, 3, 4 },
                { 1, 2, 3, 4 }
            };

            SkyscraperData obj = new SkyscraperData(N, _testdata);

            obj.RotateRight();
            obj.Data.ShouldBe(rotated1);
            obj.RotateRight();
            obj.Data.ShouldBe(rotated2);
            obj.RotateRight();
            obj.Data.ShouldBe(rotated3);
            obj.RotateRight();
            obj.Data.ShouldBe(_testdata);
        }
Beispiel #2
0
        public void CreateFromTblTest()
        {
            SkyscraperData obj = new SkyscraperData(N, _testdata);

            obj.Data.Length.ShouldBe(N * N);
            obj.Data.ShouldBe(_testdata);
        }
Beispiel #3
0
        public void CreateSizesTest()
        {
            SkyscraperData obj = new SkyscraperData(N);

            obj.Data.Length.ShouldBe(N * N);
        }
Beispiel #4
0
        public void ApplyConstraintsTest()
        {
            var clues = new int[]
            {
                2, 2, 1, 3,
                2, 2, 3, 1,
                1, 2, 2, 3,
                3, 2, 1, 3
            };
            var expected = new int[, ]
            {
                { m1 | m2, m3, m4, m1 | m2 },
                { m4, m1 | m2, m1 | m2, m3 },
                { m3, m4, m1 | m2, m1 | m2 },
                { m1 | m2, m1 | m2, m3, m4 }
            };

            SkyscraperData data = _pobj.CreateInitialData();

            _pobj.ApplyConstraints(data, clues);
            data.Data.ShouldBe(expected, "first test failed");
            data.Rows[0].ShouldBe(new List <int>()
            {
                0, 3
            });
            data.Rows[1].ShouldBe(new List <int>()
            {
                1, 2
            });
            data.Rows[2].ShouldBe(new List <int>()
            {
                2, 3
            });
            data.Rows[3].ShouldBe(new List <int>()
            {
                0, 1
            });
            data.Cols[0].ShouldBe(new List <int>()
            {
                0, 3
            });
            data.Cols[1].ShouldBe(new List <int>()
            {
                1, 3
            });
            data.Cols[2].ShouldBe(new List <int>()
            {
                1, 2
            });
            data.Cols[3].ShouldBe(new List <int>()
            {
                0, 2
            });

            clues = new[]
            {
                0, 0, 1, 2,
                0, 2, 0, 0,
                0, 3, 0, 0,
                0, 1, 0, 0
            };
            expected = new int[, ]
            {
                { m1 | m2 | m3, m1 | m2 | m3, m4, m1 | m2 | m3 },
                { m1 | m2 | m3, m4, m1 | m2 | m3, m1 | m2 | m3 },
                { m4, m1 | m2 | m3, m1 | m2 | m3, m1 | m2 | m3 },
                { m1 | m2 | m3, m1 | m2 | m3, m1 | m2, m4 }
            };
            data = _pobj.CreateInitialData();
            _pobj.ApplyConstraints(data, clues);
            data.Data.ShouldBe(expected, "second test failed");
            data.Rows[0].ShouldBe(new List <int>()
            {
                0, 1, 3
            });
            data.Rows[1].ShouldBe(new List <int>()
            {
                0, 2, 3
            });
            data.Rows[2].ShouldBe(new List <int>()
            {
                1, 2, 3
            });
            data.Rows[3].ShouldBe(new List <int>()
            {
                0, 1, 2
            });
            data.Cols[0].ShouldBe(new List <int>()
            {
                0, 1, 3
            });
            data.Cols[1].ShouldBe(new List <int>()
            {
                0, 2, 3
            });
            data.Cols[2].ShouldBe(new List <int>()
            {
                1, 2, 3
            });
            data.Cols[3].ShouldBe(new List <int>()
            {
                0, 1, 2
            });
        }