Search in sources :

Example 1 with OutcomeProcessing

use of uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing in project OpenOLAT by OpenOLAT.

the class AssessmentTestBuilder method build.

public AssessmentTest build() {
    if (!editable) {
        return assessmentTest;
    }
    if (assessmentTest.getOutcomeProcessing() == null) {
        assessmentTest.setOutcomeProcessing(new OutcomeProcessing(assessmentTest));
    }
    if (maximumTimeLimits != null) {
        TimeLimits timeLimits = new TimeLimits(assessmentTest);
        timeLimits.setMaximum(maximumTimeLimits.doubleValue());
        assessmentTest.setTimeLimits(timeLimits);
    } else {
        assessmentTest.setTimeLimits(null);
    }
    buildScore();
    buildTestScore();
    buildCutValue();
    buildFeedback();
    // clean up
    if (assessmentTest.getOutcomeProcessing().getOutcomeRules().isEmpty()) {
        assessmentTest.setOutcomeProcessing(null);
    }
    return assessmentTest;
}
Also used : OutcomeProcessing(uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing) TimeLimits(uk.ac.ed.ph.jqtiplus.node.test.TimeLimits)

Example 2 with OutcomeProcessing

use of uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing in project OpenOLAT by OpenOLAT.

the class AssessmentTestFactory method createAssessmentTest.

/**
 * Create an assessmentTest object but without items
 *
 * @param title
 * @return
 */
public static AssessmentTest createAssessmentTest(String title, String sectionTitle) {
    AssessmentTest assessmentTest = new AssessmentTest();
    assessmentTest.setIdentifier(IdentifierGenerator.newAsString("test"));
    assessmentTest.setTitle(title);
    assessmentTest.setToolName(QTI21Constants.TOOLNAME);
    assessmentTest.setToolVersion(Settings.getVersion());
    // outcome score
    OutcomeDeclaration scoreOutcomeDeclaration = new OutcomeDeclaration(assessmentTest);
    scoreOutcomeDeclaration.setIdentifier(QTI21Constants.SCORE_IDENTIFIER);
    scoreOutcomeDeclaration.setCardinality(Cardinality.SINGLE);
    scoreOutcomeDeclaration.setBaseType(BaseType.FLOAT);
    assessmentTest.getOutcomeDeclarations().add(scoreOutcomeDeclaration);
    // test part
    TestPart part = createTestPart(assessmentTest);
    appendAssessmentSection(sectionTitle, part);
    // outcome processing
    OutcomeProcessing outcomeProcessing = new OutcomeProcessing(assessmentTest);
    assessmentTest.setOutcomeProcessing(outcomeProcessing);
    SetOutcomeValue outcomeRule = new SetOutcomeValue(outcomeProcessing);
    outcomeRule.setIdentifier(QTI21Constants.SCORE_IDENTIFIER);
    Sum sum = new Sum(outcomeRule);
    outcomeRule.getExpressions().add(sum);
    TestVariables testVariables = new TestVariables(sum);
    testVariables.setVariableIdentifier(QTI21Constants.SCORE_IDENTIFIER);
    sum.getExpressions().add(testVariables);
    outcomeProcessing.getOutcomeRules().add(outcomeRule);
    return assessmentTest;
}
Also used : AssessmentTest(uk.ac.ed.ph.jqtiplus.node.test.AssessmentTest) SetOutcomeValue(uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.SetOutcomeValue) OutcomeProcessing(uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing) TestPart(uk.ac.ed.ph.jqtiplus.node.test.TestPart) Sum(uk.ac.ed.ph.jqtiplus.node.expression.operator.Sum) TestVariables(uk.ac.ed.ph.jqtiplus.node.expression.outcome.TestVariables) OutcomeDeclaration(uk.ac.ed.ph.jqtiplus.node.outcome.declaration.OutcomeDeclaration)

Example 3 with OutcomeProcessing

use of uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing in project openolat by klemens.

the class AssessmentTestFactory method createAssessmentTest.

/**
 * Create an assessmentTest object but without items
 *
 * @param title
 * @return
 */
