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))
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
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
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
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)