Ejemplo n.º 1
0
 def testMonoCellShape(self):
     expected = set()
     expected.add((1, 1))
     b = Board(2,2)
     b.addWall(1, 2)
     b.addWall(2, 1)
     self.assertEquals(expected, b.findShapeAroundCell(1, 1, set()))
Ejemplo n.º 2
0
 def testAdjacentCellsCentralWithWall(self):
     b = Board(2, 2)
     expected = set()
     expected.add((3, 1))
     b.addWall(1, 2)
     b.addWall(3, 2)
     self.assertEquals(expected, b.adjacentCells(1, 1))
Ejemplo n.º 3
0
    def testFindCutConcavShape(self):
        expected = set()
        expected.add((1, 1))
        expected.add((1, 3))
        expected.add((1, 5))
        expected.add((1, 7))

        expected.add((3, 7))
        expected.add((5, 7))

        expected.add((7, 5))
        expected.add((7, 3))
        expected.add((7, 1))

        expected.add((5, 1))
        expected.add((3, 1))
        expected.add((1, 1))

        b = Board(4,4)
        b.addWall(2, 3)
        b.addWall(2, 5)
        b.addWall(3, 6)
        b.addWall(5, 6)
        b.addWall(6, 5)
        b.addWall(6, 3)
        b.addWall(5, 2)
        b.addWall(3, 2)

        b.addWall(7, 6)
        b.addWall(6, 7)
        self.assertEquals(expected, b.findShapeAroundCell(1, 1, set()))
        expected2 = set()
        expected2.add((7, 7))
        self.assertEquals(expected2, b.findShapeAroundCell(7, 7, set()))
Ejemplo n.º 4
0
 def testAdjacentCellsCentralWithWall(self):
     b = Board(4, 4)
     expected = set()
     expected.add((5, 5))
     expected.add((3, 3))
     expected.add((7, 3))
     b.addWall(5, 2)
     self.assertEquals(expected, b.adjacentCells(5, 3))
Ejemplo n.º 5
0
 def testIsWall(self):
     b = Board(2,2)
     self.assertFalse(b.isWall(2, 1))
     b.addWall(2, 1)
     self.assertTrue(b.isWall(2, 1))
     self.assertFalse(b.isWall(1, 2))
     b.addWall(1, 2)
     self.assertTrue(b.isWall(2, 1))
     self.assertTrue(b.isWall(1, 2))
Ejemplo n.º 6
0
 def testShapeInEmptyBoardWithFakeWall(self):
     expected = set()
     expected.add((1, 1))
     expected.add((1, 3))
     expected.add((3, 1))
     expected.add((3, 3))
     b = Board(2,2)
     b.addWall(1, 2)
     self.assertEquals(expected, b.findShapeAroundCell(1, 1, set()))
Ejemplo n.º 7
0
 def testWallsAroundSomeFullyWalledCellAsym(self):
     b = Board(4,4)
     expected = set()
     b.addWall(2, 5)
     b.addWall(4, 5)
     b.addWall(3, 4)
     b.addWall(3, 6)
     expected.add((2, 5))
     expected.add((4, 5))
     expected.add((3, 4))
     expected.add((3, 6))
     self.assertEquals(b.wallsAroundCell(3, 5), expected)
Ejemplo n.º 8
0
 def testFindComplexShape(self):
     expected = set()
     expected.add((1, 1))
     expected.add((1, 3))
     expected.add((1, 5))
     expected.add((1, 7))
     b = Board(4,4)
     b.addWall(2, 1)
     b.addWall(2, 3)
     b.addWall(2, 5)
     b.addWall(2, 7)
     self.assertEquals(expected, b.findShapeAroundCell(1, 1, set()))
Ejemplo n.º 9
0
    def testDotOnWall(self):
        b = Board(2,2)
        b.addWall(1, 2)
        b.addDot(1, 2)
        self.assertEquals(
            """  0 1 j
 +-+-+
0| ø |
 + + +
1|   |
 +-+-+
i
""", b.toString())
Ejemplo n.º 10
0
 def testAddWallShortForm(self):
     b = Board(4, 4)
     b.addWall(1, 2)
     self.assertTrue(b.isWall(1, 2))
     self.assertFalse(b.isWall(1, 4))
     self.assertFalse(b.isWall(2, 1))
     self.assertFalse(b.isDot(1, 3))
     b.addWall(0, 1)
     self.assertTrue(b.isWall(0, 1))
     self.assertTrue(b.isWall(1, 2))
     self.assertFalse(b.isWall(1, 4))
     self.assertFalse(b.isWall(2, 1))
     self.assertFalse(b.isDot(1, 3))
