Skip to content

Commit

Permalink
release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
Marcelh1983 committed Feb 9, 2024
1 parent ad9d3bd commit c67abcb
Show file tree
Hide file tree
Showing 8 changed files with 358 additions and 46 deletions.
113 changes: 113 additions & 0 deletions Scoring.Tests/Resources/30/ResponseProcessing/sum_item.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
<?xml version='1.0' encoding='utf-8'?>
<qti-assessment-item xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://www.imsglobal.org/xsd/imsqtiasi_v3p0 https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_asiv3p0_v1p0.xsd
http://www.w3.org/1998/Math/MathML https://purl.imsglobal.org/spec/mathml/v3p0/schema/xsd/mathml3.xsd
http://www.w3.org/2001/10/synthesis https://purl.imsglobal.org/spec/ssml/v1p1/schema/xsd/ssmlv1p1-core.xsd'
title='Rd519450N' time-dependent='false' adaptive='false'
identifier='_sum' label='Rd519450N'
xmlns='http://www.imsglobal.org/xsd/imsqtiasi_v3p0'>
<qti-response-declaration identifier='RESPONSE_1' cardinality='single' base-type='identifier'>
<qti-correct-response interpretation='IC1_D&amp;IC2_C&amp;IC3_A&amp;IC4_B'>
<qti-value>IC1_D</qti-value>
</qti-correct-response>
</qti-response-declaration>
<qti-response-declaration identifier='RESPONSE_2' cardinality='single' base-type='identifier'>
<qti-correct-response>
<qti-value>IC2_C</qti-value>
</qti-correct-response>
</qti-response-declaration>
<qti-response-declaration identifier='RESPONSE_3' cardinality='single' base-type='identifier'>
<qti-correct-response>
<qti-value>IC3_A</qti-value>
</qti-correct-response>
</qti-response-declaration>
<qti-response-declaration identifier='RESPONSE_4' cardinality='single' base-type='identifier'>
<qti-correct-response>
<qti-value>IC4_B</qti-value>
</qti-correct-response>
</qti-response-declaration>
<qti-outcome-declaration identifier='RAWSCORE_RESPONSE1' cardinality='single' base-type='float' />
<qti-outcome-declaration identifier='RAWSCORE_RESPONSE2' cardinality='single' base-type='float' />
<qti-outcome-declaration identifier='RAWSCORE_RESPONSE3' cardinality='single' base-type='float' />
<qti-outcome-declaration identifier='RAWSCORE_RESPONSE4' cardinality='single' base-type='float' />
<qti-outcome-declaration identifier='SCORE' cardinality='single' base-type='float'>
<qti-interpolation-table>
<qti-interpolation-table-entry target-value='1' source-value='4' />
<qti-interpolation-table-entry target-value='0' source-value='3' />
<qti-interpolation-table-entry target-value='0' source-value='2' />
<qti-interpolation-table-entry target-value='0' source-value='1' />
<qti-interpolation-table-entry target-value='0' source-value='0' />
</qti-interpolation-table>
</qti-outcome-declaration>
<qti-outcome-declaration identifier='MAXSCORE' cardinality='single' base-type='float'>
<qti-default-value>
<qti-value>4</qti-value>
</qti-default-value>
</qti-outcome-declaration>
<qti-response-processing>
<qti-response-condition>
<qti-response-if>
<qti-member>
<qti-base-value base-type='identifier'>IC1_D</qti-base-value>
<qti-variable identifier='RESPONSE_1' />
</qti-member>
<qti-set-outcome-value identifier='RAWSCORE_RESPONSE1'>
<qti-sum>
<qti-variable identifier='RAWSCORE_RESPONSE1' />
<qti-base-value base-type='float'>1</qti-base-value>
</qti-sum>
</qti-set-outcome-value>
</qti-response-if>
</qti-response-condition>
<qti-response-condition>
<qti-response-if>
<qti-member>
<qti-base-value base-type='identifier'>IC2_C</qti-base-value>
<qti-variable identifier='RESPONSE_2' />
</qti-member>
<qti-set-outcome-value identifier='RAWSCORE_RESPONSE2'>
<qti-sum>
<qti-variable identifier='RAWSCORE_RESPONSE2' />
<qti-base-value base-type='float'>1</qti-base-value>
</qti-sum>
</qti-set-outcome-value>
</qti-response-if>
</qti-response-condition>
<qti-response-condition>
<qti-response-if>
<qti-member>
<qti-base-value base-type='identifier'>IC3_A</qti-base-value>
<qti-variable identifier='RESPONSE_3' />
</qti-member>
<qti-set-outcome-value identifier='RAWSCORE_RESPONSE3'>
<qti-sum>
<qti-variable identifier='RAWSCORE_RESPONSE3' />
<qti-base-value base-type='float'>1</qti-base-value>
</qti-sum>
</qti-set-outcome-value>
</qti-response-if>
</qti-response-condition>
<qti-response-condition>
<qti-response-if>
<qti-member>
<qti-base-value base-type='identifier'>IC4_B</qti-base-value>
<qti-variable identifier='RESPONSE_4' />
</qti-member>
<qti-set-outcome-value identifier='RAWSCORE_RESPONSE4'>
<qti-sum>
<qti-variable identifier='RAWSCORE_RESPONSE4' />
<qti-base-value base-type='float'>1</qti-base-value>
</qti-sum>
</qti-set-outcome-value>
</qti-response-if>
</qti-response-condition>
<qti-lookup-outcome-value identifier='SCORE'>
<qti-sum>
<qti-variable identifier='RAWSCORE_RESPONSE1' />
<qti-variable identifier='RAWSCORE_RESPONSE2' />
<qti-variable identifier='RAWSCORE_RESPONSE3' />
<qti-variable identifier='RAWSCORE_RESPONSE4' />
</qti-sum>
</qti-lookup-outcome-value>
</qti-response-processing>
</qti-assessment-item>
74 changes: 74 additions & 0 deletions Scoring.Tests/Resources/30/ResponseProcessing/sum_result.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<assessmentResult xmlns="http://www.imsglobal.org/xsd/imsqti_result_v3p0">
<context sourcedId="CANDIDATE-123">
<sessionIdentifier sourceID="QADE.player"
identifier="SESSION-018d84c7-f264-7682-a78b-be9838c777be" />
<sessionIdentifier sourceID="afnameId"
identifier="SESSION-61962804-9860-46c3-88a9-35246f49d8bf" />
<sessionIdentifier sourceID="ketenId" identifier="SESSION-PLATFORM-CITOCTE-DOEDST" />
</context>
<testResult xmlns="http://www.imsglobal.org/xsd/imsqti_result_v3p0"
identifier="_123"
datestamp="2024-02-07T18:28:40.121131379Z">
<outcomeVariable identifier="SCORE" cardinality="single" baseType="integer">
<value>36</value>
</outcomeVariable>
<outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
<value>231</value>
</outcomeVariable>
</testResult>
<itemResult xmlns="http://www.imsglobal.org/xsd/imsqti_result_v3p0"
identifier="_sum" sessionStatus="final"
datestamp="2024-02-07T18:25:11.965522443Z" sequenceIndex="61">
<responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
<candidateResponse>
<value>1</value>
</candidateResponse>
</responseVariable>
<outcomeVariable identifier="RAWSCORE_RESPONSE2" cardinality="single" baseType="float">
<value>1</value>
</outcomeVariable>
<outcomeVariable identifier="RAWSCORE_RESPONSE3" cardinality="single" baseType="float">
<value>1</value>
</outcomeVariable>
<outcomeVariable identifier="RAWSCORE_RESPONSE4" cardinality="single" baseType="float">
<value>1</value>
</outcomeVariable>
<outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
<value>1</value>
</outcomeVariable>
<outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
<value>4</value>
</outcomeVariable>
<outcomeVariable identifier="RAWSCORE_RESPONSE1" cardinality="single" baseType="float">
<value>1</value>
</outcomeVariable>
<responseVariable identifier="duration" cardinality="single" baseType="float">
<candidateResponse>
<value>132.387</value>
</candidateResponse>
</responseVariable>
<responseVariable identifier="RESPONSE_3" cardinality="single" baseType="identifier">
<candidateResponse>
<value>IC3_A</value>
</candidateResponse>
</responseVariable>
<responseVariable identifier="RESPONSE_2" cardinality="single" baseType="identifier">
<candidateResponse>
<value>IC2_C</value>
</candidateResponse>
</responseVariable>
<responseVariable identifier="RESPONSE_4" cardinality="single" baseType="identifier">
<candidateResponse>
<value>IC4_B</value>
</candidateResponse>
</responseVariable>
<outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
<value>completed</value>
</outcomeVariable>
<responseVariable identifier="RESPONSE_1" cardinality="single" baseType="identifier">
<candidateResponse>
<value>IC1_D</value>
</candidateResponse>
</responseVariable>
</itemResult>
</assessmentResult>
68 changes: 68 additions & 0 deletions Scoring.Tests/Resources/30/ResponseProcessing/sum_result_2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<assessmentResult xmlns="http://www.imsglobal.org/xsd/imsqti_result_v3p0">
<context sourcedId="CANDIDATE-123">
<sessionIdentifier sourceID="QADE.player" identifier="SESSION-018d8514-24b9-7cef-b1e4-b36a618aea4b"/>
<sessionIdentifier sourceID="afnameId" identifier="SESSION-3ba439f3-1b2d-4388-a694-a4778f9f0d06"/>
<sessionIdentifier sourceID="ketenId" identifier="SESSION-PLATFORM-CITOCTE-DOEDST"/>
</context>
<testResult xmlns="http://www.imsglobal.org/xsd/imsqti_result_v3p0" identifier="_8c1512a5-95f0-422e-a4b8-5a399f424606" datestamp="2024-02-07T19:48:38.446775073Z">
<outcomeVariable identifier="SCORE" cardinality="single" baseType="integer">
<value>34</value>
</outcomeVariable>
<outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
<value>231</value>
</outcomeVariable>
</testResult>
<itemResult xmlns="http://www.imsglobal.org/xsd/imsqti_result_v3p0" identifier="_sum" sessionStatus="final" datestamp="2024-02-07T19:45:19.237043072Z" sequenceIndex="61">
<responseVariable identifier="numAttempts" cardinality="single" baseType="integer">
<candidateResponse>
<value>2</value>
</candidateResponse>
</responseVariable>
<outcomeVariable identifier="RAWSCORE_RESPONSE2" cardinality="single" baseType="float">
<value>1</value>
</outcomeVariable>
<outcomeVariable identifier="RAWSCORE_RESPONSE3" cardinality="single" baseType="float">
<value>0</value>
</outcomeVariable>
<outcomeVariable identifier="RAWSCORE_RESPONSE4" cardinality="single" baseType="float">
<value>0</value>
</outcomeVariable>
<outcomeVariable identifier="SCORE" cardinality="single" baseType="float">
<value>2</value>
</outcomeVariable>
<outcomeVariable identifier="MAXSCORE" cardinality="single" baseType="float">
<value>4</value>
</outcomeVariable>
<outcomeVariable identifier="RAWSCORE_RESPONSE1" cardinality="single" baseType="float">
<value>1</value>
</outcomeVariable>
<responseVariable identifier="duration" cardinality="single" baseType="float">
<candidateResponse>
<value>197.048</value>
</candidateResponse>
</responseVariable>
<responseVariable identifier="RESPONSE_3" cardinality="single" baseType="identifier">
<candidateResponse>
<value>IC3_B</value>
</candidateResponse>
</responseVariable>
<responseVariable identifier="RESPONSE_2" cardinality="single" baseType="identifier">
<candidateResponse>
<value>IC2_C</value>
</candidateResponse>
</responseVariable>
<responseVariable identifier="RESPONSE_4" cardinality="single" baseType="identifier">
<candidateResponse>
<value>IC4_A</value>
</candidateResponse>
</responseVariable>
<outcomeVariable identifier="completionStatus" cardinality="single" baseType="identifier">
<value>completed</value>
</outcomeVariable>
<responseVariable identifier="RESPONSE_1" cardinality="single" baseType="identifier">
<candidateResponse>
<value>IC1_D</value>
</candidateResponse>
</responseVariable>
</itemResult>
</assessmentResult>
58 changes: 58 additions & 0 deletions Scoring.Tests/ResponseProcessingTests/GeneralTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,64 @@ public void ResponseProcessing_DOE_gapMatch_fout()
Assert.Equal("0", rawScore);
}

