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,330 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <assessmentItem toolVersion="0.5.1" toolName="Mathqurate" title="Adaptive - choice of input type"
3
+ timeDependent="false" identifier="Example05-feedbackBlock-adaptive" adaptive="true"
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" xmlns:xi="http://www.w3.org/2001/XInclude"
6
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
7
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
8
+ <responseDeclaration identifier="RESPONSE1" cardinality="single" baseType="identifier"/>
9
+ <responseDeclaration identifier="RESPONSE21" cardinality="single" baseType="identifier">
10
+ <correctResponse>
11
+ <value>OPTION210</value>
12
+ </correctResponse>
13
+ </responseDeclaration>
14
+ <responseDeclaration identifier="RESPONSE22" cardinality="single" baseType="identifier">
15
+ <correctResponse>
16
+ <value>OPTION221</value>
17
+ </correctResponse>
18
+ </responseDeclaration>
19
+ <responseDeclaration identifier="RESPONSE23" cardinality="single" baseType="identifier">
20
+ <correctResponse>
21
+ <value>OPTION231</value>
22
+ </correctResponse>
23
+ </responseDeclaration>
24
+ <responseDeclaration identifier="RESPONSE24" cardinality="single" baseType="identifier">
25
+ <correctResponse>
26
+ <value>OPTION241</value>
27
+ </correctResponse>
28
+ </responseDeclaration>
29
+ <responseDeclaration identifier="RESPONSE25" cardinality="single" baseType="string">
30
+ <correctResponse>
31
+ <value>cooks</value>
32
+ </correctResponse>
33
+ </responseDeclaration>
34
+ <responseDeclaration identifier="RESPONSE26" cardinality="single" baseType="string">
35
+ <correctResponse>
36
+ <value>spoil</value>
37
+ </correctResponse>
38
+ </responseDeclaration>
39
+ <responseDeclaration identifier="RESPONSE27" cardinality="single" baseType="string">
40
+ <correctResponse>
41
+ <value>broth</value>
42
+ </correctResponse>
43
+ </responseDeclaration>
44
+ <outcomeDeclaration baseType="float" cardinality="single" identifier="SCORE"
45
+ normalMaximum="10.0" normalMinimum="0.0">
46
+ <defaultValue>
47
+ <value>0.0</value>
48
+ </defaultValue>
49
+ </outcomeDeclaration>
50
+ <outcomeDeclaration baseType="identifier" cardinality="single" identifier="FEEDBACK"/>
51
+ <outcomeDeclaration baseType="identifier" cardinality="multiple" identifier="BODY">
52
+ <defaultValue>
53
+ <value>part1</value>
54
+ </defaultValue>
55
+ </outcomeDeclaration>
56
+ <itemBody class="">
57
+ <div class="">
58
+ <feedbackBlock id="feedbackBlock0" identifier="part1" outcomeIdentifier="BODY" showHide="show">
59
+ <p>This is the first part of this question: Which of these input methods do you wish to use?</p>
60
+ <choiceInteraction id="choiceInteraction0" maxChoices="1" responseIdentifier="RESPONSE1" shuffle="true">
61
+ <simpleChoice id="simpleChoice0" identifier="OPTION1">Multiple choice </simpleChoice>
62
+ <simpleChoice id="simpleChoice1" identifier="OPTION2">Drop-down menu </simpleChoice>
63
+ <simpleChoice id="simpleChoice2" identifier="OPTION3">Typed input </simpleChoice>
64
+ </choiceInteraction>
65
+ </feedbackBlock>
66
+ <feedbackBlock identifier="part2" outcomeIdentifier="BODY" showHide="show">
67
+ <p>OK, this is the type of input you have chosen. Now please answer this, the second part of the question.</p>
68
+ </feedbackBlock>
69
+ <feedbackBlock identifier="option1" outcomeIdentifier="BODY" showHide="show">
70
+ <p class="">Choose the correct saying:</p>
71
+ <choiceInteraction maxChoices="1" responseIdentifier="RESPONSE21" shuffle="true">
72
+ <simpleChoice identifier="OPTION210">Too many cooks spoil the broth</simpleChoice>
73
+ <simpleChoice identifier="OPTION211">Too many cooks burn the dinner</simpleChoice>
74
+ <simpleChoice identifier="OPTION212">Too many children spill the broth</simpleChoice>
75
+ <simpleChoice identifier="OPTION213">Too many hands spill the beans</simpleChoice>
76
+ <simpleChoice identifier="OPTION214">Too many children spoil the broth</simpleChoice>
77
+ </choiceInteraction>
78
+ </feedbackBlock>
79
+ <feedbackBlock identifier="option2" outcomeIdentifier="BODY" showHide="show">
80
+ <p class="">Complete the saying below by selecting from the lists:</p>
81
+ <p class="">Too many&#160;
82
+ <inlineChoiceInteraction responseIdentifier="RESPONSE22" shuffle="true">
83
+ <inlineChoice identifier="OPTION221">cooks</inlineChoice>
84
+ <inlineChoice identifier="OPTION222">children</inlineChoice>
85
+ <inlineChoice identifier="OPTION223">hands</inlineChoice>
86
+ </inlineChoiceInteraction>&#160;
87
+ <inlineChoiceInteraction responseIdentifier="RESPONSE23" shuffle="true">
88
+ <inlineChoice identifier="OPTION231">spoil</inlineChoice>
89
+ <inlineChoice identifier="OPTION232">spill</inlineChoice>
90
+ <inlineChoice identifier="OPTION233">burn</inlineChoice>
91
+ </inlineChoiceInteraction> the&#160;
92
+ <inlineChoiceInteraction responseIdentifier="RESPONSE24" shuffle="true">
93
+ <inlineChoice identifier="OPTION241">broth</inlineChoice>
94
+ <inlineChoice identifier="OPTION242">dinner</inlineChoice>
95
+ <inlineChoice identifier="OPTION243">beans</inlineChoice>
96
+ </inlineChoiceInteraction>.
97
+ </p>
98
+ </feedbackBlock>
99
+ <feedbackBlock identifier="option3" outcomeIdentifier="BODY" showHide="show">
100
+ <p class="">Complete the saying below:</p>
101
+ <p class="">Too many&#160;
102
+ <textEntryInteraction expectedLength="20" responseIdentifier="RESPONSE25"/>&#160;
103
+ <textEntryInteraction expectedLength="20" responseIdentifier="RESPONSE26"/> the&#160;
104
+ <textEntryInteraction expectedLength="20" responseIdentifier="RESPONSE27"/>.
105
+ </p>
106
+ </feedbackBlock>
107
+ <div class="">
108
+ <feedbackInline id="feedbackInline1" identifier="CORRECT" outcomeIdentifier="FEEDBACK"
109
+ showHide="show"> That's the correct answer. </feedbackInline>
110
+ <feedbackInline id="feedbackInline2" identifier="PARTIAL" outcomeIdentifier="FEEDBACK"
111
+ showHide="show"> Your answer is partially correct; the correct answer is "Too many <b>cooks</b> <b>spoil</b> the <b>broth</b>". </feedbackInline>
112
+ <feedbackInline id="feedbackInline3" identifier="INCORRECT" outcomeIdentifier="FEEDBACK"
113
+ showHide="show"> Sorry, that's not correct; the correct answer is "Too many <b>cooks</b> <b>spoil</b> the <b>broth</b>". </feedbackInline>
114
+ </div>
115
+ </div>
116
+ </itemBody>
117
+ <responseProcessing>
118
+ <responseCondition>
119
+ <responseIf>
120
+ <member>
121
+ <baseValue baseType="identifier">part1</baseValue>
122
+ <variable identifier="BODY"/>
123
+ </member>
124
+ <setOutcomeValue identifier="BODY">
125
+ <multiple>
126
+ <baseValue baseType="identifier">part2</baseValue>
127
+ </multiple>
128
+ </setOutcomeValue>
129
+ <responseCondition>
130
+ <responseIf>
131
+ <match>
132
+ <variable identifier="RESPONSE1"/>
133
+ <baseValue baseType="identifier">OPTION1</baseValue>
134
+ </match>
135
+ <setOutcomeValue identifier="BODY">
136
+ <multiple>
137
+ <variable identifier="BODY"/>
138
+ <baseValue baseType="identifier">option1</baseValue>
139
+ </multiple>
140
+ </setOutcomeValue>
141
+ </responseIf>
142
+ <responseElseIf>
143
+ <match>
144
+ <variable identifier="RESPONSE1"/>
145
+ <baseValue baseType="identifier">OPTION2</baseValue>
146
+ </match>
147
+ <setOutcomeValue identifier="BODY">
148
+ <multiple>
149
+ <variable identifier="BODY"/>
150
+ <baseValue baseType="identifier">option2</baseValue>
151
+ </multiple>
152
+ </setOutcomeValue>
153
+ </responseElseIf>
154
+ <responseElseIf>
155
+ <match>
156
+ <variable identifier="RESPONSE1"/>
157
+ <baseValue baseType="identifier">OPTION3</baseValue>
158
+ </match>
159
+ <setOutcomeValue identifier="BODY">
160
+ <multiple>
161
+ <variable identifier="BODY"/>
162
+ <baseValue baseType="identifier">option3</baseValue>
163
+ </multiple>
164
+ </setOutcomeValue>
165
+ </responseElseIf>
166
+ </responseCondition>
167
+ </responseIf>
168
+ <responseElseIf>
169
+ <member>
170
+ <baseValue baseType="identifier">part2</baseValue>
171
+ <variable identifier="BODY"/>
172
+ </member>
173
+ <responseCondition>
174
+ <responseIf>
175
+ <member>
176
+ <baseValue baseType="identifier">option1</baseValue>
177
+ <variable identifier="BODY"/>
178
+ </member>
179
+ <responseCondition>
180
+ <responseIf>
181
+ <match>
182
+ <variable identifier="RESPONSE21"/>
183
+ <correct identifier="RESPONSE21"/>
184
+ </match>
185
+ <setOutcomeValue identifier="FEEDBACK">
186
+ <baseValue baseType="identifier">CORRECT</baseValue>
187
+ </setOutcomeValue>
188
+ <setOutcomeValue identifier="SCORE">
189
+ <baseValue baseType="float">10.0</baseValue>
190
+ </setOutcomeValue>
191
+ </responseIf>
192
+ <responseElse>
193
+ <setOutcomeValue identifier="FEEDBACK">
194
+ <baseValue baseType="identifier">INCORRECT</baseValue>
195
+ </setOutcomeValue>
196
+ <setOutcomeValue identifier="SCORE">
197
+ <baseValue baseType="float">0.0</baseValue>
198
+ </setOutcomeValue>
199
+ </responseElse>
200
+ </responseCondition>
201
+ </responseIf>
202
+ <responseElseIf>
203
+ <member>
204
+ <baseValue baseType="identifier">option2</baseValue>
205
+ <variable identifier="BODY"/>
206
+ </member>
207
+ <responseCondition>
208
+ <responseIf>
209
+ <and>
210
+ <match>
211
+ <variable identifier="RESPONSE22"/>
212
+ <correct identifier="RESPONSE22"/>
213
+ </match>
214
+ <match>
215
+ <variable identifier="RESPONSE23"/>
216
+ <correct identifier="RESPONSE23"/>
217
+ </match>
218
+ <match>
219
+ <variable identifier="RESPONSE24"/>
220
+ <correct identifier="RESPONSE24"/>
221
+ </match>
222
+ </and>
223
+ <setOutcomeValue identifier="FEEDBACK">
224
+ <baseValue baseType="identifier">CORRECT</baseValue>
225
+ </setOutcomeValue>
226
+ <setOutcomeValue identifier="SCORE">
227
+ <baseValue baseType="float">10.0</baseValue>
228
+ </setOutcomeValue>
229
+ </responseIf>
230
+ <responseElseIf>
231
+ <or>
232
+ <match>
233
+ <variable identifier="RESPONSE22"/>
234
+ <correct identifier="RESPONSE22"/>
235
+ </match>
236
+ <match>
237
+ <variable identifier="RESPONSE23"/>
238
+ <correct identifier="RESPONSE23"/>
239
+ </match>
240
+ <match>
241
+ <variable identifier="RESPONSE24"/>
242
+ <correct identifier="RESPONSE24"/>
243
+ </match>
244
+ </or>
245
+ <setOutcomeValue identifier="FEEDBACK">
246
+ <baseValue baseType="identifier">PARTIAL</baseValue>
247
+ </setOutcomeValue>
248
+ <setOutcomeValue identifier="SCORE">
249
+ <baseValue baseType="float">5.0</baseValue>
250
+ </setOutcomeValue>
251
+ </responseElseIf>
252
+ <responseElse>
253
+ <setOutcomeValue identifier="FEEDBACK">
254
+ <baseValue baseType="identifier">INCORRECT</baseValue>
255
+ </setOutcomeValue>
256
+ <setOutcomeValue identifier="SCORE">
257
+ <baseValue baseType="float">0.0</baseValue>
258
+ </setOutcomeValue>
259
+ </responseElse>
260
+ </responseCondition>
261
+ </responseElseIf>
262
+ <responseElseIf>
263
+ <member>
264
+ <baseValue baseType="identifier">option3</baseValue>
265
+ <variable identifier="BODY"/>
266
+ </member>
267
+ <responseCondition>
268
+ <responseIf>
269
+ <and>
270
+ <match>
271
+ <variable identifier="RESPONSE25"/>
272
+ <correct identifier="RESPONSE25"/>
273
+ </match>
274
+ <match>
275
+ <variable identifier="RESPONSE26"/>
276
+ <correct identifier="RESPONSE26"/>
277
+ </match>
278
+ <match>
279
+ <variable identifier="RESPONSE27"/>
280
+ <correct identifier="RESPONSE27"/>
281
+ </match>
282
+ </and>
283
+ <setOutcomeValue identifier="FEEDBACK">
284
+ <baseValue baseType="identifier">CORRECT</baseValue>
285
+ </setOutcomeValue>
286
+ <setOutcomeValue identifier="SCORE">
287
+ <baseValue baseType="float">10.0</baseValue>
288
+ </setOutcomeValue>
289
+ </responseIf>
290
+ <responseElseIf>
291
+ <or>
292
+ <match>
293
+ <variable identifier="RESPONSE25"/>
294
+ <correct identifier="RESPONSE25"/>
295
+ </match>
296
+ <match>
297
+ <variable identifier="RESPONSE26"/>
298
+ <correct identifier="RESPONSE26"/>
299
+ </match>
300
+ <match>
301
+ <variable identifier="RESPONSE27"/>
302
+ <correct identifier="RESPONSE27"/>
303
+ </match>
304
+ </or>
305
+ <setOutcomeValue identifier="FEEDBACK">
306
+ <baseValue baseType="identifier">PARTIAL</baseValue>
307
+ </setOutcomeValue>
308
+ <setOutcomeValue identifier="SCORE">
309
+ <baseValue baseType="float">5.0</baseValue>
310
+ </setOutcomeValue>
311
+ </responseElseIf>
312
+ <responseElse>
313
+ <setOutcomeValue identifier="FEEDBACK">
314
+ <baseValue baseType="identifier">INCORRECT</baseValue>
315
+ </setOutcomeValue>
316
+ <setOutcomeValue identifier="SCORE">
317
+ <baseValue baseType="float">0.0</baseValue>
318
+ </setOutcomeValue>
319
+ </responseElse>
320
+ </responseCondition>
321
+ </responseElseIf>
322
+ </responseCondition>
323
+ <!-- completionStatus must be specifically set to completed in adaptive questions -->
324
+ <setOutcomeValue identifier="completionStatus">
325
+ <baseValue baseType="identifier">completed</baseValue>
326
+ </setOutcomeValue>
327
+ </responseElseIf>
328
+ </responseCondition>
329
+ </responseProcessing>
330
+ </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>