Ejemplo n.º 11
0
    def testOuterShapeConcav(self):
        b = Board(4, 4)
        cells = set()
        cells.add((1, 1))
        cells.add((1, 3))
        cells.add((1, 5))
        cells.add((1, 7))

        cells.add((3, 1))
        cells.add((3, 7))

        cells.add((5, 1))
        cells.add((5, 7))

        cells.add((7, 1))
        cells.add((7, 3))
        cells.add((7, 5))
        cells.add((7, 7))

        b.addWall(2, 3)
        b.addWall(2, 5)
        b.addWall(3, 2)
        b.addWall(3, 6)
        b.addWall(5, 2)
        b.addWall(5, 6)
        b.addWall(6, 3)
        b.addWall(6, 5)


        walls = set()
        walls.add((2, 3))
        walls.add((2, 5))
        walls.add((3, 2))
        walls.add((3, 6))
        walls.add((5, 2))
        walls.add((5, 6))
        walls.add((6, 3))
        walls.add((6, 5))

        walls.add((0, 1))
        walls.add((0, 3))
        walls.add((0, 5))
        walls.add((0, 7))

        walls.add((1, 0))
        walls.add((1, 8))
        walls.add((3, 0))
        walls.add((3, 8))
        walls.add((5, 0))
        walls.add((5, 8))
        walls.add((7, 0))
        walls.add((7, 8))

        walls.add((8, 1))
        walls.add((8, 3))
        walls.add((8, 5))
        walls.add((8, 7))

        resultWalls = b.findOuterWalls(cells)
        self.assertEquals(walls, resultWalls)
Ejemplo n.º 12
0
    def testOuterShapeSimple(self):
        b = Board(4, 4)
        cells = set()
        cells.add((3, 3))
        cells.add((3, 5))
        cells.add((5, 3))
        cells.add((5, 5))


        b.addWall(2, 3)
        b.addWall(2, 5)
        b.addWall(3, 2)
        b.addWall(3, 6)
        b.addWall(5, 2)
        b.addWall(5, 6)
        b.addWall(6, 3)
        b.addWall(6, 5)


        walls = set()
        walls.add((2, 3))
        walls.add((2, 5))
        walls.add((3, 2))
        walls.add((3, 6))
        walls.add((5, 2))
        walls.add((5, 6))
        walls.add((6, 3))
        walls.add((6, 5))

        resultWalls = b.findOuterWalls(cells)
        self.assertEquals(walls, resultWalls)
Ejemplo n.º 13
0
    def testOuterShapeSingleCell(self):
        b = Board(4, 4)
        cells = set()
        cells.add((3, 3))

        b.addWall(2, 3)
        b.addWall(3, 2)
        b.addWall(3, 4)
        b.addWall(4, 3)

        walls = set()
        walls.add((2, 3))
        walls.add((3, 2))
        walls.add((3, 4))
        walls.add((4, 3))

        resultWalls = b.findOuterWalls(cells)
        self.assertEquals(walls, resultWalls)
Ejemplo n.º 14
0
    def testOuterShapeEmptyBoardDumbWall(self):
        b = Board(2, 2)
        cells = set()
        cells.add((1, 1))
        cells.add((1, 3))
        cells.add((3, 1))
        cells.add((3, 3))

        b.addWall(1, 2) # A wall that doesn't frontier the shape

        walls = set()
        walls.add((0, 1))
        walls.add((0, 3))
        walls.add((1, 0))
        walls.add((1, 4))
        walls.add((3, 0))
        walls.add((3, 4))
        walls.add((4, 1))
        walls.add((4, 3))

        resultWalls = b.findOuterWalls(cells)
        self.assertEquals(walls, resultWalls)
Ejemplo n.º 15
0
    def testOuterShapeEmptyBoardFrontieringShape(self):
        b = Board(2, 2)
        cells = set()
        cells.add((1, 1))
        cells.add((1, 3))
        cells.add((3, 1))
        cells.add((3, 3))

        b.addWall(1, 2) # 2 walls that make another shape near the first one
        b.addWall(2, 3)

        walls = set()
        walls.add((0, 1))
        walls.add((0, 3))
        walls.add((1, 0))
        walls.add((1, 4))
        walls.add((3, 0))
        walls.add((3, 4))
        walls.add((4, 1))
        walls.add((4, 3))

        resultWalls = b.findOuterWalls(cells)
        self.assertEquals(walls, resultWalls)
Ejemplo n.º 16
0
 def testWallsAroundSomeWalledCell(self):
     b = Board(4,4)
     expected = set()
     b.addWall(4, 5)
     expected.add((4, 5))
     self.assertEquals(b.wallsAroundCell(5, 5), expected)