### Question:
RSSceneMixin implements RSScene { @Inject static void setTargetTile(int targetX, int targetY) { final LocalPoint current = client.getLocalPlayer().getLocalLocation(); final int a = current.getSceneX(); final int b = current.getSceneY(); final int c = targetX; final int d = targetY; final int r = MAX_TARGET_DISTANCE; final int t = (int) Math.hypot(a - c, b - d) - r; int x = targetX; int y = targetY; if (t > 0) { x = (r * c + t * a) / (r + t); y = (r * d + t * b) / (r + t); } client.setSelectedSceneTileX(x); client.setSelectedSceneTileY(y); }  @Copy("addBoundaryDecoration") abstract void addBoundaryDecoration(int plane, int x, int y, int floor, Renderable var5, Renderable var6, int var7, int var8, int var9, int var10, long hash, int var12); @Replace("addBoundaryDecoration") void addBoundaryDecoration(int plane, int x, int y, int floor, Renderable var5, Renderable var6, int var7, int var8, int var9, int var10, long hash, int var12); @Copy("addItemPile") abstract void addItemPile(int plane, int x, int y, int hash, Renderable var5, long var6, Renderable var7, Renderable var8); @Replace("addItemPile") void addItemPile(int plane, int x, int y, int hash, Renderable var5, long var6, Renderable var7, Renderable var8); @Copy("groundObjectSpawned") abstract void groundObjectSpawned(int plane, int x, int y, int floor, Renderable var5, long hash, int var7); @Replace("groundObjectSpawned") void groundObjectSpawned(int plane, int x, int y, int floor, Renderable var5, long hash, int var7); @Copy("addBoundary") abstract void addBoundary(int plane, int x, int y, int floor, Renderable var5, Renderable var6, int var7, int var8, long hash, int var10); @Replace("addBoundary") void addBoundary(int plane, int x, int y, int floor, Renderable var5, Renderable var6, int var7, int var8, long hash, int var10); @Copy("drawTileUnderlay") abstract void drawTileUnderlay(SceneTilePaint tile, int z, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y); @Replace("drawTileUnderlay") void drawTileUnderlay(SceneTilePaint tile, int z, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y); @Copy("drawTileOverlay") abstract void drawTileOverlay(SceneTileModel tile, int pitchSin, int pitchCos, int yawSin, int yawCos, int x, int y); @Replace("drawTileOverlay") void drawTileOverlay(SceneTileModel tile, int pitchSin, int pitchCos, int yawSin, int yawCos, int tileX, int tileY); @Inject @Override int getDrawDistance(); @Inject @Override void setDrawDistance(int drawDistance);  }### Answer:
@Test public void testWalkDistance() { RSClient client = mock(RSClient.class); RSPlayer localPlayer = mock(RSPlayer.class); when(client.getLocalPlayer()).thenReturn(localPlayer); when(localPlayer.getLocalLocation()).thenReturn(new LocalPoint(0, 0)); RSSceneMixin.client = client; RSSceneMixin.setTargetTile(90, 0); verify(client).setSelectedSceneTileX(eq(45)); verify(client).setSelectedSceneTileY(eq(0)); }