protected double calculateSelfPreservationMod(Entity movingUnit, MovePath path, IGame game, StringBuilder formula) { if (getOwner().getFallBack() || movingUnit.isCrippled()) { int newDistanceToHome = distanceToHomeEdge(path.getFinalCoords(), getOwner().getHomeEdge(movingUnit), game); double selfPreservation = getOwner().getBehaviorSettings() .getSelfPreservationValue(); double selfPreservationMod = newDistanceToHome * selfPreservation; formula.append(" - selfPreservationMod [") .append(LOG_DECIMAL.format(selfPreservationMod)) .append(" = ").append(LOG_DECIMAL.format(newDistanceToHome)) .append(" * ") .append(LOG_DECIMAL.format(selfPreservation)).append("]"); return selfPreservationMod; } return 0.0; }
Mockito.when(mockRanker.distanceToHomeEdge(Mockito.any(Coords.class), Mockito.any(CardinalEdge.class), Mockito.any(IGame.class))).thenReturn(0); Mockito.when(mockPrincess.getPathRanker(Mockito.any(Entity.class))).thenReturn(mockRanker); Mockito.when(mockRanker.distanceToHomeEdge(Mockito.any(Coords.class), Mockito.any(CardinalEdge.class), Mockito.any(IGame.class))).thenReturn(1); Assert.assertFalse(mockPrincess.mustFleeBoard(mockMech));
Mockito.doReturn(20) .when(testRanker) .distanceToHomeEdge(Mockito.any(Coords.class), Mockito.any(CardinalEdge.class), Mockito.any(IGame.class)); Mockito.doReturn(12.0) .when(testRanker) Mockito.doReturn(10) .when(testRanker) .distanceToHomeEdge(Mockito.any(Coords.class), Mockito.any(CardinalEdge.class), Mockito.any(IGame.class)); expected = new RankedPath(-201.25, mockPath, "Calculation: " + "{fall mod [" + LOG_DECIMAL.format(0) + " = " + LOG_DECIMAL .distanceToHomeEdge(Mockito.any(Coords.class), Mockito.any(CardinalEdge.class), Mockito.any(IGame.class)); expected = new RankedPath(-501.25, mockPath, "Calculation: " + "{fall mod [" + LOG_DECIMAL.format(0) + " = " + LOG_DECIMAL .distanceToHomeEdge(Mockito.nullable(Coords.class), Mockito.any(CardinalEdge.class), Mockito.any(IGame.class)); Mockito.when(mockPrincess.wantsToFallBack(Mockito.eq(mockMover))).thenReturn(false); Mockito.when(mockMover.isCrippled()).thenReturn(false);