use of uk.ac.ed.ph.jqtiplus.value.Value in project OpenOLAT by OpenOLAT.
the class AssessmentRenderFunctionsTest method valueContains_orderedValues.
@Test
public void valueContains_orderedValues() {
Value identifierValues = OrderedValue.createOrderedValue(new IdentifierValue(Identifier.parseString("reference-id")), new IdentifierValue(Identifier.parseString("reference-id")));
Assert.assertTrue(AssessmentRenderFunctions.valueContains(identifierValues, Identifier.parseString("reference-id")));
Assert.assertFalse(AssessmentRenderFunctions.valueContains(identifierValues, Identifier.parseString("noid")));
}
use of uk.ac.ed.ph.jqtiplus.value.Value in project OpenOLAT by OpenOLAT.
the class AssessmentRenderFunctionsTest method valueContains_orderedAlienValues.
@Test
public void valueContains_orderedAlienValues() {
Value identifierValues = OrderedValue.createOrderedValue(new IntegerValue(6), new IntegerValue(7));
Assert.assertFalse(AssessmentRenderFunctions.valueContains(identifierValues, Identifier.parseString("7")));
Assert.assertFalse(AssessmentRenderFunctions.valueContains(identifierValues, Identifier.parseString("noid")));
}
use of uk.ac.ed.ph.jqtiplus.value.Value in project OpenOLAT by OpenOLAT.
the class QtiNodesExtractor method extractIdentifiersFromCorrectResponse.
public static void extractIdentifiersFromCorrectResponse(CorrectResponse correctResponse, List<Identifier> correctAnswers) {
BaseTypeAndCardinality responseDeclaration = correctResponse.getParent();
if (responseDeclaration.hasCardinality(Cardinality.MULTIPLE)) {
Value value = FieldValue.computeValue(Cardinality.MULTIPLE, correctResponse.getFieldValues());
if (value instanceof MultipleValue) {
MultipleValue multiValue = (MultipleValue) value;
for (SingleValue sValue : multiValue.getAll()) {
if (sValue instanceof IdentifierValue) {
IdentifierValue identifierValue = (IdentifierValue) sValue;
Identifier correctAnswer = identifierValue.identifierValue();
correctAnswers.add(correctAnswer);
}
}
}
} else if (responseDeclaration.hasCardinality(Cardinality.SINGLE)) {
Value value = FieldValue.computeValue(Cardinality.SINGLE, correctResponse.getFieldValues());
if (value instanceof IdentifierValue) {
IdentifierValue identifierValue = (IdentifierValue) value;
correctAnswers.add(identifierValue.identifierValue());
}
}
}
use of uk.ac.ed.ph.jqtiplus.value.Value in project OpenOLAT by OpenOLAT.
the class QTI21ServiceImpl method recordOutcomeVariable.
private void recordOutcomeVariable(AssessmentTestSession candidateSession, OutcomeVariable outcomeVariable, Map<Identifier, String> outcomes) {
Identifier identifier = outcomeVariable.getIdentifier();
Value computedValue = outcomeVariable.getComputedValue();
if (QtiConstants.VARIABLE_DURATION_IDENTIFIER.equals(identifier)) {
log.audit(candidateSession.getKey() + " :: " + outcomeVariable.getIdentifier() + " - " + stringifyQtiValue(computedValue));
} else if (QTI21Constants.SCORE_IDENTIFIER.equals(identifier)) {
if (computedValue instanceof NumberValue) {
double score = ((NumberValue) computedValue).doubleValue();
candidateSession.setScore(new BigDecimal(score));
}
} else if (QTI21Constants.PASS_IDENTIFIER.equals(identifier)) {
if (computedValue instanceof BooleanValue) {
boolean pass = ((BooleanValue) computedValue).booleanValue();
candidateSession.setPassed(pass);
}
}
try {
outcomes.put(identifier, stringifyQtiValue(computedValue));
} catch (Exception e) {
log.error("", e);
}
}
use of uk.ac.ed.ph.jqtiplus.value.Value in project OpenOLAT by OpenOLAT.
the class AssessmentItemBuilder method extractMaxScore.
private void extractMaxScore() {
OutcomeDeclaration outcomeDeclaration = assessmentItem.getOutcomeDeclaration(MAXSCORE_IDENTIFIER);
if (outcomeDeclaration != null) {
DefaultValue defaultValue = outcomeDeclaration.getDefaultValue();
if (defaultValue != null) {
Value maxScoreValue = defaultValue.evaluate();
if (maxScoreValue instanceof FloatValue) {
Double maxScore = new Double(((FloatValue) maxScoreValue).doubleValue());
maxScoreBuilder = new ScoreBuilder(maxScore, outcomeDeclaration);
}
}
}
}
Aggregations