[minimark] 2 new revisions pushed by lucio.benfante on 2009-12-20 09:04 GMT

0 views
Skip to first unread message

mini...@googlecode.com

unread,
Dec 20, 2009, 4:05:20 AM12/20/09
to minimark...@googlegroups.com
2 new revisions:

Revision: 12437cda39
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Wed Sep 30 22:39:00 2009
Log: Fixed the alignments with the form (because a change of the size of
fo...
http://code.google.com/p/minimark/source/detail?r=12437cda39

Revision: 8cc378d7ee
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Sun Dec 20 01:03:43 2009
Log: Fixed calculation of weighted marks, and exposing them in the excel
fi...
http://code.google.com/p/minimark/source/detail?r=8cc378d7ee

==============================================================================
Revision: 12437cda39
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Wed Sep 30 22:39:00 2009
Log: Fixed the alignments with the form (because a change of the size of
form labels)
http://code.google.com/p/minimark/source/detail?r=12437cda39

Modified:
/minimark/src/main/webapp/stylesheets/custom.css

=======================================
--- /minimark/src/main/webapp/stylesheets/custom.css Wed Sep 23 09:43:07
2009
+++ /minimark/src/main/webapp/stylesheets/custom.css Wed Sep 30 22:39:00
2009
@@ -339,7 +339,7 @@
.errorBox {
display: block;
color: red;
- margin-left: 10.5em;
+ margin-left: 15.5em;
}

.fieldInError {
@@ -352,7 +352,7 @@
}

div.formButtons {
- margin: 1em 1em 1em 10.5em;
+ margin: 1em 1em 1em 15.5em;
}

#content .calendar-icon {

==============================================================================
Revision: 8cc378d7ee
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Sun Dec 20 01:03:43 2009
Log: Fixed calculation of weighted marks, and exposing them in the excel
file.
http://code.google.com/p/minimark/source/detail?r=8cc378d7ee

Modified:
/minimark/src/main/java/com/benfante/minimark/blo/ExcelResultBuilder.java
/minimark/src/main/java/com/benfante/minimark/blo/ResultCalculationBo.java
/minimark/src/main/java/com/benfante/minimark/po/QuestionFilling.java

/minimark/src/test/java/com/benfante/minimark/blo/ResultCalculationBoTest.java

=======================================
---
/minimark/src/main/java/com/benfante/minimark/blo/ExcelResultBuilder.java
Fri Sep 4 00:37:53 2009
+++
/minimark/src/main/java/com/benfante/minimark/blo/ExcelResultBuilder.java
Sun Dec 20 01:03:43 2009
@@ -232,7 +232,7 @@
List<QuestionFilling> orderedQuestions = new
LinkedList<QuestionFilling>(assessment.getQuestions());
Collections.sort(orderedQuestions, new
QuestionFillingOriginalComparator());
for (QuestionFilling question : orderedQuestions) {
- double mark = question.getMark() != null ? question.getMark().
+ double mark = question.getMarkedWeight() != null ?
question.getMarkedWeight().
doubleValue() : 0.0;
if (question instanceof ClosedQuestionFilling) {
numberCell = new Number(columnNumber, rowNumber, mark,
=======================================
---
/minimark/src/main/java/com/benfante/minimark/blo/ResultCalculationBo.java
Wed Sep 23 09:43:07 2009
+++
/minimark/src/main/java/com/benfante/minimark/blo/ResultCalculationBo.java
Sun Dec 20 01:03:43 2009
@@ -69,8 +69,7 @@
public BigDecimal calculateSimpleSum(AssessmentFilling assessment) {
BigDecimal result = new BigDecimal("0.00");
for (QuestionFilling questionFilling : assessment.getQuestions()) {
- result = addQuestionMarkedWeight(questionFilling, result,
assessment.getAssessment().
- getBlankAnswerWeight());
+ result = addQuestionMarkedWeight(questionFilling, result);
}
return result;
}
@@ -90,8 +89,7 @@
}
BigDecimal result = new BigDecimal("0.00");
for (QuestionFilling questionFilling : assessment.getQuestions()) {
- result = addQuestionMarkedWeight(questionFilling, result,
assessment.getAssessment().
- getBlankAnswerWeight());
+ result = addQuestionMarkedWeight(questionFilling, result);
}
final BigDecimal totalWeight = assessment.getTotalWeight();
if (!BigDecimal.ZERO.equals(totalWeight)) {
@@ -131,20 +129,39 @@
}
}

- private BigDecimal addQuestionMarkedWeight(QuestionFilling
questionFilling,
- BigDecimal result, BigDecimal blankAnswerWeight) {
+ /**
+ * Calculate the weigthed evaluation of a question. It also store this
+ * result in the filled question itself.
+ *
+ * @param questionFilling the question to evaluate.
+ *
+ * @return The weighted evaluation of the question.
+ */
+ public BigDecimal calculateQuestionMarkedWeight(
+ QuestionFilling questionFilling) {
+ BigDecimal result = null;
+ BigDecimal blankAnswerWeight =
questionFilling.getAssessmentFilling().
+ getAssessment().getBlankAnswerWeight();
if (blankAnswerWeight != null && questionFilling.answerIsBlank()) {
- result = result.add(blankAnswerWeight);
+ result = blankAnswerWeight;
} else {
if (questionFilling.getMark() != null) {
// result = result + (mark*weight)
- result =
- result.add(questionFilling.getMark().
- multiply(questionFilling.getWeight()));
+ result = questionFilling.getMark().multiply(
+ questionFilling.getWeight());
+ } else {
+ result = new BigDecimal("0.00");
}
}
+ questionFilling.setMarkedWeight(result);
return result;
}
+
+ private BigDecimal addQuestionMarkedWeight(QuestionFilling
questionFilling,
+ BigDecimal result) {
+ result =
result.add(calculateQuestionMarkedWeight(questionFilling));
+ return result;
+ }

private void evaluateOpenQuestion(OpenQuestionFilling
openQuestionFilling) {
if (openQuestionFilling.getMark() == null) {
@@ -156,8 +173,7 @@
ClosedQuestionFilling closedQuestionFilling, String
evaluationType,
BigDecimal minimumEvaluation) {
BigDecimal result = new BigDecimal("0.00");
- if (evaluationType == null ||
-
Assessment.EVALUATION_CLOSED_SUM_CORRECT_MINUS_WRONG_ANSWERS.
+ if (evaluationType == null ||
Assessment.EVALUATION_CLOSED_SUM_CORRECT_MINUS_WRONG_ANSWERS.
equals(evaluationType)) {
final BigDecimal weightCorrect =
closedQuestionFilling.weightCorrectAnswers();
=======================================
--- /minimark/src/main/java/com/benfante/minimark/po/QuestionFilling.java
Wed Sep 23 09:43:07 2009
+++ /minimark/src/main/java/com/benfante/minimark/po/QuestionFilling.java
Sun Dec 20 01:03:43 2009
@@ -46,6 +46,7 @@
protected String visualization;
private AssessmentFilling assessmentFilling;
private BigDecimal mark;
+ private BigDecimal markedWeight;
private Question originalQuestion;
private Long ordering;

@@ -106,6 +107,14 @@
public void setMark(BigDecimal mark) {
this.mark = mark;
}
+
+ public BigDecimal getMarkedWeight() {
+ return markedWeight;
+ }
+
+ public void setMarkedWeight(BigDecimal markedWeight) {
+ this.markedWeight = markedWeight;
+ }

@ManyToOne
public Question getOriginalQuestion() {
=======================================
---
/minimark/src/test/java/com/benfante/minimark/blo/ResultCalculationBoTest.java
Wed Sep 23 09:43:07 2009
+++
/minimark/src/test/java/com/benfante/minimark/blo/ResultCalculationBoTest.java
Sun Dec 20 01:03:43 2009
@@ -26,6 +26,7 @@
import com.benfante.minimark.po.FixedAnswerFilling;
import com.benfante.minimark.po.OpenQuestionFilling;
import java.math.BigDecimal;
+import java.math.BigInteger;
import java.util.LinkedList;
import java.util.List;
import javax.annotation.Resource;
@@ -303,6 +304,38 @@
assertNotNull(question.getMark());
assertEquals(new BigDecimal("0.00"), question.getMark());
}
+
+ public void
testCalculateWeightOfBlankClosedQuestionWithBlankanswerWeight() {
+ Assessment assessment = new Assessment();
+
assessment.setEvaluationClosedType(Assessment.EVALUATION_CLOSED_SUM_CORRECT_MINUS_WRONG_ANSWERS);
+ assessment.setBlankAnswerWeight(new BigDecimal("0.25"));
+ AssessmentFilling assessmentFilling = new AssessmentFilling();
+ assessmentFilling.setAssessment(assessment);
+ ClosedQuestionFilling question = new ClosedQuestionFilling();
+ question.setAssessmentFilling(assessmentFilling);
+ question.setWeight(BigDecimal.ONE);
+ List<FixedAnswerFilling> fixedAnswers =
+ new LinkedList<FixedAnswerFilling>();
+ FixedAnswerFilling fixedAnswer = new FixedAnswerFilling();
+ fixedAnswer.setWeight(BigDecimal.ONE);
+ fixedAnswer.setCorrect(Boolean.TRUE);
+ fixedAnswer.setSelected(Boolean.FALSE);
+ fixedAnswers.add(fixedAnswer);
+ fixedAnswer = new FixedAnswerFilling();
+ fixedAnswer.setWeight(BigDecimal.ONE);
+ fixedAnswer.setCorrect(Boolean.TRUE);
+ fixedAnswer.setSelected(Boolean.FALSE);
+ fixedAnswers.add(fixedAnswer);
+ fixedAnswer = new FixedAnswerFilling();
+ fixedAnswer.setWeight(BigDecimal.ONE);
+ fixedAnswer.setCorrect(Boolean.FALSE);
+ fixedAnswer.setSelected(Boolean.FALSE);
+ fixedAnswers.add(fixedAnswer);
+ question.setFixedAnswers(fixedAnswers);
+ resultCalculationBo.calculateQuestionMarkedWeight(question);
+ assertNotNull(question.getMarkedWeight());
+ assertEquals(new BigDecimal("0.25"), question.getMarkedWeight());
+ }

public void testEvaluateBlankOpenQuestion() {
Assessment assessment = new Assessment();
@@ -317,6 +350,21 @@
assertNotNull(question.getMark());
assertEquals(new BigDecimal("0.00"), question.getMark());
}
+
+ public void
testCalculateWeightOfBlankOpenQuestionWithBlankAnswerWeight() {
+ Assessment assessment = new Assessment();
+
assessment.setEvaluationClosedType(Assessment.EVALUATION_CLOSED_SUM_CORRECT_MINUS_WRONG_ANSWERS);
+ assessment.setBlankAnswerWeight(new BigDecimal("0.25"));
+ AssessmentFilling assessmentFilling = new AssessmentFilling();
+ assessmentFilling.setAssessment(assessment);
+ OpenQuestionFilling question = new OpenQuestionFilling();
+ question.setAssessmentFilling(assessmentFilling);
+ question.setWeight(BigDecimal.ONE);
+ question.setAnswer(null); // or any blank
+ resultCalculationBo.calculateQuestionMarkedWeight(question);
+ assertNotNull(question.getMarkedWeight());
+ assertEquals(new BigDecimal("0.25"), question.getMarkedWeight());
+ }

public void testEvaluateNotBlankOpenQuestion() {
Assessment assessment = new Assessment();

Reply all
Reply to author
Forward
0 new messages