public static AssessmentTest createAssessmentTest(String title, String sectionTitle) {
    AssessmentTest assessmentTest = new AssessmentTest();
    assessmentTest.setIdentifier(IdentifierGenerator.newAsString("test"));
    assessmentTest.setTitle(title);
    assessmentTest.setToolName(QTI21Constants.TOOLNAME);
    assessmentTest.setToolVersion(Settings.getVersion());
    // outcome score
    OutcomeDeclaration scoreOutcomeDeclaration = new OutcomeDeclaration(assessmentTest);
    scoreOutcomeDeclaration.setIdentifier(QTI21Constants.SCORE_IDENTIFIER);
    scoreOutcomeDeclaration.setCardinality(Cardinality.SINGLE);
    scoreOutcomeDeclaration.setBaseType(BaseType.FLOAT);
    assessmentTest.getOutcomeDeclarations().add(scoreOutcomeDeclaration);
    // test part
    TestPart part = createTestPart(assessmentTest);
    appendAssessmentSection(sectionTitle, part);
    // outcome processing
    OutcomeProcessing outcomeProcessing = new OutcomeProcessing(assessmentTest);
    assessmentTest.setOutcomeProcessing(outcomeProcessing);
    SetOutcomeValue outcomeRule = new SetOutcomeValue(outcomeProcessing);
    outcomeRule.setIdentifier(QTI21Constants.SCORE_IDENTIFIER);
    Sum sum = new Sum(outcomeRule);
    outcomeRule.getExpressions().add(sum);
    TestVariables testVariables = new TestVariables(sum);
    testVariables.setVariableIdentifier(QTI21Constants.SCORE_IDENTIFIER);
    sum.getExpressions().add(testVariables);
    outcomeProcessing.getOutcomeRules().add(outcomeRule);
    return assessmentTest;
}
Also used : AssessmentTest(uk.ac.ed.ph.jqtiplus.node.test.AssessmentTest) SetOutcomeValue(uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.SetOutcomeValue) OutcomeProcessing(uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing) TestPart(uk.ac.ed.ph.jqtiplus.node.test.TestPart) Sum(uk.ac.ed.ph.jqtiplus.node.expression.operator.Sum) TestVariables(uk.ac.ed.ph.jqtiplus.node.expression.outcome.TestVariables) OutcomeDeclaration(uk.ac.ed.ph.jqtiplus.node.outcome.declaration.OutcomeDeclaration)

Example 4 with OutcomeProcessing

use of uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing in project openolat by klemens.

the class AssessmentTestBuilder method build.

public AssessmentTest build() {
    if (!editable) {
        return assessmentTest;
    }
    if (assessmentTest.getOutcomeProcessing() == null) {
        assessmentTest.setOutcomeProcessing(new OutcomeProcessing(assessmentTest));
    }
    if (maximumTimeLimits != null) {
        TimeLimits timeLimits = new TimeLimits(assessmentTest);
        timeLimits.setMaximum(maximumTimeLimits.doubleValue());
        assessmentTest.setTimeLimits(timeLimits);
    } else {
        assessmentTest.setTimeLimits(null);
    }
    buildScore();
    buildTestScore();
    buildCutValue();
    buildFeedback();
    // clean up
    if (assessmentTest.getOutcomeProcessing().getOutcomeRules().isEmpty()) {
        assessmentTest.setOutcomeProcessing(null);
    }
    return assessmentTest;
}
Also used : OutcomeProcessing(uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing) TimeLimits(uk.ac.ed.ph.jqtiplus.node.test.TimeLimits)

Aggregations

OutcomeProcessing (uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.OutcomeProcessing)4 Sum (uk.ac.ed.ph.jqtiplus.node.expression.operator.Sum)2 TestVariables (uk.ac.ed.ph.jqtiplus.node.expression.outcome.TestVariables)2 OutcomeDeclaration (uk.ac.ed.ph.jqtiplus.node.outcome.declaration.OutcomeDeclaration)2 AssessmentTest (uk.ac.ed.ph.jqtiplus.node.test.AssessmentTest)2 TestPart (uk.ac.ed.ph.jqtiplus.node.test.TestPart)2 TimeLimits (uk.ac.ed.ph.jqtiplus.node.test.TimeLimits)2 SetOutcomeValue (uk.ac.ed.ph.jqtiplus.node.test.outcome.processing.SetOutcomeValue)2