[Fact]
public void ResponseProcessing_DOE_sum_all_correct()
{
var mockLogger = new Mock<ILogger>();

var assessmentResult = new AssessmentResult(mockLogger.Object, XDocument.Load(File.OpenRead("Resources/30/ResponseProcessing/sum_result.xml")));
var assessmentItem = new AssessmentItem(mockLogger.Object, XDocument.Load(File.OpenRead("Resources/30/ResponseProcessing/sum_item.xml")), TestHelper.GetExpressionFactory());

ResponseProcessor.Process(assessmentItem, assessmentResult, mockLogger.Object);

var scoreValue = assessmentResult.GetScoreForItem("_sum", "SCORE");
Assert.Equal("1", scoreValue);
}
[Fact]
public void ResponseProcessing_DOE_sum_3_correct()
{
var mockLogger = new Mock<ILogger>();

var assessmentResult = new AssessmentResult(mockLogger.Object, XDocument.Load(File.OpenRead("Resources/30/ResponseProcessing/sum_result.xml")));
var assessmentItem = new AssessmentItem(mockLogger.Object, XDocument.Load(File.OpenRead("Resources/30/ResponseProcessing/sum_item.xml")), TestHelper.GetExpressionFactory());

assessmentResult.ChangeResponse("_sum", "RESPONSE_1", "fout");

ResponseProcessor.Process(assessmentItem, assessmentResult, mockLogger.Object);

var scoreValue = assessmentResult.GetScoreForItem("_sum", "SCORE");
Assert.Equal("0", scoreValue);
}
[Fact]
public void ResponseProcessing_DOE_sum_2_correct_different_result_file()
{
var mockLogger = new Mock<ILogger>();

var assessmentResult = new AssessmentResult(mockLogger.Object, XDocument.Load(File.OpenRead("Resources/30/ResponseProcessing/sum_result_2.xml")));
var assessmentItem = new AssessmentItem(mockLogger.Object, XDocument.Load(File.OpenRead("Resources/30/ResponseProcessing/sum_item.xml")), TestHelper.GetExpressionFactory());

ResponseProcessor.Process(assessmentItem, assessmentResult, mockLogger.Object);

var scoreValue = assessmentResult.GetScoreForItem("_sum", "SCORE");
Assert.Equal("0", scoreValue);
}
[Fact]
public void ResponseProcessing_DOE_sum_0_correct()
{
var mockLogger = new Mock<ILogger>();

var assessmentResult = new AssessmentResult(mockLogger.Object, XDocument.Load(File.OpenRead("Resources/30/ResponseProcessing/sum_result.xml")));
var assessmentItem = new AssessmentItem(mockLogger.Object, XDocument.Load(File.OpenRead("Resources/30/ResponseProcessing/sum_item.xml")), TestHelper.GetExpressionFactory());
assessmentResult.ChangeResponse("_sum", "RESPONSE_1", "fout");
assessmentResult.ChangeResponse("_sum", "RESPONSE_2", "fout");
assessmentResult.ChangeResponse("_sum", "RESPONSE_3", "fout");
assessmentResult.ChangeResponse("_sum", "RESPONSE_4", "fout");
ResponseProcessor.Process(assessmentItem, assessmentResult, mockLogger.Object);

var scoreValue = assessmentResult.GetScoreForItem("_sum", "SCORE");
Assert.Equal("0", scoreValue);
}

[Fact]
public void ResponseProcessing_DOE_numeric_correct()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public void IMS_ExampleMatchInteractionResponseProcessing_Incorrect()
var assessmentResult = TestHelper.GetBasicAssessmentResult();
assessmentResult.AddCandidateResponses
(assessmentItem.Identifier, "RESPONSE", new List<string>{
"R C",
"P R",
"D M",
"L M",
"P T"
Expand Down
Loading

0 comments on commit c67abcb

Please sign in to comment.