qti 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +28 -0
  3. data/Rakefile +1 -0
  4. data/lib/qti.rb +62 -0
  5. data/lib/qti/models/base.rb +80 -0
  6. data/lib/qti/models/manifest.rb +20 -0
  7. data/lib/qti/v1/models/assessment.rb +17 -0
  8. data/lib/qti/v1/models/assessment_item.rb +59 -0
  9. data/lib/qti/v1/models/base.rb +13 -0
  10. data/lib/qti/v1/models/choices/logical_identifier_choice.rb +26 -0
  11. data/lib/qti/v1/models/interactions/logical_identifier_interaction.rb +32 -0
  12. data/lib/qti/v2/models/assessment_item.rb +62 -0
  13. data/lib/qti/v2/models/assessment_test.rb +32 -0
  14. data/lib/qti/v2/models/base.rb +70 -0
  15. data/lib/qti/v2/models/choices/simple_choice.rb +28 -0
  16. data/lib/qti/v2/models/interactions.rb +25 -0
  17. data/lib/qti/v2/models/interactions/choice_interaction.rb +50 -0
  18. data/spec/fixtures/items_1.2/multiple_answer.xml +105 -0
  19. data/spec/fixtures/items_1.2/multiple_choice.xml +83 -0
  20. data/spec/fixtures/items_1.2/true_false.xml +50 -0
  21. data/spec/fixtures/items_2.1/Example01-modalFeedback.xml +79 -0
  22. data/spec/fixtures/items_2.1/Example02-feedbackInline.xml +67 -0
  23. data/spec/fixtures/items_2.1/Example03-feedbackBlock-solution-random.xml +223 -0
  24. data/spec/fixtures/items_2.1/Example03-feedbackBlock-solution.xml +238 -0
  25. data/spec/fixtures/items_2.1/Example04-feedbackBlock-templateBlock.xml +582 -0
  26. data/spec/fixtures/items_2.1/Example05-feedbackBlock-adaptive.xml +397 -0
  27. data/spec/fixtures/items_2.1/adaptive.xml +286 -0
  28. data/spec/fixtures/items_2.1/adaptive_template.xml +350 -0
  29. data/spec/fixtures/items_2.1/associate.xml +33 -0
  30. data/spec/fixtures/items_2.1/audio-video.xml +46 -0
  31. data/spec/fixtures/items_2.1/choice.xml +31 -0
  32. data/spec/fixtures/items_2.1/choice_aria.xml +42 -0
  33. data/spec/fixtures/items_2.1/choice_fixed.xml +33 -0
  34. data/spec/fixtures/items_2.1/choice_multiple.xml +31 -0
  35. data/spec/fixtures/items_2.1/choice_multiple_chocolade.xml +74 -0
  36. data/spec/fixtures/items_2.1/choice_multiple_rtl.xml +33 -0
  37. data/spec/fixtures/items_2.1/choice_ruby.xml +39 -0
  38. data/spec/fixtures/items_2.1/choice_t_f.xml +30 -0
  39. data/spec/fixtures/items_2.1/choice_true_false.xml +30 -0
  40. data/spec/fixtures/items_2.1/data-attributes.xml +61 -0
  41. data/spec/fixtures/items_2.1/drawing.xml +16 -0
  42. data/spec/fixtures/items_2.1/essay.xml +14 -0
  43. data/spec/fixtures/items_2.1/extended_text.xml +24 -0
  44. data/spec/fixtures/items_2.1/extended_text_rubric.xml +36 -0
  45. data/spec/fixtures/items_2.1/feedback_adaptive.xml +142 -0
  46. data/spec/fixtures/items_2.1/figures.xml +32 -0
  47. data/spec/fixtures/items_2.1/gap_match.xml +33 -0
  48. data/spec/fixtures/items_2.1/graphic_associate.xml +36 -0
  49. data/spec/fixtures/items_2.1/graphic_gap_match.xml +54 -0
  50. data/spec/fixtures/items_2.1/graphic_gap_match_text.xml +50 -0
  51. data/spec/fixtures/items_2.1/graphic_order.xml +32 -0
  52. data/spec/fixtures/items_2.1/hint.xml +85 -0
  53. data/spec/fixtures/items_2.1/hotspot.xml +26 -0
  54. data/spec/fixtures/items_2.1/hottext.xml +33 -0
  55. data/spec/fixtures/items_2.1/images/CBG.png +0 -0
  56. data/spec/fixtures/items_2.1/images/EBG.png +0 -0
  57. data/spec/fixtures/items_2.1/images/EDI.png +0 -0
  58. data/spec/fixtures/items_2.1/images/GLA.png +0 -0
  59. data/spec/fixtures/items_2.1/images/MAN.png +0 -0
  60. data/spec/fixtures/items_2.1/images/MCH.png +0 -0
  61. data/spec/fixtures/items_2.1/images/airport.png +0 -0
  62. data/spec/fixtures/items_2.1/images/blueStar.png +0 -0
  63. data/spec/fixtures/items_2.1/images/blue_door.png +0 -0
  64. data/spec/fixtures/items_2.1/images/bus.png +0 -0
  65. data/spec/fixtures/items_2.1/images/castle.png +0 -0
  66. data/spec/fixtures/items_2.1/images/greenTriangle.png +0 -0
  67. data/spec/fixtures/items_2.1/images/green_door.png +0 -0
  68. data/spec/fixtures/items_2.1/images/house.png +0 -0
  69. data/spec/fixtures/items_2.1/images/open_car.png +0 -0
  70. data/spec/fixtures/items_2.1/images/open_goat.png +0 -0
  71. data/spec/fixtures/items_2.1/images/plane.png +0 -0
  72. data/spec/fixtures/items_2.1/images/postcard.eps +3581 -0
  73. data/spec/fixtures/items_2.1/images/postcard.png +0 -0
  74. data/spec/fixtures/items_2.1/images/rectangle.svg +1 -0
  75. data/spec/fixtures/items_2.1/images/redCircle.png +0 -0
  76. data/spec/fixtures/items_2.1/images/red_door.png +0 -0
  77. data/spec/fixtures/items_2.1/images/sign.png +0 -0
  78. data/spec/fixtures/items_2.1/images/survey.jpg +0 -0
  79. data/spec/fixtures/items_2.1/images/train.png +0 -0
  80. data/spec/fixtures/items_2.1/images/uk.png +0 -0
  81. data/spec/fixtures/items_2.1/images/ukair.png +0 -0
  82. data/spec/fixtures/items_2.1/images/ukairtags.png +0 -0
  83. data/spec/fixtures/items_2.1/imsmanifest.xml +227 -0
  84. data/spec/fixtures/items_2.1/inline_choice.xml +26 -0
  85. data/spec/fixtures/items_2.1/inline_choice_math.xml +68 -0
  86. data/spec/fixtures/items_2.1/likert.xml +21 -0
  87. data/spec/fixtures/items_2.1/match.xml +41 -0
  88. data/spec/fixtures/items_2.1/math.xml +35 -0
  89. data/spec/fixtures/items_2.1/mc_calc3.xml +164 -0
  90. data/spec/fixtures/items_2.1/mc_calc5.xml +211 -0
  91. data/spec/fixtures/items_2.1/mc_stat2.xml +219 -0
  92. data/spec/fixtures/items_2.1/media_coords.xml +33 -0
  93. data/spec/fixtures/items_2.1/multi-input.xml +271 -0
  94. data/spec/fixtures/items_2.1/nested_object.xml +26 -0
  95. data/spec/fixtures/items_2.1/order.xml +25 -0
  96. data/spec/fixtures/items_2.1/order_partial_scoring.xml +55 -0
  97. data/spec/fixtures/items_2.1/order_rtl.xml +27 -0
  98. data/spec/fixtures/items_2.1/orkney1.xml +34 -0
  99. data/spec/fixtures/items_2.1/orkney2.xml +34 -0
  100. data/spec/fixtures/items_2.1/position_object.xml +34 -0
  101. data/spec/fixtures/items_2.1/select_point.xml +23 -0
  102. data/spec/fixtures/items_2.1/shared/orkney.css +1 -0
  103. data/spec/fixtures/items_2.1/shared/orkney.html +20 -0
  104. data/spec/fixtures/items_2.1/slider.xml +35 -0
  105. data/spec/fixtures/items_2.1/svg.xml +28 -0
  106. data/spec/fixtures/items_2.1/template.xml +88 -0
  107. data/spec/fixtures/items_2.1/template_image.xml +74 -0
  108. data/spec/fixtures/items_2.1/text_entry.xml +27 -0
  109. data/spec/fixtures/items_2.1/upload.xml +18 -0
  110. data/spec/fixtures/items_2.1/upload_composite.xml +24 -0
  111. data/spec/fixtures/test_qti_1.2.zip +0 -0
  112. data/spec/fixtures/test_qti_1.2/contact info.png +0 -0
  113. data/spec/fixtures/test_qti_1.2/exam1/my_files/org0/images/image.png +0 -0
  114. data/spec/fixtures/test_qti_1.2/exam1/my_files/org1/images/image.png +0 -0
  115. data/spec/fixtures/test_qti_1.2/image.png +0 -0
  116. data/spec/fixtures/test_qti_1.2/imsmanifest.xml +37 -0
  117. data/spec/fixtures/test_qti_1.2/quiz.xml +216 -0
  118. data/spec/fixtures/test_qti_2.1.zip +0 -0
  119. data/spec/fixtures/test_qti_2.1/assessment.xml +77 -0
  120. data/spec/fixtures/test_qti_2.1/imsmanifest.xml +211 -0
  121. data/spec/fixtures/test_qti_2.1/mathassess.xsd +54 -0
  122. data/spec/fixtures/test_qti_2.1/multiple-answer/multiple-answer.xml +31 -0
  123. data/spec/fixtures/test_qti_2.1/multiple-choice/multiple-choice.xml +31 -0
  124. data/spec/fixtures/test_qti_2.1/text-entry/text-entry.xml +330 -0
  125. data/spec/fixtures/test_qti_2.1/true-false/true-false.xml +55 -0
  126. data/spec/fixtures/tests/feedbackTest/assessment.xml +252 -0
  127. data/spec/fixtures/tests/feedbackTest/id-38d47747fb30/Example02-feedbackInline.xml +51 -0
  128. data/spec/fixtures/tests/feedbackTest/id-5e216df10030/Example03-feedbackBlock-solution.xml +199 -0
  129. data/spec/fixtures/tests/feedbackTest/id-9c33d141576e/Example05-feedbackBlock-adaptive.xml +330 -0
  130. data/spec/fixtures/tests/feedbackTest/id-aaa0bbf5da1d/Example03-feedbackBlock-solution-random.xml +223 -0
  131. data/spec/fixtures/tests/feedbackTest/id-d599169403d2/Example04-feedbackBlock-templateBlock.xml +534 -0
  132. data/spec/fixtures/tests/feedbackTest/id-fa3ee5852723/Example01-modalFeedback.xml +55 -0
  133. data/spec/fixtures/tests/feedbackTest/imsmanifest.xml +239 -0
  134. data/spec/fixtures/tests/interactionmix_saxony_v3/Choicemultiple_2014410822.xml +110 -0
  135. data/spec/fixtures/tests/interactionmix_saxony_v3/Choicemultiple_871212949.xml +208 -0
  136. data/spec/fixtures/tests/interactionmix_saxony_v3/Choicesingle_853928446.xml +159 -0
  137. data/spec/fixtures/tests/interactionmix_saxony_v3/Choicetruefalse_176040516.xml +98 -0
  138. data/spec/fixtures/tests/interactionmix_saxony_v3/Hotspot_278940407.xml +109 -0
  139. data/spec/fixtures/tests/interactionmix_saxony_v3/Hottext_801974120.xml +106 -0
  140. data/spec/fixtures/tests/interactionmix_saxony_v3/InteractionMixSachsen_1901710679.xml +54 -0
  141. data/spec/fixtures/tests/interactionmix_saxony_v3/Matchmultiple_1038910213.xml +139 -0
  142. data/spec/fixtures/tests/interactionmix_saxony_v3/Matchsingle_143114773.xml +133 -0
  143. data/spec/fixtures/tests/interactionmix_saxony_v3/Order_913967682.xml +117 -0
  144. data/spec/fixtures/tests/interactionmix_saxony_v3/TextEntry_883368511.xml +114 -0
  145. data/spec/fixtures/tests/interactionmix_saxony_v3/TextEntrynumeric_2040297025.xml +154 -0
  146. data/spec/fixtures/tests/interactionmix_saxony_v3/TextEntrynumeric_770468849.xml +124 -0
  147. data/spec/fixtures/tests/interactionmix_saxony_v3/TextEntrysubset_806481421.xml +227 -0
  148. data/spec/fixtures/tests/interactionmix_saxony_v3/imsmanifest.xml +278 -0
  149. data/spec/fixtures/tests/interactionmix_saxony_v3/media/03c5e2f774db49598deb3ac7d05b53f9.jpg +0 -0
  150. data/spec/fixtures/tests/interactionmix_saxony_v3/media/0563e67fb1bb48ad882e0a5abf2a2686.jpg +0 -0
  151. data/spec/fixtures/tests/interactionmix_saxony_v3/media/2f44366716474a5d8e2a2e32346cbc05.jpg +0 -0
  152. data/spec/fixtures/tests/interactionmix_saxony_v3/media/71a299b50b5e4b1492f8ee51ce25be7d.jpg +0 -0
  153. data/spec/fixtures/tests/interactionmix_saxony_v3/media/a439b702d5034ca38f6df26a12835db3.jpg +0 -0
  154. data/spec/fixtures/tests/interactionmix_saxony_v3/media/b660fc9f268c4ef688d8606116c70160.jpg +0 -0
  155. data/spec/fixtures/tests/interactionmix_saxony_v3/media/c2f541343b9b4bfdba9fc90c7a18403e.jpg +0 -0
  156. data/spec/fixtures/tests/interactionmix_saxony_v3/media/e18b5a2eb8104d0994a182ee0176a05c.jpg +0 -0
  157. data/spec/fixtures/tests/interactionmix_saxony_v3/media/f88c5aa2c6724a388fdbadc7133eb757.jpg +0 -0
  158. data/spec/fixtures/tests/interactionmix_saxony_v3/media/ffe337505ef74334a0cecb33310f99c1.jpg +0 -0
  159. data/spec/fixtures/tests/tests/complete.xml +33 -0
  160. data/spec/fixtures/tests/tests/report.xml +70 -0
  161. data/spec/fixtures/tests/tests/rtest01-fragment.xml +12 -0
  162. data/spec/fixtures/tests/tests/rtest01-set01.xml +17 -0
  163. data/spec/fixtures/tests/tests/rtest01-set02.xml +17 -0
  164. data/spec/fixtures/tests/tests/rtest01-set03.xml +17 -0
  165. data/spec/fixtures/tests/tests/rtest01.xml +16 -0
  166. data/spec/fixtures/tests/tests/rtest02.xml +48 -0
  167. data/spec/fixtures/tests/tests/rtest03.xml +38 -0
  168. data/spec/fixtures/tests/tests/rtest04.xml +50 -0
  169. data/spec/fixtures/tests/tests/rtest06.xml +34 -0
  170. data/spec/fixtures/tests/tests/rtest08.xml +38 -0
  171. data/spec/fixtures/tests/tests/rtest09.xml +33 -0
  172. data/spec/fixtures/tests/tests/rtest10.xml +48 -0
  173. data/spec/fixtures/tests/tests/rtest12.xml +38 -0
  174. data/spec/fixtures/tests/tests/rtest13.xml +62 -0
  175. data/spec/fixtures/tests/tests/rtest22.xml +41 -0
  176. data/spec/fixtures/tests/tests/rtest24.xml +37 -0
  177. data/spec/fixtures/tests/tests/rtest25.xml +62 -0
  178. data/spec/fixtures/tests/tests/rtest26.xml +38 -0
  179. data/spec/fixtures/tests/tests/rtest27.xml +46 -0
  180. data/spec/qti/models/base_spec.rb +71 -0
  181. data/spec/qti/models/manifest_spec.rb +19 -0
  182. data/spec/qti/v1/models/assessment_item_spec.rb +49 -0
  183. data/spec/qti/v1/models/assessment_spec.rb +18 -0
  184. data/spec/qti/v1/models/choices/logical_identifier_choice_spec.rb +23 -0
  185. data/spec/qti/v1/models/interactions/logical_identifier_interaction_spec.rb +20 -0
  186. data/spec/qti/v2/models/assessment_item_spec.rb +67 -0
  187. data/spec/qti/v2/models/assessment_test_spec.rb +60 -0
  188. data/spec/qti/v2/models/choices/simple_choice_spec.rb +22 -0
  189. data/spec/qti/v2/models/interactions/choice_interaction_spec.rb +27 -0
  190. data/spec/qti_spec.rb +38 -0
  191. data/spec/spec_helper.rb +10 -0
  192. metadata +506 -0
