Example #1
0
    def setUp(self):
        obstacleList = [Obstacle((100, 100)), Obstacle((300, 200))]
        self.graph = Graph(obstacleList, 90)
        self.A_NODE1 = Node((200, 300))
        self.A_NODE2 = Node((400, 600))

        self.graph.generateSafeZone((0, 100), (0, 0), (100, 0))
Example #2
0
    def detectCloserObstacleForEachCornerXAxis(self, verifiedObstacle):
        collisionUpperLeftCorner = Obstacle((verifiedObstacle.positionX, 0))
        collisionUpperRightCorner = Obstacle((verifiedObstacle.positionX, 0))
        collisionBottomLeftCorner = Obstacle(
            (verifiedObstacle.positionX, self.MAP_SIZE_Y))
        collisionBottomRightCorner = Obstacle(
            (verifiedObstacle.positionX, self.MAP_SIZE_Y))

        for compteur in range(0, self.obstaclesList.__len__()):
            currentObstacle = self.obstaclesList[compteur]
            if currentObstacle != verifiedObstacle:
                if (verifiedObstacle.positionX - 2 * self.SAFE_MARGIN <=
                        currentObstacle.positionX
                        and verifiedObstacle.positionX + 2 * self.SAFE_MARGIN
                        >= currentObstacle.positionX):

                    if currentObstacle.positionX <= verifiedObstacle.positionX and currentObstacle.positionY < verifiedObstacle.positionY:
                        if currentObstacle.positionY > collisionUpperLeftCorner.positionY:
                            collisionUpperLeftCorner = currentObstacle

                    if currentObstacle.positionX >= verifiedObstacle.positionX and currentObstacle.positionY < verifiedObstacle.positionY:
                        if currentObstacle.positionY > collisionUpperRightCorner.positionY:
                            collisionUpperRightCorner = currentObstacle

                    if currentObstacle.positionX <= verifiedObstacle.positionX and currentObstacle.positionY > verifiedObstacle.positionY:
                        if currentObstacle.positionY < collisionBottomLeftCorner.positionY:
                            collisionBottomLeftCorner = currentObstacle

                    if currentObstacle.positionX >= verifiedObstacle.positionX and currentObstacle.positionY > verifiedObstacle.positionY:
                        if currentObstacle.positionY < collisionBottomRightCorner.positionY:
                            collisionBottomRightCorner = currentObstacle

        return collisionUpperLeftCorner, collisionUpperRightCorner, collisionBottomLeftCorner, collisionBottomRightCorner
Example #3
0
 def test_whenRightObstacleIsTheImportantOne(self):
     collisionUpperLeftCorner = Obstacle((100,0))
     collisionUpperRightCorner = Obstacle((280,70))
     currentObstacle = Obstacle((190,290))
     borderNodeLeftTop = Node((100,100))
     topLeftCorner = (100,200)
     borderNodeRightTop = Node((280,100))
     self.topPathGenerator.generateTopPath(collisionUpperLeftCorner, collisionUpperRightCorner, currentObstacle, borderNodeLeftTop, topLeftCorner, borderNodeRightTop)
     assert self.graph.connectTwoNodes.called
Example #4
0
 def setUp(self):
     self.obstaclesList = [
         Obstacle((120, 120)),
         Obstacle((130, 300)),
         Obstacle((170, 500)),
         Obstacle((335, 200))
     ]
     self.graphGenerator = GraphGenerator(self.obstaclesList, 1000, 600)
     self.graph = self.graphGenerator.generateGraph()
 def setUp(self):
     self.anObstacle = Obstacle((100, 100))
     self.anObstacleWall = Obstacle((50, 50))
     self.anObstacleInner = Obstacle((370, 370))
     self.mapSizeX, self.mapSizeY = 1000, 600
     safeMargin = 90
     obstacleList = [Obstacle((400, 400))]
     self.collisionDetector = CollisionDetector(self.mapSizeX,
                                                self.mapSizeY, safeMargin,
                                                obstacleList)
 def test_whenRightObstacleIsTheImportantOne(self):
     collisionBottomLeftCorner = Obstacle((100, 600))
     collisionBottomRightCorner = Obstacle((280, 500))
     currentObstacle = Obstacle((190, 290))
     borderNodeLeftTop = Node((100, 400))
     topLeftCorner = (100, 380)
     borderNodeRightTop = Node((280, 400))
     self.bottomPathGenerator.generateBottomPath(
         collisionBottomLeftCorner, collisionBottomRightCorner,
         currentObstacle, borderNodeLeftTop, topLeftCorner,
         borderNodeRightTop)
     assert self.graph.connectTwoNodes.called
