Beispiel #1
0
        public void SetRoomBordersSubFulfillable()
        {
            var roomGen = new TestRoomGenException <ITiledGenContext>
            {
                OpenDown  = true,
                OpenLeft  = true,
                OpenUp    = true,
                OpenRight = true,
            };

            string[] inGrid =
            {
                "XXXXXXXX",
                "XX.....X",
                "XX.....X",
                "XX.....X",
                "XX.....X",
                "XXXXXXXX",
                "XXXXXXXX",
            };

            TestGenContext testContext = TestGenContext.InitGridToContext(inGrid);
            Mock <IRandom> testRand    = new Mock <IRandom>(MockBehavior.Strict);

            roomGen.PrepareSize(testRand.Object, new Loc(5, 4));
            roomGen.SetLoc(new Loc(2, 1));

            roomGen.SetRoomBorders(testContext);

            Assert.That(roomGen.PublicOpenedBorder[Dir4.Down], Is.EqualTo(new bool[] { false, false, true, false, false }));
            Assert.That(roomGen.PublicOpenedBorder[Dir4.Left], Is.EqualTo(new bool[] { false, false, true, false }));
            Assert.That(roomGen.PublicOpenedBorder[Dir4.Up], Is.EqualTo(new bool[] { false, false, true, false, false }));
            Assert.That(roomGen.PublicOpenedBorder[Dir4.Right], Is.EqualTo(new bool[] { false, false, true, false }));
        }
Beispiel #2
0
        public void ReceiveBorderRangeFulfilledTile(int rangeStart, int rangeEnd, Dir4 dir, int expectedStart, int expectedEnd, bool exception)
        {
            Mock <IRandom> testRand = new Mock <IRandom>(MockBehavior.Strict);
            var            roomGen  = new TestRoomGenException <ITiledGenContext>
            {
                OpenDown  = true,
                OpenLeft  = true,
                OpenUp    = true,
                OpenRight = true,
            };

            roomGen.PrepareSize(testRand.Object, new Loc(5, 7));
            roomGen.SetLoc(new Loc(1, 2));

            if (exception)
            {
                Assert.Throws <ArgumentException>(() => { roomGen.ReceiveBorderRange(new IntRange(rangeStart, rangeEnd), dir); });
            }
            else
            {
                roomGen.ReceiveBorderRange(new IntRange(rangeStart, rangeEnd), dir);
                IntRange newRange = roomGen.RoomSideReqs[dir][0];
                Assert.That(newRange, Is.EqualTo(new IntRange(expectedStart, expectedEnd)));
            }
        }
Beispiel #3
0
        public void PrepareSizeIncompleteFulfillableException(bool openDown, bool openLeft, bool openUp, bool openRight)
        {
            Mock <IRandom> testRand = new Mock <IRandom>(MockBehavior.Strict);
            var            roomGen  = new TestRoomGenException <ITiledGenContext>
            {
                OpenDown  = openDown,
                OpenLeft  = openLeft,
                OpenUp    = openUp,
                OpenRight = openRight,
            };

            Assert.Throws <ArgumentException>(() => { roomGen.PrepareSize(testRand.Object, new Loc(1)); });
        }