@@ -0,0 +1,67 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- This item is a true/false question with inline feedback, adapted from the CC question QUE_102010.xml -->
3
+ <assessmentItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd"
5
+ xmlns="http://www.imsglobal.org/xsd/imsqti_v2p2" identifier="Example02-feedbackInline"
6
+ title="Example 2 - inline feedback" adaptive="false" timeDependent="false">
7
+ <responseDeclaration identifier="RESPONSE" cardinality="single" baseType="identifier">
8
+ <correctResponse>
9
+ <value>true</value>
10
+ </correctResponse>
11
+ </responseDeclaration>
12
+
13
+ <!--Define a feedback variable; its baseType is "identifier" so that it can contain the identifier
14
+ of the feedback message-->
15
+
16
+ <outcomeDeclaration identifier="FEEDBACK" cardinality="single" baseType="identifier"/>
17
+ <outcomeDeclaration identifier="SCORE" cardinality="single" baseType="float"
18
+ normalMaximum="10.0">
19
+ <defaultValue>
20
+ <value>0</value>
21
+ </defaultValue>
22
+ </outcomeDeclaration>
23
+ <outcomeDeclaration identifier="MAXSCORE" cardinality="single" baseType="float">
24
+ <defaultValue>
25
+ <value>10.0</value>
26
+ </defaultValue>
27
+ </outcomeDeclaration>
28
+ <itemBody>
29
+
30
+ <!--The response variable RESPONSE will hold the candidate's input-->
31
+
32
+ <choiceInteraction responseIdentifier="RESPONSE" shuffle="false" maxChoices="1">
33
+ <prompt>Sigmund Freud and Carl Jung both belong to the psychoanalytic school of
34
+ psychology.</prompt>
35
+ <simpleChoice identifier="true" fixed="true">True
36
+
37
+ <!--The feedbackInline elements are each given the same identifier as the
38
+ corresponding option.-->
39
+
40
+ <feedbackInline
41
+ outcomeIdentifier="FEEDBACK" identifier="true" showHide="show">That's
42
+ correct</feedbackInline></simpleChoice>
43
+ <simpleChoice identifier="false" fixed="true">False <feedbackInline
44
+ outcomeIdentifier="FEEDBACK" identifier="false" showHide="show">That's not
45
+ correct</feedbackInline></simpleChoice>
46
+ </choiceInteraction>
47
+ </itemBody>
48
+ <responseProcessing>
49
+
50
+ <!--This time, FEEDBACK is given the value of the identifier of the option which was selected.-->
51
+
52
+ <setOutcomeValue identifier="FEEDBACK">
53
+ <variable identifier="RESPONSE"/>
54
+ </setOutcomeValue>
55
+ <responseCondition>
56
+ <responseIf>
57
+ <match>
58
+ <variable identifier="RESPONSE"/>
59
+ <correct identifier="RESPONSE"/>
60
+ </match>
61
+ <setOutcomeValue identifier="SCORE">
62
+ <variable identifier="MAXSCORE"/>
63
+ </setOutcomeValue>
64
+ </responseIf>
65
+ </responseCondition>
66
+ </responseProcessing>
67
+ </assessmentItem>
@@ -0,0 +1,223 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <assessmentItem xmlns="http://www.imsglobal.org/xsd/imsqti_v2p2"
3
+ xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:xi="http://www.w3.org/2001/XInclude"
4
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5
+ adaptive="true" identifier="Example03-feedbackBlock-solution" timeDependent="false"
6
+ title="Example 3 - Using feedbackBlock to show a solution (random)" toolName="Mathqurate" toolVersion="0.9.7b"
7
+ xsi:schemaLocation="http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd">
8
+ <responseDeclaration baseType="float" cardinality="single" identifier="RESPONSE"/>
9
+ <responseDeclaration baseType="boolean" cardinality="single" identifier="SOLREQUEST"/>
10
+ <outcomeDeclaration baseType="identifier" cardinality="multiple" identifier="FEEDBACK"/>
11
+ <outcomeDeclaration baseType="identifier" cardinality="single" identifier="EMPTY"/>
12
+ <outcomeDeclaration baseType="float" cardinality="single" identifier="SCORE" normalMaximum="10.0"
13
+ normalMinimum="0.0">
14
+ <defaultValue>
15
+ <value>0.0</value>
16
+ </defaultValue>
17
+ </outcomeDeclaration>
18
+ <outcomeDeclaration baseType="boolean" cardinality="single" identifier="seenSolution">
19
+ <defaultValue>
20
+ <value>false</value>
21
+ </defaultValue>
22
+ </outcomeDeclaration>
23
+ <outcomeDeclaration baseType="identifier" cardinality="single" identifier="ASKSOLUTION">
24
+ <defaultValue>
25
+ <value>asksolution</value>
26
+ </defaultValue>
27
+ </outcomeDeclaration>
28
+ <templateDeclaration baseType="integer" cardinality="single" identifier="iA" mathVariable="true"
29
+ paramVariable="false"/>
30
+ <templateDeclaration baseType="float" cardinality="single" identifier="fAns" mathVariable="true"
31
+ paramVariable="false"/>
32
+ <templateDeclaration baseType="float" cardinality="single" identifier="fR" mathVariable="true"
33
+ paramVariable="false"/>
34
+ <templateProcessing>
35
+ <setTemplateValue identifier="iA">
36
+ <randomInteger max="4" min="1"/>
37
+ </setTemplateValue>
38
+ <setTemplateValue identifier="fAns">
39
+ <mathOperator name="exp">
40
+ <variable identifier="iA"/>
41
+ </mathOperator>
42
+ </setTemplateValue>
43
+ <setTemplateValue identifier="fR">
44
+ <roundTo figures="3" roundingMode="decimalPlaces">
45
+ <variable identifier="fAns"/>
46
+ </roundTo>
47
+ </setTemplateValue>
48
+ </templateProcessing>
49
+ <itemBody class="">
50
+ <div class="">
51
+ <p class="">Find the value of <m:math id="mathML0">
52
+ <m:semantics>
53
+ <m:mrow>
54
+ <m:msup>
55
+ <m:mn>e</m:mn>
56
+ <m:mi>iA</m:mi>
57
+ </m:msup>
58
+ </m:mrow>
59
+ <m:annotation encoding="LaTeX">\[\e^\qv{iA}\]</m:annotation>
60
+ </m:semantics>
61
+ </m:math> to 3 decimal places.</p>
62
+ <div class="">
63
+ <table class="">
64
+ <tbody class="">
65
+ <tr class="">
66
+ <td class="">
67
+ <textEntryInteraction expectedLength="20" id="textEntryInteraction0"
68
+ label="mathInput" responseIdentifier="RESPONSE"/>
69
+ </td>
70
+ <td class="">
71
+ <feedbackInline id="feedbackInline0" identifier="CORRECT"
72
+ outcomeIdentifier="FEEDBACK" showHide="show"> Correct </feedbackInline>
73
+ <feedbackInline id="feedbackInline1" identifier="INCORRECT"
74
+ outcomeIdentifier="FEEDBACK" showHide="show"> No, that is not
75
+ the correct answer</feedbackInline>
76
+ </td>
77
+ </tr>
78
+ </tbody>
79
+ </table>
80
+ </div>
81
+ <!-- this feedbackBlock contains the solution -->
82
+ <feedbackBlock class="" id="feedbackBlock2" identifier="SOLUTION"
83
+ outcomeIdentifier="FEEDBACK" showHide="show">
84
+ <div class="">
85
+ <m:math display="block" id="mathML1">
86
+ <m:semantics>
87
+ <m:mtable>
88
+ <m:mtr>
89
+ <m:mtd columnalign="right">
90
+ <m:msup>
91
+ <m:mi>e</m:mi>
92
+ <m:mi>iA</m:mi>
93
+ </m:msup>
94
+ </m:mtd>
95
+ <m:mtd columnalign="center">
96
+ <m:mo>=</m:mo>
97
+ </m:mtd>
98
+ <m:mtd columnalign="left">
99
+ <m:mi>exp</m:mi>
100
+ <m:mfenced close=")" open="(">
101
+ <m:mi>iA</m:mi>
102
+ </m:mfenced>
103
+ </m:mtd>
104
+ </m:mtr>
105
+ <m:mtr>
106
+ <m:mtd columnalign="right"/>
107
+ <m:mtd columnalign="center">
108
+ <m:mo>=</m:mo>
109
+ </m:mtd>
110
+ <m:mtd columnalign="left">
111
+ <m:mi>fR</m:mi>
112
+ </m:mtd>
113
+ </m:mtr>
114
+ </m:mtable>
115
+ <m:annotation encoding="SnuggleTeX">\begin{eqnarray*}e^\qv{iA}
116
+ &amp;=&amp; \exp(\qv{iA})\\ &amp;=&amp;
117
+ \qv{fR}\end{eqnarray*}</m:annotation>
118
+ </m:semantics>
119
+ </m:math>
120
+ </div>
121
+ </feedbackBlock>
122
+ <!-- Explain why the score is zero (after viewing solution) -->
123
+ <feedbackBlock id="feedbackBlock4" identifier="SEEN-SOLUTION"
124
+ outcomeIdentifier="FEEDBACK" showHide="show">
125
+ <p> Since you have viewed the solution, your score for this question will be 0. </p>
126
+ </feedbackBlock>
127
+ <!-- show the solution button -->
128
+ <feedbackBlock id="feedbackBlock7" identifier="asksolution"
129
+ outcomeIdentifier="ASKSOLUTION" showHide="show">
130
+ <p>
131
+ <endAttemptInteraction id="endAttemptInteraction2"
132
+ responseIdentifier="SOLREQUEST" title="Show Solution"/>
133
+ </p>
134
+ </feedbackBlock>
135
+ </div>
136
+ </itemBody>
137
+ <responseProcessing>
138
+ <setOutcomeValue identifier="FEEDBACK">
139
+ <multiple>
140
+ <variable identifier="EMPTY"/>
141
+ </multiple>
142
+ </setOutcomeValue>
143
+ <responseCondition>
144
+ <responseIf>
145
+ <variable identifier="SOLREQUEST"/>
146
+ <setOutcomeValue identifier="FEEDBACK">
147
+ <multiple>
148
+ <baseValue baseType="identifier">SOLUTION</baseValue>
149
+ </multiple>
150
+ </setOutcomeValue>
151
+ <setOutcomeValue identifier="seenSolution">
152
+ <baseValue baseType="boolean">true</baseValue>
153
+ </setOutcomeValue>
154
+ <setOutcomeValue identifier="completionStatus">
155
+ <baseValue baseType="identifier">completed</baseValue>
156
+ </setOutcomeValue>
157
+ <setOutcomeValue identifier="ASKSOLUTION">
158
+ <baseValue baseType="identifier">null</baseValue>
159
+ </setOutcomeValue>
160
+ </responseIf>
161
+ <responseElse>
162
+ <responseCondition>
163
+ <responseIf>
164
+ <isNull>
165
+ <variable identifier="RESPONSE"/>
166
+ </isNull>
167
+ <setOutcomeValue identifier="SCORE">
168
+ <baseValue baseType="float">0</baseValue>
169
+ </setOutcomeValue>
170
+ </responseIf>
171
+ <responseElse>
172
+ <responseCondition>
173
+ <responseIf>
174
+ <equalRounded figures="3" roundingMode="decimalPlaces">
175
+ <variable identifier="RESPONSE"/>
176
+ <variable identifier="fAns"/>
177
+ </equalRounded>
178
+ <setOutcomeValue identifier="FEEDBACK">
179
+ <multiple>
180
+ <baseValue baseType="identifier">CORRECT</baseValue>
181
+ </multiple>
182
+ </setOutcomeValue>
183
+ <setOutcomeValue identifier="SCORE">
184
+ <baseValue baseType="float">2</baseValue>
185
+ </setOutcomeValue>
186
+ </responseIf>
187
+ <responseElse>
188
+ <setOutcomeValue identifier="FEEDBACK">
189
+ <multiple>
190
+ <baseValue baseType="identifier">INCORRECT</baseValue>
191
+ </multiple>
192
+ </setOutcomeValue>
193
+ <setOutcomeValue identifier="SCORE">
194
+ <baseValue baseType="float">0</baseValue>
195
+ </setOutcomeValue>
196
+ </responseElse>
197
+ </responseCondition>
198
+ <setOutcomeValue identifier="completionStatus">
199
+ <baseValue baseType="identifier">completed</baseValue>
200
+ </setOutcomeValue>
201
+ <setOutcomeValue identifier="ASKSOLUTION">
202
+ <baseValue baseType="identifier">null</baseValue>
203
+ </setOutcomeValue>
204
+ <responseCondition>
205
+ <responseIf>
206
+ <variable identifier="seenSolution"/>
207
+ <setOutcomeValue identifier="FEEDBACK">
208
+ <multiple>
209
+ <variable identifier="FEEDBACK"/>
210
+ <baseValue baseType="identifier">SEEN-SOLUTION</baseValue>
211
+ </multiple>
212
+ </setOutcomeValue>
213
+ <setOutcomeValue identifier="SCORE">
214
+ <baseValue baseType="float">0.0</baseValue>
215
+ </setOutcomeValue>
216
+ </responseIf>
217
+ </responseCondition>
218
+ </responseElse>
219
+ </responseCondition>
220
+ </responseElse>
221
+ </responseCondition>
222
+ </responseProcessing>
223
+ </assessmentItem>
@@ -0,0 +1,238 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <assessmentItem xmlns="http://www.imsglobal.org/xsd/imsqti_v2p2"
3
+ xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:xi="http://www.w3.org/2001/XInclude"
4
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5
+ adaptive="true" identifier="Example03-feedbackBlock-solution" timeDependent="false"
6
+ title="Example 3 - Using feedbackBlock to show a solution" toolName="Mathqurate" toolVersion="0.9.7b"
7
+ xsi:schemaLocation="http://www.imsglobal.org/xsd/imsqti_v2p2 http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd">
8
+ <responseDeclaration baseType="float" cardinality="single" identifier="RESPONSE">
9
+ <correctResponse>
10
+ <value>7.389</value>
11
+ </correctResponse>
12
+ </responseDeclaration>
13
+
14
+ <!--This response variable is set to true if the solution button is clicked.-->
15
+
16
+ <responseDeclaration baseType="boolean" cardinality="single" identifier="SOLREQUEST"/>
17
+ <outcomeDeclaration baseType="identifier" cardinality="multiple" identifier="FEEDBACK"/>
18
+ <outcomeDeclaration baseType="identifier" cardinality="single" identifier="EMPTY"/>
19
+ <outcomeDeclaration baseType="float" cardinality="single" identifier="SCORE" normalMaximum="10.0"
20
+ normalMinimum="0.0">
21
+ <defaultValue>
22
+ <value>0.0</value>
23
+ </defaultValue>
24
+ </outcomeDeclaration>
25
+
26
+ <!--This outcome variable is set to true if the solution has been viewed.-->
27
+
28
+ <outcomeDeclaration baseType="boolean" cardinality="single" identifier="seenSolution">
29
+ <defaultValue>
30
+ <value>false</value>
31
+ </defaultValue>
32
+ </outcomeDeclaration>
33
+
34
+ <!--This outcome variable controls the display of the solution button.-->
35
+
36
+ <outcomeDeclaration baseType="identifier" cardinality="single" identifier="ASKSOLUTION">
37
+ <defaultValue>
38
+ <value>asksolution</value>
39
+ </defaultValue>
40
+ </outcomeDeclaration>
41
+ <itemBody class="">
42
+ <div class="">
43
+ <p class="">Find the value of <m:math id="mathML0">
44
+ <m:semantics>
45
+ <m:mrow>
46
+ <m:msup>
47
+ <m:mi>e</m:mi>
48
+ <m:mn>2</m:mn>
49
+ </m:msup>
50
+ </m:mrow>
51
+ <m:annotation encoding="LaTeX">\[\e^2\]</m:annotation>
52
+ </m:semantics>
53
+ </m:math> to 3 decimal places.</p>
54
+ <div class="">
55
+ <table class="">
56
+ <tbody class="">
57
+ <tr class="">
58
+ <td class="">
59
+ <textEntryInteraction expectedLength="20" id="textEntryInteraction0"
60
+ label="mathInput" responseIdentifier="RESPONSE"/>
61
+ </td>
62
+ <td class="">
63
+ <feedbackInline id="feedbackInline0" identifier="CORRECT"
64
+ outcomeIdentifier="FEEDBACK" showHide="show"> Correct </feedbackInline>
65
+ <feedbackInline id="feedbackInline1" identifier="INCORRECT"
66
+ outcomeIdentifier="FEEDBACK" showHide="show"> No, that is not
67
+ the correct answer</feedbackInline>
68
+ </td>
69
+ </tr>
70
+ </tbody>
71
+ </table>
72
+ </div>
73
+
74
+ <!-- this feedbackBlock contains the solution -->
75
+
76
+ <feedbackBlock identifier="SOLUTION" outcomeIdentifier="FEEDBACK" showHide="show">
77
+ <div class="">
78
+ <m:math display="block" id="mathML1">
79
+ <m:semantics>
80
+ <m:mtable>
81
+ <m:mtr>
82
+ <m:mtd columnalign="right">
83
+ <m:msup>
84
+ <m:mi>e</m:mi>
85
+ <m:mn>2</m:mn>
86
+ </m:msup>
87
+ </m:mtd>
88
+ <m:mtd columnalign="center">
89
+ <m:mo>=</m:mo>
90
+ </m:mtd>
91
+ <m:mtd columnalign="left">
92
+ <m:mi>exp</m:mi>
93
+ <m:mfenced close=")" open="(">
94
+ <m:mn>2</m:mn>
95
+ </m:mfenced>
96
+ </m:mtd>
97
+ </m:mtr>
98
+ <m:mtr>
99
+ <m:mtd columnalign="right"/>
100
+ <m:mtd columnalign="center">
101
+ <m:mo>=</m:mo>
102
+ </m:mtd>
103
+ <m:mtd columnalign="left">
104
+ <m:mn>7.389</m:mn>
105
+ </m:mtd>
106
+ </m:mtr>
107
+ </m:mtable>
108
+ <m:annotation encoding="SnuggleTeX">\begin{eqnarray*}e^2 &amp;=&amp;
109
+ \exp(2)\\ &amp;=&amp; 7.389\end{eqnarray*}</m:annotation>
110
+ </m:semantics>
111
+ </m:math>
112
+ </div>
113
+ </feedbackBlock>
114
+
115
+ <!-- Explain why the score is zero (after viewing solution) -->
116
+
117
+ <feedbackBlock identifier="SEEN-SOLUTION" outcomeIdentifier="FEEDBACK" showHide="show">
118
+ <p> Since you have viewed the solution, your score for this question will be 0. </p>
119
+ </feedbackBlock>
120
+
121
+ <!-- show the solution button -->
122
+
123
+ <feedbackBlock identifier="asksolution" outcomeIdentifier="ASKSOLUTION" showHide="show">
124
+ <p><endAttemptInteraction responseIdentifier="SOLREQUEST" title="Show Solution"/></p>
125
+ </feedbackBlock>
126
+ </div>
127
+ </itemBody>
128
+ <responseProcessing>
129
+ <setOutcomeValue identifier="FEEDBACK">
130
+ <multiple>
131
+ <variable identifier="EMPTY"/>
132
+ </multiple>
133
+ </setOutcomeValue>
134
+ <responseCondition>
135
+ <responseIf>
136
+ <variable identifier="SOLREQUEST"/>
137
+
138
+ <!--In response processing, the outcome variable FEEDBACK is set to the identifier
139
+ (SOLUTION) of the solution feedbackBlock, so that the solution appears.-->
140
+
141
+ <setOutcomeValue identifier="FEEDBACK">
142
+ <multiple>
143
+ <baseValue baseType="identifier">SOLUTION</baseValue>
144
+ </multiple>
145
+ </setOutcomeValue>
146
+
147
+ <!--The seenSolution flag is set to true so that the message about the score will
148
+ appear if an answer is submitted.-->
149
+
150
+ <setOutcomeValue identifier="seenSolution">
151
+ <baseValue baseType="boolean">true</baseValue>
152
+ </setOutcomeValue>
153
+
154
+ <!--The built-in outcome variable completionStatus is set to completed – this must
155
+ happen at some stage in any adaptive question otherwise the question is never
156
+ complete, which is a problem in tests.-->
157
+
158
+ <setOutcomeValue identifier="completionStatus">
159
+ <baseValue baseType="identifier">completed</baseValue>
160
+ </setOutcomeValue>
161
+
162
+ <!--The solution button is removed by setting the ASKSOLUTION outcome variable to null-->
163
+
164
+ <setOutcomeValue identifier="ASKSOLUTION">
165
+ <baseValue baseType="identifier">null</baseValue>
166
+ </setOutcomeValue>
167
+ </responseIf>
168
+ <responseElse>
169
+ <responseCondition>
170
+ <responseIf>
171
+ <isNull>
172
+ <variable identifier="RESPONSE"/>
173
+ </isNull>
174
+ <setOutcomeValue identifier="SCORE">
175
+ <baseValue baseType="float">0</baseValue>
176
+ </setOutcomeValue>
177
+ </responseIf>
178
+ <responseElse>
179
+ <responseCondition>
180
+ <responseIf>
181
+ <equalRounded figures="3" roundingMode="decimalPlaces">
182
+ <variable identifier="RESPONSE"/>
183
+ <correct identifier="RESPONSE"/>
184
+ </equalRounded>
185
+ <setOutcomeValue identifier="FEEDBACK">
186
+ <multiple>
187
+ <baseValue baseType="identifier">CORRECT</baseValue>
188
+ </multiple>
189
+ </setOutcomeValue>
190
+ <setOutcomeValue identifier="SCORE">
191
+ <baseValue baseType="float">2</baseValue>
192
+ </setOutcomeValue>
193
+ </responseIf>
194
+ <responseElse>
195
+ <setOutcomeValue identifier="FEEDBACK">
196
+ <multiple>
197
+ <baseValue baseType="identifier">INCORRECT</baseValue>
198
+ </multiple>
199
+ </setOutcomeValue>
200
+ <setOutcomeValue identifier="SCORE">
201
+ <baseValue baseType="float">0</baseValue>
202
+ </setOutcomeValue>
203
+ </responseElse>
204
+ </responseCondition>
205
+
206
+ <!--When an answer has been submitted, once again the built-in outcome variable completionStatus
207
+ is set to completed and the solution button is removed.-->
208
+
209
+ <setOutcomeValue identifier="completionStatus">
210
+ <baseValue baseType="identifier">completed</baseValue>
211
+ </setOutcomeValue>
212
+ <setOutcomeValue identifier="ASKSOLUTION">
213
+ <baseValue baseType="identifier">null</baseValue>
214
+ </setOutcomeValue>
215
+ <responseCondition>
216
+ <responseIf>
217
+
218
+ <!--When an answer has been submitted, if the solution has been displayed, the message
219
+ about the score is added to the FEEDBACK, and SCORE is set to 0.0.-->
220
+
221
+ <variable identifier="seenSolution"/>
222
+ <setOutcomeValue identifier="FEEDBACK">
223
+ <multiple>
224
+ <variable identifier="FEEDBACK"/>
225
+ <baseValue baseType="identifier">SEEN-SOLUTION</baseValue>
226
+ </multiple>
227
+ </setOutcomeValue>
228
+ <setOutcomeValue identifier="SCORE">
229
+ <baseValue baseType="float">0.0</baseValue>
230
+ </setOutcomeValue>
231
+ </responseIf>
232
+ </responseCondition>
233
+ </responseElse>
234
+ </responseCondition>
235
+ </responseElse>
236
+ </responseCondition>
237
+ </responseProcessing>
238
+ </assessmentItem>