Move move = moveScope.getMove();
Move undoMove = move.createUndoMove(workingMemory);
moveScope.setUndoMove(undoMove);
move.doMove(workingMemory);
processMove(moveScope);
undoMove.doMove(workingMemory);
if (assertUndoMoveIsUncorrupted) {
Score undoScore = moveScope.getLocalSearchStepScope().getLocalSearchSolverScope().calculateScoreFromWorkingMemory();
Score lastCompletedStepScore = moveScope.getLocalSearchStepScope().getLocalSearchSolverScope()
.getLastCompletedLocalSearchStepScope().getScore();
if (!undoScore.equals(lastCompletedStepScore)) {