class ObstacleTest(TestCase):
    A_POINT = (100, 200)
    A_NODE = Node((200, 100))

    def setUp(self):
        self.obstacle = Obstacle(self.A_POINT)

    def test_whenInitialiseThenGoodDataAreSet(self):
        self.assertEqual(self.obstacle.positionX, self.A_POINT[0])
        self.assertEqual(self.obstacle.positionY, self.A_POINT[1])

    def test_setStartingNode(self):
        self.obstacle.setStartingNode(self.A_NODE)
        self.assertEqual(self.obstacle.startingNode, self.A_NODE)
class ObstacleTest(TestCase):
    A_POINT = (100,200)
    A_NODE = Node((200,100))

    def setUp(self):
        self.obstacle = Obstacle(self.A_POINT)

    def test_whenInitialiseThenGoodDataAreSet(self):
        self.assertEqual(self.obstacle.positionX, self.A_POINT[0])
        self.assertEqual(self.obstacle.positionY, self.A_POINT[1])

    def test_setStartingNode(self):
        self.obstacle.setStartingNode(self.A_NODE)
        self.assertEqual(self.obstacle.startingNode, self.A_NODE)
    def setUp(self):
        self.collisionDetector = CollisionDetector(1000, 600, 90,
                                                   [Obstacle((400, 400))])

        self.graph = MagicMock()
        self.bottomPathGenerator = BottomPathGenerator(90, 600, self.graph,
                                                       self.collisionDetector)
    def getMapInfo(self):

        limit = self.map.getMapLimit()
        minCorner = (limit.getMinCorner())
        maxCorner = (limit.getMaxCorner())
        mapSizeX = maxCorner[0] - minCorner[0]
        mapSizeY = maxCorner[1] - minCorner[1]

        obstaclesList = []
        self.map.getShapesList().sort(
            key=lambda shape: shape.findCenterOfMass()[0])
        for compteur in range(0, self.map.getShapesList().__len__()):
            currentShape = self.map.getShapesList()[compteur]

            centerX, centerY = currentShape.findCenterOfMass()
            if centerY > minCorner[1] and centerY < maxCorner[1]:
                if obstaclesList.__len__() > 0:
                    if centerX - minCorner[0] == obstaclesList[compteur -
                                                               1].positionX:
                        centerX += 1
                    elif centerX - minCorner[0] < obstaclesList[compteur -
                                                                1].positionX:
                        centerX += 2
                for compteur in range(0, obstaclesList.__len__()):
                    obstacleY = obstaclesList[compteur]
                    if centerY == obstacleY.positionY:
                        centerY += 1
                obstaclesList.append(
                    Obstacle((centerX - minCorner[0], centerY - minCorner[1])))
        return obstaclesList, mapSizeX, mapSizeY, minCorner
Example #11
0
    def test_whenGetMapInfoIsCalledThenReturnGoodValues(self):
        goodmapSizeX, goodmapSizeY = 900, 800
        goodMinCorner = (100, 100)
        goodObstacle = Obstacle((100, 100))
        obstaclesList, mapSizeX, mapSizeY, minCorner = self.mapAdaptator.getMapInfo(
        )

        self.assertEqual(goodmapSizeX, mapSizeX)
        self.assertEqual(goodmapSizeY, mapSizeY)
        self.assertEqual(goodMinCorner, minCorner)

        self.assertEqual(goodObstacle.positionX, obstaclesList[0].positionX)
        self.assertEqual(goodObstacle.positionY, obstaclesList[0].positionY)
 def setUp(self):
     self.obstacle = Obstacle(self.A_POINT)
 def setUp(self):
     self.obstacle = Obstacle(self.A_POINT)