Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -rf5e6ce9d7ae0454374cec1349c170dbec5cea536 -rc256e3cac813165fce907739b410145e2e809908 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision f5e6ce9d7ae0454374cec1349c170dbec5cea536) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision c256e3cac813165fce907739b410145e2e809908) @@ -675,10 +675,10 @@ pattern = Pattern.compile(regexWithOnlyAsteriskSymbolActive, java.util.regex.Pattern.CASE_INSENSITIVE | java.util.regex.Pattern.UNICODE_CASE); } - boolean isAnswerCorrect = (question.getAnswerString() != null) + boolean isAnswerMatchedCurrentOption = (question.getAnswerString() != null) ? pattern.matcher(question.getAnswerString().trim()).matches() : false; - if (isAnswerCorrect) { + if (isAnswerMatchedCurrentOption) { mark = option.getGrade() * maxMark; questionResult.setSubmittedOptionUid(option.getUid()); break; @@ -689,15 +689,15 @@ String answerString = question.getAnswerString(); if (answerString != null) { for (AssessmentQuestionOption option : question.getOptions()) { - boolean isAnswerCorrect = false; + boolean isAnswerMatchedCurrentOption = false; try { float answerFloat = Float.valueOf(question.getAnswerString()); - isAnswerCorrect = ((answerFloat >= (option.getOptionFloat() - option.getAcceptedError())) + isAnswerMatchedCurrentOption = ((answerFloat >= (option.getOptionFloat() - option.getAcceptedError())) && (answerFloat <= (option.getOptionFloat() + option.getAcceptedError()))); } catch (Exception e) { } - if (!isAnswerCorrect) { + if (!isAnswerMatchedCurrentOption) { for (AssessmentUnit unit : question.getUnits()) { String regex = ".*" + unit.getUnit() + "$"; Pattern pattern = Pattern.compile(regex, @@ -708,18 +708,18 @@ try { float answerFloat = Float.valueOf(answerFloatStr); answerFloat = answerFloat / unit.getMultiplier(); - isAnswerCorrect = ((answerFloat >= (option.getOptionFloat() + isAnswerMatchedCurrentOption = ((answerFloat >= (option.getOptionFloat() - option.getAcceptedError())) && (answerFloat <= (option.getOptionFloat() + option.getAcceptedError()))); - if (isAnswerCorrect) { + if (isAnswerMatchedCurrentOption) { break; } } catch (Exception e) { } } } } - if (isAnswerCorrect) { + if (isAnswerMatchedCurrentOption) { mark = option.getGrade() * maxMark; questionResult.setSubmittedOptionUid(option.getUid()); break; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== diff -u -re10da332d88104fe61b1f646b8bcac22bbfd15f0 -rc256e3cac813165fce907739b410145e2e809908 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision e10da332d88104fe61b1f646b8bcac22bbfd15f0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision c256e3cac813165fce907739b410145e2e809908) @@ -1024,7 +1024,13 @@ //required for showing right/wrong answers icons on results page correctly if (question.getType() == AssessmentConstants.QUESTION_TYPE_SHORT_ANSWER || question.getType() == AssessmentConstants.QUESTION_TYPE_NUMERICAL) { - boolean isAnsweredCorrectly = questionResult.getSubmittedOptionUid() != null; + boolean isAnsweredCorrectly = false; + for (AssessmentQuestionOption option : question.getOptions()) { + if (option.getUid().equals(questionResult.getSubmittedOptionUid())) { + isAnsweredCorrectly = option.getGrade() > 0; + break; + } + } question.setAnswerBoolean(isAnsweredCorrectly); } Index: lams_tool_assessment/web/pages/learning/parts/numerical.jsp =================================================================== diff -u -r18ef25d68d237fc9f934df0ccad74e5cd2b08ae4 -rc256e3cac813165fce907739b410145e2e809908 --- lams_tool_assessment/web/pages/learning/parts/numerical.jsp (.../numerical.jsp) (revision 18ef25d68d237fc9f934df0ccad74e5cd2b08ae4) +++ lams_tool_assessment/web/pages/learning/parts/numerical.jsp (.../numerical.jsp) (revision c256e3cac813165fce907739b410145e2e809908) @@ -9,16 +9,15 @@