@intellectif/lk-core 1.12.0 → 1.14.0

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 (79) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/dist/ai-check.cjs +2 -2
  4. package/dist/ai-check.d.cts +1 -1
  5. package/dist/ai-check.d.ts +1 -1
  6. package/dist/ai-check.js +2 -2
  7. package/dist/{ai-Cu17iVHa.d.cts → ai-mC-5XhBc.d.cts} +212 -5
  8. package/dist/ai-mC-5XhBc.d.cts.map +1 -0
  9. package/dist/{ai-Cu17iVHa.d.ts → ai-mC-5XhBc.d.ts} +212 -5
  10. package/dist/ai-mC-5XhBc.d.ts.map +1 -0
  11. package/dist/{ai-writing-gO4GRscd.cjs → ai-writing-Bm2TUWQ-.cjs} +24 -5
  12. package/dist/ai-writing-Bm2TUWQ-.cjs.map +1 -0
  13. package/dist/{ai-writing-BgeeCOl7.js → ai-writing-D3oREPsp.js} +24 -5
  14. package/dist/ai-writing-D3oREPsp.js.map +1 -0
  15. package/dist/{index-BTZWUwOe.d.ts → index-2UQ5v6NZ.d.ts} +2 -2
  16. package/dist/{index-BTZWUwOe.d.ts.map → index-2UQ5v6NZ.d.ts.map} +1 -1
  17. package/dist/{index-B1zEN1Ur.d.ts → index-BudO4ES2.d.ts} +2 -2
  18. package/dist/{index-B1zEN1Ur.d.ts.map → index-BudO4ES2.d.ts.map} +1 -1
  19. package/dist/{index-BfUyl6ml.d.ts → index-CFKxHXAY.d.ts} +33 -4
  20. package/dist/index-CFKxHXAY.d.ts.map +1 -0
  21. package/dist/{index-DjZ1vIVg.d.cts → index-CagMlF4b.d.cts} +33 -4
  22. package/dist/index-CagMlF4b.d.cts.map +1 -0
  23. package/dist/{index-CpamCGyZ.d.cts → index-CqmNcMFM.d.cts} +2 -2
  24. package/dist/{index-CpamCGyZ.d.cts.map → index-CqmNcMFM.d.cts.map} +1 -1
  25. package/dist/{index-DYnacygI.d.cts → index-MgPVCiSJ.d.cts} +2 -2
  26. package/dist/{index-DYnacygI.d.cts.map → index-MgPVCiSJ.d.cts.map} +1 -1
  27. package/dist/index.cjs +17 -7
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +90 -13
  30. package/dist/index.d.cts.map +1 -1
  31. package/dist/index.d.ts +90 -13
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +12 -8
  34. package/dist/index.js.map +1 -1
  35. package/dist/{item-group-CnlBLM9Z.js → item-group-BIl1ZJHg.js} +55 -22
  36. package/dist/item-group-BIl1ZJHg.js.map +1 -0
  37. package/dist/{item-group-CRZNJ08j.cjs → item-group-DOk562oI.cjs} +55 -22
  38. package/dist/item-group-DOk562oI.cjs.map +1 -0
  39. package/dist/{registry-BClnM5V3.js → registry-CroAI5nc.js} +898 -8
  40. package/dist/registry-CroAI5nc.js.map +1 -0
  41. package/dist/{registry-DgLcT4rZ.cjs → registry-Dw19lNo2.cjs} +933 -7
  42. package/dist/registry-Dw19lNo2.cjs.map +1 -0
  43. package/dist/{schemas-BA8Y8z-S.cjs → schemas-CEv2otNw.cjs} +3 -3
  44. package/dist/{schemas-BA8Y8z-S.cjs.map → schemas-CEv2otNw.cjs.map} +1 -1
  45. package/dist/{schemas-VZnN68qG.js → schemas-COw7muXH.js} +3 -3
  46. package/dist/{schemas-VZnN68qG.js.map → schemas-COw7muXH.js.map} +1 -1
  47. package/dist/schemas.cjs +3 -3
  48. package/dist/schemas.d.cts +2 -2
  49. package/dist/schemas.d.ts +2 -2
  50. package/dist/schemas.js +3 -3
  51. package/dist/{scoring-BxDiwN7I.js → scoring-BxvOhHE0.js} +2 -2
  52. package/dist/{scoring-BxDiwN7I.js.map → scoring-BxvOhHE0.js.map} +1 -1
  53. package/dist/{scoring-Cfu_2qQ1.cjs → scoring-EpNBJ8Fs.cjs} +2 -2
  54. package/dist/{scoring-Cfu_2qQ1.cjs.map → scoring-EpNBJ8Fs.cjs.map} +1 -1
  55. package/dist/scoring.cjs +2 -2
  56. package/dist/scoring.d.cts +2 -2
  57. package/dist/scoring.d.ts +2 -2
  58. package/dist/scoring.js +2 -2
  59. package/dist/{xapi-BhROEuZQ.cjs → xapi-C-cQgWRX.cjs} +2 -2
  60. package/dist/{xapi-BhROEuZQ.cjs.map → xapi-C-cQgWRX.cjs.map} +1 -1
  61. package/dist/{xapi-BitXmAYB.js → xapi-DHHm7Os9.js} +2 -2
  62. package/dist/{xapi-BitXmAYB.js.map → xapi-DHHm7Os9.js.map} +1 -1
  63. package/dist/xapi.cjs +1 -1
  64. package/dist/xapi.d.cts +1 -1
  65. package/dist/xapi.d.ts +1 -1
  66. package/dist/xapi.js +1 -1
  67. package/package.json +1 -1
  68. package/vectors/scoring.json +1767 -1
  69. package/vectors/validation.json +1458 -1
  70. package/dist/ai-Cu17iVHa.d.cts.map +0 -1
  71. package/dist/ai-Cu17iVHa.d.ts.map +0 -1
  72. package/dist/ai-writing-BgeeCOl7.js.map +0 -1
  73. package/dist/ai-writing-gO4GRscd.cjs.map +0 -1
  74. package/dist/index-BfUyl6ml.d.ts.map +0 -1
  75. package/dist/index-DjZ1vIVg.d.cts.map +0 -1
  76. package/dist/item-group-CRZNJ08j.cjs.map +0 -1
  77. package/dist/item-group-CnlBLM9Z.js.map +0 -1
  78. package/dist/registry-BClnM5V3.js.map +0 -1
  79. package/dist/registry-DgLcT4rZ.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$comment": "Grade-stability corpus for @intellectif/lk-core. Generated by scripts/generate-vectors.mjs from the built package; never edit expectations by hand. Replay with vectors/replay.mjs. See vectors/README.md.",
3
3
  "corpusVersion": 2,
4
- "frozenFrom": "@intellectif/lk-core@1.9.0",
4
+ "frozenFrom": "@intellectif/lk-core@1.12.0",
5
5
  "vectors": [
6
6
  {
7
7
  "args": [
@@ -2091,6 +2091,1772 @@
2091
2091
  "fn": "evaluate",
2092
2092
  "id": "evaluate/gs/scored"
2093
2093
  },
2094
+ {
2095
+ "args": [
2096
+ "matching",
2097
+ {
2098
+ "id": "mt-headings",
2099
+ "instructions": "Choose the correct heading for each paragraph.",
2100
+ "optionUse": "once",
2101
+ "options": [
2102
+ {
2103
+ "id": "i",
2104
+ "label": "i",
2105
+ "text": "A costly experiment"
2106
+ },
2107
+ {
2108
+ "id": "ii",
2109
+ "label": "ii",
2110
+ "text": "Why the trams disappeared"
2111
+ },
2112
+ {
2113
+ "id": "iii",
2114
+ "label": "iii",
2115
+ "text": "A return nobody expected"
2116
+ },
2117
+ {
2118
+ "id": "iv",
2119
+ "label": "iv",
2120
+ "text": "The view from the passengers"
2121
+ }
2122
+ ],
2123
+ "optionsTitle": "List of Headings",
2124
+ "prompts": [
2125
+ {
2126
+ "correctOptionId": "ii",
2127
+ "id": "pA",
2128
+ "text": "Paragraph A"
2129
+ },
2130
+ {
2131
+ "correctOptionId": "iii",
2132
+ "id": "pB",
2133
+ "text": "Paragraph B"
2134
+ },
2135
+ {
2136
+ "correctOptionId": "i",
2137
+ "feedback": "Look at the second sentence.",
2138
+ "id": "pC",
2139
+ "text": "Paragraph C"
2140
+ }
2141
+ ],
2142
+ "schemaVersion": "1.0",
2143
+ "scoringStrategy": "partial",
2144
+ "title": "The return of the tram",
2145
+ "type": "matching"
2146
+ },
2147
+ {
2148
+ "matches": {
2149
+ "pA": "ii",
2150
+ "pB": "iii",
2151
+ "pC": "i"
2152
+ },
2153
+ "type": "matching"
2154
+ }
2155
+ ],
2156
+ "expect": {
2157
+ "details": [
2158
+ {
2159
+ "correctResponse": ["ii"],
2160
+ "itemId": "pA",
2161
+ "learnerResponse": ["ii"],
2162
+ "outcome": "correct",
2163
+ "weight": 1
2164
+ },
2165
+ {
2166
+ "correctResponse": ["iii"],
2167
+ "itemId": "pB",
2168
+ "learnerResponse": ["iii"],
2169
+ "outcome": "correct",
2170
+ "weight": 1
2171
+ },
2172
+ {
2173
+ "correctResponse": ["i"],
2174
+ "itemId": "pC",
2175
+ "learnerResponse": ["i"],
2176
+ "outcome": "correct",
2177
+ "weight": 1
2178
+ }
2179
+ ],
2180
+ "feedback": null,
2181
+ "maxScore": 1,
2182
+ "passed": true,
2183
+ "score": 1
2184
+ },
2185
+ "fn": "score",
2186
+ "id": "score/mt/partial/all-right"
2187
+ },
2188
+ {
2189
+ "args": [
2190
+ "matching",
2191
+ {
2192
+ "id": "mt-headings",
2193
+ "instructions": "Choose the correct heading for each paragraph.",
2194
+ "optionUse": "once",
2195
+ "options": [
2196
+ {
2197
+ "id": "i",
2198
+ "label": "i",
2199
+ "text": "A costly experiment"
2200
+ },
2201
+ {
2202
+ "id": "ii",
2203
+ "label": "ii",
2204
+ "text": "Why the trams disappeared"
2205
+ },
2206
+ {
2207
+ "id": "iii",
2208
+ "label": "iii",
2209
+ "text": "A return nobody expected"
2210
+ },
2211
+ {
2212
+ "id": "iv",
2213
+ "label": "iv",
2214
+ "text": "The view from the passengers"
2215
+ }
2216
+ ],
2217
+ "optionsTitle": "List of Headings",
2218
+ "prompts": [
2219
+ {
2220
+ "correctOptionId": "ii",
2221
+ "id": "pA",
2222
+ "text": "Paragraph A"
2223
+ },
2224
+ {
2225
+ "correctOptionId": "iii",
2226
+ "id": "pB",
2227
+ "text": "Paragraph B"
2228
+ },
2229
+ {
2230
+ "correctOptionId": "i",
2231
+ "feedback": "Look at the second sentence.",
2232
+ "id": "pC",
2233
+ "text": "Paragraph C"
2234
+ }
2235
+ ],
2236
+ "schemaVersion": "1.0",
2237
+ "scoringStrategy": "partial",
2238
+ "title": "The return of the tram",
2239
+ "type": "matching"
2240
+ },
2241
+ {
2242
+ "matches": {
2243
+ "pA": "ii",
2244
+ "pB": "iv",
2245
+ "pC": "i"
2246
+ },
2247
+ "type": "matching"
2248
+ }
2249
+ ],
2250
+ "expect": {
2251
+ "details": [
2252
+ {
2253
+ "correctResponse": ["ii"],
2254
+ "itemId": "pA",
2255
+ "learnerResponse": ["ii"],
2256
+ "outcome": "correct",
2257
+ "weight": 1
2258
+ },
2259
+ {
2260
+ "correctResponse": ["iii"],
2261
+ "itemId": "pB",
2262
+ "learnerResponse": ["iv"],
2263
+ "outcome": "incorrect",
2264
+ "weight": 1
2265
+ },
2266
+ {
2267
+ "correctResponse": ["i"],
2268
+ "itemId": "pC",
2269
+ "learnerResponse": ["i"],
2270
+ "outcome": "correct",
2271
+ "weight": 1
2272
+ }
2273
+ ],
2274
+ "feedback": null,
2275
+ "maxScore": 1,
2276
+ "passed": false,
2277
+ "score": 0.6666666666666666
2278
+ },
2279
+ "fn": "score",
2280
+ "id": "score/mt/partial/one-wrong"
2281
+ },
2282
+ {
2283
+ "args": [
2284
+ "matching",
2285
+ {
2286
+ "id": "mt-headings",
2287
+ "instructions": "Choose the correct heading for each paragraph.",
2288
+ "optionUse": "once",
2289
+ "options": [
2290
+ {
2291
+ "id": "i",
2292
+ "label": "i",
2293
+ "text": "A costly experiment"
2294
+ },
2295
+ {
2296
+ "id": "ii",
2297
+ "label": "ii",
2298
+ "text": "Why the trams disappeared"
2299
+ },
2300
+ {
2301
+ "id": "iii",
2302
+ "label": "iii",
2303
+ "text": "A return nobody expected"
2304
+ },
2305
+ {
2306
+ "id": "iv",
2307
+ "label": "iv",
2308
+ "text": "The view from the passengers"
2309
+ }
2310
+ ],
2311
+ "optionsTitle": "List of Headings",
2312
+ "prompts": [
2313
+ {
2314
+ "correctOptionId": "ii",
2315
+ "id": "pA",
2316
+ "text": "Paragraph A"
2317
+ },
2318
+ {
2319
+ "correctOptionId": "iii",
2320
+ "id": "pB",
2321
+ "text": "Paragraph B"
2322
+ },
2323
+ {
2324
+ "correctOptionId": "i",
2325
+ "feedback": "Look at the second sentence.",
2326
+ "id": "pC",
2327
+ "text": "Paragraph C"
2328
+ }
2329
+ ],
2330
+ "schemaVersion": "1.0",
2331
+ "scoringStrategy": "partial",
2332
+ "title": "The return of the tram",
2333
+ "type": "matching"
2334
+ },
2335
+ {
2336
+ "matches": {
2337
+ "pA": "ii",
2338
+ "pC": "i"
2339
+ },
2340
+ "type": "matching"
2341
+ }
2342
+ ],
2343
+ "expect": {
2344
+ "details": [
2345
+ {
2346
+ "correctResponse": ["ii"],
2347
+ "itemId": "pA",
2348
+ "learnerResponse": ["ii"],
2349
+ "outcome": "correct",
2350
+ "weight": 1
2351
+ },
2352
+ {
2353
+ "correctResponse": ["iii"],
2354
+ "itemId": "pB",
2355
+ "learnerResponse": [""],
2356
+ "outcome": "incorrect-omission",
2357
+ "weight": 1
2358
+ },
2359
+ {
2360
+ "correctResponse": ["i"],
2361
+ "itemId": "pC",
2362
+ "learnerResponse": ["i"],
2363
+ "outcome": "correct",
2364
+ "weight": 1
2365
+ }
2366
+ ],
2367
+ "feedback": null,
2368
+ "maxScore": 1,
2369
+ "passed": false,
2370
+ "score": 0.6666666666666666
2371
+ },
2372
+ "fn": "score",
2373
+ "id": "score/mt/partial/unanswered-prompt"
2374
+ },
2375
+ {
2376
+ "args": [
2377
+ "matching",
2378
+ {
2379
+ "id": "mt-headings",
2380
+ "instructions": "Choose the correct heading for each paragraph.",
2381
+ "optionUse": "once",
2382
+ "options": [
2383
+ {
2384
+ "id": "i",
2385
+ "label": "i",
2386
+ "text": "A costly experiment"
2387
+ },
2388
+ {
2389
+ "id": "ii",
2390
+ "label": "ii",
2391
+ "text": "Why the trams disappeared"
2392
+ },
2393
+ {
2394
+ "id": "iii",
2395
+ "label": "iii",
2396
+ "text": "A return nobody expected"
2397
+ },
2398
+ {
2399
+ "id": "iv",
2400
+ "label": "iv",
2401
+ "text": "The view from the passengers"
2402
+ }
2403
+ ],
2404
+ "optionsTitle": "List of Headings",
2405
+ "prompts": [
2406
+ {
2407
+ "correctOptionId": "ii",
2408
+ "id": "pA",
2409
+ "text": "Paragraph A"
2410
+ },
2411
+ {
2412
+ "correctOptionId": "iii",
2413
+ "id": "pB",
2414
+ "text": "Paragraph B"
2415
+ },
2416
+ {
2417
+ "correctOptionId": "i",
2418
+ "feedback": "Look at the second sentence.",
2419
+ "id": "pC",
2420
+ "text": "Paragraph C"
2421
+ }
2422
+ ],
2423
+ "schemaVersion": "1.0",
2424
+ "scoringStrategy": "partial",
2425
+ "title": "The return of the tram",
2426
+ "type": "matching"
2427
+ },
2428
+ {
2429
+ "matches": {
2430
+ "pA": "ii",
2431
+ "pB": "",
2432
+ "pC": "i"
2433
+ },
2434
+ "type": "matching"
2435
+ }
2436
+ ],
2437
+ "expect": {
2438
+ "details": [
2439
+ {
2440
+ "correctResponse": ["ii"],
2441
+ "itemId": "pA",
2442
+ "learnerResponse": ["ii"],
2443
+ "outcome": "correct",
2444
+ "weight": 1
2445
+ },
2446
+ {
2447
+ "correctResponse": ["iii"],
2448
+ "itemId": "pB",
2449
+ "learnerResponse": [""],
2450
+ "outcome": "incorrect-omission",
2451
+ "weight": 1
2452
+ },
2453
+ {
2454
+ "correctResponse": ["i"],
2455
+ "itemId": "pC",
2456
+ "learnerResponse": ["i"],
2457
+ "outcome": "correct",
2458
+ "weight": 1
2459
+ }
2460
+ ],
2461
+ "feedback": null,
2462
+ "maxScore": 1,
2463
+ "passed": false,
2464
+ "score": 0.6666666666666666
2465
+ },
2466
+ "fn": "score",
2467
+ "id": "score/mt/partial/empty-string-is-unanswered"
2468
+ },
2469
+ {
2470
+ "args": [
2471
+ "matching",
2472
+ {
2473
+ "id": "mt-headings",
2474
+ "instructions": "Choose the correct heading for each paragraph.",
2475
+ "optionUse": "once",
2476
+ "options": [
2477
+ {
2478
+ "id": "i",
2479
+ "label": "i",
2480
+ "text": "A costly experiment"
2481
+ },
2482
+ {
2483
+ "id": "ii",
2484
+ "label": "ii",
2485
+ "text": "Why the trams disappeared"
2486
+ },
2487
+ {
2488
+ "id": "iii",
2489
+ "label": "iii",
2490
+ "text": "A return nobody expected"
2491
+ },
2492
+ {
2493
+ "id": "iv",
2494
+ "label": "iv",
2495
+ "text": "The view from the passengers"
2496
+ }
2497
+ ],
2498
+ "optionsTitle": "List of Headings",
2499
+ "prompts": [
2500
+ {
2501
+ "correctOptionId": "ii",
2502
+ "id": "pA",
2503
+ "text": "Paragraph A"
2504
+ },
2505
+ {
2506
+ "correctOptionId": "iii",
2507
+ "id": "pB",
2508
+ "text": "Paragraph B"
2509
+ },
2510
+ {
2511
+ "correctOptionId": "i",
2512
+ "feedback": "Look at the second sentence.",
2513
+ "id": "pC",
2514
+ "text": "Paragraph C"
2515
+ }
2516
+ ],
2517
+ "schemaVersion": "1.0",
2518
+ "scoringStrategy": "partial",
2519
+ "title": "The return of the tram",
2520
+ "type": "matching"
2521
+ },
2522
+ {
2523
+ "matches": {
2524
+ "pA": "smuggled",
2525
+ "pB": "iii",
2526
+ "pC": "i"
2527
+ },
2528
+ "type": "matching"
2529
+ }
2530
+ ],
2531
+ "expect": {
2532
+ "details": [
2533
+ {
2534
+ "correctResponse": ["ii"],
2535
+ "itemId": "pA",
2536
+ "learnerResponse": ["smuggled"],
2537
+ "outcome": "incorrect-omission",
2538
+ "weight": 1
2539
+ },
2540
+ {
2541
+ "correctResponse": ["iii"],
2542
+ "itemId": "pB",
2543
+ "learnerResponse": ["iii"],
2544
+ "outcome": "correct",
2545
+ "weight": 1
2546
+ },
2547
+ {
2548
+ "correctResponse": ["i"],
2549
+ "itemId": "pC",
2550
+ "learnerResponse": ["i"],
2551
+ "outcome": "correct",
2552
+ "weight": 1
2553
+ }
2554
+ ],
2555
+ "feedback": null,
2556
+ "maxScore": 1,
2557
+ "passed": false,
2558
+ "score": 0.6666666666666666
2559
+ },
2560
+ "fn": "score",
2561
+ "id": "score/mt/partial/option-never-offered"
2562
+ },
2563
+ {
2564
+ "args": [
2565
+ "matching",
2566
+ {
2567
+ "id": "mt-headings",
2568
+ "instructions": "Choose the correct heading for each paragraph.",
2569
+ "optionUse": "once",
2570
+ "options": [
2571
+ {
2572
+ "id": "i",
2573
+ "label": "i",
2574
+ "text": "A costly experiment"
2575
+ },
2576
+ {
2577
+ "id": "ii",
2578
+ "label": "ii",
2579
+ "text": "Why the trams disappeared"
2580
+ },
2581
+ {
2582
+ "id": "iii",
2583
+ "label": "iii",
2584
+ "text": "A return nobody expected"
2585
+ },
2586
+ {
2587
+ "id": "iv",
2588
+ "label": "iv",
2589
+ "text": "The view from the passengers"
2590
+ }
2591
+ ],
2592
+ "optionsTitle": "List of Headings",
2593
+ "prompts": [
2594
+ {
2595
+ "correctOptionId": "ii",
2596
+ "id": "pA",
2597
+ "text": "Paragraph A"
2598
+ },
2599
+ {
2600
+ "correctOptionId": "iii",
2601
+ "id": "pB",
2602
+ "text": "Paragraph B"
2603
+ },
2604
+ {
2605
+ "correctOptionId": "i",
2606
+ "feedback": "Look at the second sentence.",
2607
+ "id": "pC",
2608
+ "text": "Paragraph C"
2609
+ }
2610
+ ],
2611
+ "schemaVersion": "1.0",
2612
+ "scoringStrategy": "partial",
2613
+ "title": "The return of the tram",
2614
+ "type": "matching"
2615
+ },
2616
+ {
2617
+ "matches": {
2618
+ "pA": "ii",
2619
+ "pB": "ii",
2620
+ "pC": "i"
2621
+ },
2622
+ "type": "matching"
2623
+ }
2624
+ ],
2625
+ "expect": {
2626
+ "details": [
2627
+ {
2628
+ "correctResponse": ["ii"],
2629
+ "itemId": "pA",
2630
+ "learnerResponse": ["ii"],
2631
+ "outcome": "correct",
2632
+ "weight": 1
2633
+ },
2634
+ {
2635
+ "correctResponse": ["iii"],
2636
+ "itemId": "pB",
2637
+ "learnerResponse": ["ii"],
2638
+ "outcome": "incorrect",
2639
+ "weight": 1
2640
+ },
2641
+ {
2642
+ "correctResponse": ["i"],
2643
+ "itemId": "pC",
2644
+ "learnerResponse": ["i"],
2645
+ "outcome": "correct",
2646
+ "weight": 1
2647
+ }
2648
+ ],
2649
+ "feedback": null,
2650
+ "maxScore": 1,
2651
+ "passed": false,
2652
+ "score": 0.6666666666666666
2653
+ },
2654
+ "fn": "score",
2655
+ "id": "score/mt/partial/one-option-for-two-prompts",
2656
+ "note": "Under optionUse \"once\" a repeated option is scored prompt by prompt: the second use earns nothing the key does not give it."
2657
+ },
2658
+ {
2659
+ "args": [
2660
+ "matching",
2661
+ {
2662
+ "id": "mt-headings",
2663
+ "instructions": "Choose the correct heading for each paragraph.",
2664
+ "optionUse": "once",
2665
+ "options": [
2666
+ {
2667
+ "id": "i",
2668
+ "label": "i",
2669
+ "text": "A costly experiment"
2670
+ },
2671
+ {
2672
+ "id": "ii",
2673
+ "label": "ii",
2674
+ "text": "Why the trams disappeared"
2675
+ },
2676
+ {
2677
+ "id": "iii",
2678
+ "label": "iii",
2679
+ "text": "A return nobody expected"
2680
+ },
2681
+ {
2682
+ "id": "iv",
2683
+ "label": "iv",
2684
+ "text": "The view from the passengers"
2685
+ }
2686
+ ],
2687
+ "optionsTitle": "List of Headings",
2688
+ "prompts": [
2689
+ {
2690
+ "correctOptionId": "ii",
2691
+ "id": "pA",
2692
+ "text": "Paragraph A"
2693
+ },
2694
+ {
2695
+ "correctOptionId": "iii",
2696
+ "id": "pB",
2697
+ "text": "Paragraph B"
2698
+ },
2699
+ {
2700
+ "correctOptionId": "i",
2701
+ "feedback": "Look at the second sentence.",
2702
+ "id": "pC",
2703
+ "text": "Paragraph C"
2704
+ }
2705
+ ],
2706
+ "schemaVersion": "1.0",
2707
+ "scoringStrategy": "all-or-nothing",
2708
+ "title": "The return of the tram",
2709
+ "type": "matching"
2710
+ },
2711
+ {
2712
+ "matches": {
2713
+ "pA": "ii",
2714
+ "pB": "iii",
2715
+ "pC": "i"
2716
+ },
2717
+ "type": "matching"
2718
+ }
2719
+ ],
2720
+ "expect": {
2721
+ "details": [
2722
+ {
2723
+ "correctResponse": ["ii"],
2724
+ "itemId": "pA",
2725
+ "learnerResponse": ["ii"],
2726
+ "outcome": "correct",
2727
+ "weight": 1
2728
+ },
2729
+ {
2730
+ "correctResponse": ["iii"],
2731
+ "itemId": "pB",
2732
+ "learnerResponse": ["iii"],
2733
+ "outcome": "correct",
2734
+ "weight": 1
2735
+ },
2736
+ {
2737
+ "correctResponse": ["i"],
2738
+ "itemId": "pC",
2739
+ "learnerResponse": ["i"],
2740
+ "outcome": "correct",
2741
+ "weight": 1
2742
+ }
2743
+ ],
2744
+ "feedback": null,
2745
+ "maxScore": 1,
2746
+ "passed": true,
2747
+ "score": 1
2748
+ },
2749
+ "fn": "score",
2750
+ "id": "score/mt/all-or-nothing/all-right"
2751
+ },
2752
+ {
2753
+ "args": [
2754
+ "matching",
2755
+ {
2756
+ "id": "mt-headings",
2757
+ "instructions": "Choose the correct heading for each paragraph.",
2758
+ "optionUse": "once",
2759
+ "options": [
2760
+ {
2761
+ "id": "i",
2762
+ "label": "i",
2763
+ "text": "A costly experiment"
2764
+ },
2765
+ {
2766
+ "id": "ii",
2767
+ "label": "ii",
2768
+ "text": "Why the trams disappeared"
2769
+ },
2770
+ {
2771
+ "id": "iii",
2772
+ "label": "iii",
2773
+ "text": "A return nobody expected"
2774
+ },
2775
+ {
2776
+ "id": "iv",
2777
+ "label": "iv",
2778
+ "text": "The view from the passengers"
2779
+ }
2780
+ ],
2781
+ "optionsTitle": "List of Headings",
2782
+ "prompts": [
2783
+ {
2784
+ "correctOptionId": "ii",
2785
+ "id": "pA",
2786
+ "text": "Paragraph A"
2787
+ },
2788
+ {
2789
+ "correctOptionId": "iii",
2790
+ "id": "pB",
2791
+ "text": "Paragraph B"
2792
+ },
2793
+ {
2794
+ "correctOptionId": "i",
2795
+ "feedback": "Look at the second sentence.",
2796
+ "id": "pC",
2797
+ "text": "Paragraph C"
2798
+ }
2799
+ ],
2800
+ "schemaVersion": "1.0",
2801
+ "scoringStrategy": "all-or-nothing",
2802
+ "title": "The return of the tram",
2803
+ "type": "matching"
2804
+ },
2805
+ {
2806
+ "matches": {
2807
+ "pA": "ii",
2808
+ "pB": "iii",
2809
+ "pC": "iv"
2810
+ },
2811
+ "type": "matching"
2812
+ }
2813
+ ],
2814
+ "expect": {
2815
+ "details": [
2816
+ {
2817
+ "correctResponse": ["ii"],
2818
+ "itemId": "pA",
2819
+ "learnerResponse": ["ii"],
2820
+ "outcome": "correct",
2821
+ "weight": 1
2822
+ },
2823
+ {
2824
+ "correctResponse": ["iii"],
2825
+ "itemId": "pB",
2826
+ "learnerResponse": ["iii"],
2827
+ "outcome": "correct",
2828
+ "weight": 1
2829
+ },
2830
+ {
2831
+ "correctResponse": ["i"],
2832
+ "itemId": "pC",
2833
+ "learnerResponse": ["iv"],
2834
+ "outcome": "incorrect",
2835
+ "weight": 1
2836
+ }
2837
+ ],
2838
+ "feedback": null,
2839
+ "maxScore": 1,
2840
+ "passed": false,
2841
+ "score": 0
2842
+ },
2843
+ "fn": "score",
2844
+ "id": "score/mt/all-or-nothing/one-wrong"
2845
+ },
2846
+ {
2847
+ "args": [
2848
+ "matching",
2849
+ {
2850
+ "id": "mt-headings",
2851
+ "instructions": "Choose the correct heading for each paragraph.",
2852
+ "optionUse": "many",
2853
+ "options": [
2854
+ {
2855
+ "id": "A",
2856
+ "label": "A",
2857
+ "text": "A"
2858
+ },
2859
+ {
2860
+ "id": "B",
2861
+ "label": "B",
2862
+ "text": "B"
2863
+ },
2864
+ {
2865
+ "id": "C",
2866
+ "label": "C",
2867
+ "text": "C"
2868
+ }
2869
+ ],
2870
+ "prompts": [
2871
+ {
2872
+ "correctOptionId": "B",
2873
+ "id": "q1",
2874
+ "text": "a reference to a failed plan"
2875
+ },
2876
+ {
2877
+ "correctOptionId": "B",
2878
+ "id": "q2",
2879
+ "text": "the cost of a new line"
2880
+ },
2881
+ {
2882
+ "correctOptionId": "A",
2883
+ "id": "q3",
2884
+ "text": "what passengers said"
2885
+ }
2886
+ ],
2887
+ "schemaVersion": "1.0",
2888
+ "scoringStrategy": "partial",
2889
+ "title": "The return of the tram",
2890
+ "type": "matching"
2891
+ },
2892
+ {
2893
+ "matches": {
2894
+ "q1": "B",
2895
+ "q2": "B",
2896
+ "q3": "C"
2897
+ },
2898
+ "type": "matching"
2899
+ }
2900
+ ],
2901
+ "expect": {
2902
+ "details": [
2903
+ {
2904
+ "correctResponse": ["B"],
2905
+ "itemId": "q1",
2906
+ "learnerResponse": ["B"],
2907
+ "outcome": "correct",
2908
+ "weight": 1
2909
+ },
2910
+ {
2911
+ "correctResponse": ["B"],
2912
+ "itemId": "q2",
2913
+ "learnerResponse": ["B"],
2914
+ "outcome": "correct",
2915
+ "weight": 1
2916
+ },
2917
+ {
2918
+ "correctResponse": ["A"],
2919
+ "itemId": "q3",
2920
+ "learnerResponse": ["C"],
2921
+ "outcome": "incorrect",
2922
+ "weight": 1
2923
+ }
2924
+ ],
2925
+ "feedback": null,
2926
+ "maxScore": 1,
2927
+ "passed": false,
2928
+ "score": 0.6666666666666666
2929
+ },
2930
+ "fn": "score",
2931
+ "id": "score/mt/many/reused-letter"
2932
+ },
2933
+ {
2934
+ "args": [
2935
+ "mark-the-words",
2936
+ {
2937
+ "id": "mw-past",
2938
+ "instructions": "Mark every verb in the past.",
2939
+ "schemaVersion": "1.0",
2940
+ "scoringStrategy": "partial",
2941
+ "targets": [
2942
+ {
2943
+ "occurrence": 1,
2944
+ "text": "went"
2945
+ },
2946
+ {
2947
+ "text": "bought"
2948
+ },
2949
+ {
2950
+ "text": "had never gone"
2951
+ },
2952
+ {
2953
+ "occurrence": 2,
2954
+ "text": "went"
2955
+ }
2956
+ ],
2957
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
2958
+ "title": "The past",
2959
+ "type": "mark-the-words"
2960
+ },
2961
+ {
2962
+ "marked": [2, 7, 10, 11, 12, 17],
2963
+ "type": "mark-the-words"
2964
+ }
2965
+ ],
2966
+ "expect": {
2967
+ "details": [
2968
+ {
2969
+ "correctResponse": ["2"],
2970
+ "itemId": "t1",
2971
+ "learnerResponse": ["2"],
2972
+ "outcome": "correct",
2973
+ "weight": 1
2974
+ },
2975
+ {
2976
+ "correctResponse": ["7"],
2977
+ "itemId": "t2",
2978
+ "learnerResponse": ["7"],
2979
+ "outcome": "correct",
2980
+ "weight": 1
2981
+ },
2982
+ {
2983
+ "correctResponse": ["10", "11", "12"],
2984
+ "itemId": "t3",
2985
+ "learnerResponse": ["10", "11", "12"],
2986
+ "outcome": "correct",
2987
+ "weight": 1
2988
+ },
2989
+ {
2990
+ "correctResponse": ["17"],
2991
+ "itemId": "t4",
2992
+ "learnerResponse": ["17"],
2993
+ "outcome": "correct",
2994
+ "weight": 1
2995
+ }
2996
+ ],
2997
+ "feedback": null,
2998
+ "maxScore": 1,
2999
+ "passed": true,
3000
+ "score": 1
3001
+ },
3002
+ "fn": "score",
3003
+ "id": "score/mw/partial/all-found"
3004
+ },
3005
+ {
3006
+ "args": [
3007
+ "mark-the-words",
3008
+ {
3009
+ "id": "mw-past",
3010
+ "instructions": "Mark every verb in the past.",
3011
+ "schemaVersion": "1.0",
3012
+ "scoringStrategy": "partial",
3013
+ "targets": [
3014
+ {
3015
+ "occurrence": 1,
3016
+ "text": "went"
3017
+ },
3018
+ {
3019
+ "text": "bought"
3020
+ },
3021
+ {
3022
+ "text": "had never gone"
3023
+ },
3024
+ {
3025
+ "occurrence": 2,
3026
+ "text": "went"
3027
+ }
3028
+ ],
3029
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3030
+ "title": "The past",
3031
+ "type": "mark-the-words"
3032
+ },
3033
+ {
3034
+ "marked": [2, 7, 17],
3035
+ "type": "mark-the-words"
3036
+ }
3037
+ ],
3038
+ "expect": {
3039
+ "details": [
3040
+ {
3041
+ "correctResponse": ["2"],
3042
+ "itemId": "t1",
3043
+ "learnerResponse": ["2"],
3044
+ "outcome": "correct",
3045
+ "weight": 1
3046
+ },
3047
+ {
3048
+ "correctResponse": ["7"],
3049
+ "itemId": "t2",
3050
+ "learnerResponse": ["7"],
3051
+ "outcome": "correct",
3052
+ "weight": 1
3053
+ },
3054
+ {
3055
+ "correctResponse": ["10", "11", "12"],
3056
+ "itemId": "t3",
3057
+ "learnerResponse": [],
3058
+ "outcome": "incorrect-omission",
3059
+ "weight": 1
3060
+ },
3061
+ {
3062
+ "correctResponse": ["17"],
3063
+ "itemId": "t4",
3064
+ "learnerResponse": ["17"],
3065
+ "outcome": "correct",
3066
+ "weight": 1
3067
+ }
3068
+ ],
3069
+ "feedback": null,
3070
+ "maxScore": 1,
3071
+ "passed": true,
3072
+ "score": 0.75
3073
+ },
3074
+ "fn": "score",
3075
+ "id": "score/mw/partial/one-missed"
3076
+ },
3077
+ {
3078
+ "args": [
3079
+ "mark-the-words",
3080
+ {
3081
+ "id": "mw-past",
3082
+ "instructions": "Mark every verb in the past.",
3083
+ "schemaVersion": "1.0",
3084
+ "scoringStrategy": "partial",
3085
+ "targets": [
3086
+ {
3087
+ "occurrence": 1,
3088
+ "text": "went"
3089
+ },
3090
+ {
3091
+ "text": "bought"
3092
+ },
3093
+ {
3094
+ "text": "had never gone"
3095
+ },
3096
+ {
3097
+ "occurrence": 2,
3098
+ "text": "went"
3099
+ }
3100
+ ],
3101
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3102
+ "title": "The past",
3103
+ "type": "mark-the-words"
3104
+ },
3105
+ {
3106
+ "marked": [2, 7, 10, 12, 17],
3107
+ "type": "mark-the-words"
3108
+ }
3109
+ ],
3110
+ "expect": {
3111
+ "details": [
3112
+ {
3113
+ "correctResponse": ["2"],
3114
+ "itemId": "t1",
3115
+ "learnerResponse": ["2"],
3116
+ "outcome": "correct",
3117
+ "weight": 1
3118
+ },
3119
+ {
3120
+ "correctResponse": ["7"],
3121
+ "itemId": "t2",
3122
+ "learnerResponse": ["7"],
3123
+ "outcome": "correct",
3124
+ "weight": 1
3125
+ },
3126
+ {
3127
+ "correctResponse": ["10", "11", "12"],
3128
+ "itemId": "t3",
3129
+ "learnerResponse": ["10", "12"],
3130
+ "outcome": "incorrect",
3131
+ "weight": 1
3132
+ },
3133
+ {
3134
+ "correctResponse": ["17"],
3135
+ "itemId": "t4",
3136
+ "learnerResponse": ["17"],
3137
+ "outcome": "correct",
3138
+ "weight": 1
3139
+ }
3140
+ ],
3141
+ "feedback": null,
3142
+ "maxScore": 1,
3143
+ "passed": true,
3144
+ "score": 0.75
3145
+ },
3146
+ "fn": "score",
3147
+ "id": "score/mw/partial/phrase-half-marked"
3148
+ },
3149
+ {
3150
+ "args": [
3151
+ "mark-the-words",
3152
+ {
3153
+ "id": "mw-past",
3154
+ "instructions": "Mark every verb in the past.",
3155
+ "schemaVersion": "1.0",
3156
+ "scoringStrategy": "partial",
3157
+ "targets": [
3158
+ {
3159
+ "occurrence": 1,
3160
+ "text": "went"
3161
+ },
3162
+ {
3163
+ "text": "bought"
3164
+ },
3165
+ {
3166
+ "text": "had never gone"
3167
+ },
3168
+ {
3169
+ "occurrence": 2,
3170
+ "text": "went"
3171
+ }
3172
+ ],
3173
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3174
+ "title": "The past",
3175
+ "type": "mark-the-words"
3176
+ },
3177
+ {
3178
+ "marked": [2, 7, 10, 11, 12, 17, 5],
3179
+ "type": "mark-the-words"
3180
+ }
3181
+ ],
3182
+ "expect": {
3183
+ "details": [
3184
+ {
3185
+ "correctResponse": ["2"],
3186
+ "itemId": "t1",
3187
+ "learnerResponse": ["2"],
3188
+ "outcome": "correct",
3189
+ "weight": 1
3190
+ },
3191
+ {
3192
+ "correctResponse": ["7"],
3193
+ "itemId": "t2",
3194
+ "learnerResponse": ["7"],
3195
+ "outcome": "correct",
3196
+ "weight": 1
3197
+ },
3198
+ {
3199
+ "correctResponse": ["10", "11", "12"],
3200
+ "itemId": "t3",
3201
+ "learnerResponse": ["10", "11", "12"],
3202
+ "outcome": "correct",
3203
+ "weight": 1
3204
+ },
3205
+ {
3206
+ "correctResponse": ["17"],
3207
+ "itemId": "t4",
3208
+ "learnerResponse": ["17"],
3209
+ "outcome": "correct",
3210
+ "weight": 1
3211
+ },
3212
+ {
3213
+ "correctResponse": [],
3214
+ "itemId": "w5",
3215
+ "learnerResponse": ["5"],
3216
+ "outcome": "incorrect",
3217
+ "weight": 1
3218
+ }
3219
+ ],
3220
+ "feedback": null,
3221
+ "maxScore": 1,
3222
+ "passed": true,
3223
+ "score": 0.75
3224
+ },
3225
+ "fn": "score",
3226
+ "id": "score/mw/partial/wrong-mark-costs"
3227
+ },
3228
+ {
3229
+ "args": [
3230
+ "mark-the-words",
3231
+ {
3232
+ "id": "mw-past",
3233
+ "instructions": "Mark every verb in the past.",
3234
+ "schemaVersion": "1.0",
3235
+ "scoringStrategy": "partial",
3236
+ "targets": [
3237
+ {
3238
+ "occurrence": 1,
3239
+ "text": "went"
3240
+ },
3241
+ {
3242
+ "text": "bought"
3243
+ },
3244
+ {
3245
+ "text": "had never gone"
3246
+ },
3247
+ {
3248
+ "occurrence": 2,
3249
+ "text": "went"
3250
+ }
3251
+ ],
3252
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3253
+ "title": "The past",
3254
+ "type": "mark-the-words"
3255
+ },
3256
+ {
3257
+ "marked": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
3258
+ "type": "mark-the-words"
3259
+ }
3260
+ ],
3261
+ "expect": {
3262
+ "details": [
3263
+ {
3264
+ "correctResponse": ["2"],
3265
+ "itemId": "t1",
3266
+ "learnerResponse": ["2"],
3267
+ "outcome": "correct",
3268
+ "weight": 1
3269
+ },
3270
+ {
3271
+ "correctResponse": ["7"],
3272
+ "itemId": "t2",
3273
+ "learnerResponse": ["7"],
3274
+ "outcome": "correct",
3275
+ "weight": 1
3276
+ },
3277
+ {
3278
+ "correctResponse": ["10", "11", "12"],
3279
+ "itemId": "t3",
3280
+ "learnerResponse": ["10", "11", "12"],
3281
+ "outcome": "correct",
3282
+ "weight": 1
3283
+ },
3284
+ {
3285
+ "correctResponse": ["17"],
3286
+ "itemId": "t4",
3287
+ "learnerResponse": ["17"],
3288
+ "outcome": "correct",
3289
+ "weight": 1
3290
+ },
3291
+ {
3292
+ "correctResponse": [],
3293
+ "itemId": "w0",
3294
+ "learnerResponse": ["0"],
3295
+ "outcome": "incorrect",
3296
+ "weight": 1
3297
+ },
3298
+ {
3299
+ "correctResponse": [],
3300
+ "itemId": "w1",
3301
+ "learnerResponse": ["1"],
3302
+ "outcome": "incorrect",
3303
+ "weight": 1
3304
+ },
3305
+ {
3306
+ "correctResponse": [],
3307
+ "itemId": "w3",
3308
+ "learnerResponse": ["3"],
3309
+ "outcome": "incorrect",
3310
+ "weight": 1
3311
+ },
3312
+ {
3313
+ "correctResponse": [],
3314
+ "itemId": "w4",
3315
+ "learnerResponse": ["4"],
3316
+ "outcome": "incorrect",
3317
+ "weight": 1
3318
+ },
3319
+ {
3320
+ "correctResponse": [],
3321
+ "itemId": "w5",
3322
+ "learnerResponse": ["5"],
3323
+ "outcome": "incorrect",
3324
+ "weight": 1
3325
+ },
3326
+ {
3327
+ "correctResponse": [],
3328
+ "itemId": "w6",
3329
+ "learnerResponse": ["6"],
3330
+ "outcome": "incorrect",
3331
+ "weight": 1
3332
+ },
3333
+ {
3334
+ "correctResponse": [],
3335
+ "itemId": "w8",
3336
+ "learnerResponse": ["8"],
3337
+ "outcome": "incorrect",
3338
+ "weight": 1
3339
+ },
3340
+ {
3341
+ "correctResponse": [],
3342
+ "itemId": "w9",
3343
+ "learnerResponse": ["9"],
3344
+ "outcome": "incorrect",
3345
+ "weight": 1
3346
+ },
3347
+ {
3348
+ "correctResponse": [],
3349
+ "itemId": "w13",
3350
+ "learnerResponse": ["13"],
3351
+ "outcome": "incorrect",
3352
+ "weight": 1
3353
+ },
3354
+ {
3355
+ "correctResponse": [],
3356
+ "itemId": "w14",
3357
+ "learnerResponse": ["14"],
3358
+ "outcome": "incorrect",
3359
+ "weight": 1
3360
+ },
3361
+ {
3362
+ "correctResponse": [],
3363
+ "itemId": "w15",
3364
+ "learnerResponse": ["15"],
3365
+ "outcome": "incorrect",
3366
+ "weight": 1
3367
+ },
3368
+ {
3369
+ "correctResponse": [],
3370
+ "itemId": "w16",
3371
+ "learnerResponse": ["16"],
3372
+ "outcome": "incorrect",
3373
+ "weight": 1
3374
+ },
3375
+ {
3376
+ "correctResponse": [],
3377
+ "itemId": "w18",
3378
+ "learnerResponse": ["18"],
3379
+ "outcome": "incorrect",
3380
+ "weight": 1
3381
+ }
3382
+ ],
3383
+ "feedback": null,
3384
+ "maxScore": 1,
3385
+ "passed": false,
3386
+ "score": 0
3387
+ },
3388
+ "fn": "score",
3389
+ "id": "score/mw/partial/everything-marked-floors-at-zero"
3390
+ },
3391
+ {
3392
+ "args": [
3393
+ "mark-the-words",
3394
+ {
3395
+ "id": "mw-past",
3396
+ "instructions": "Mark every verb in the past.",
3397
+ "schemaVersion": "1.0",
3398
+ "scoringStrategy": "partial",
3399
+ "targets": [
3400
+ {
3401
+ "occurrence": 1,
3402
+ "text": "went"
3403
+ },
3404
+ {
3405
+ "text": "bought"
3406
+ },
3407
+ {
3408
+ "text": "had never gone"
3409
+ },
3410
+ {
3411
+ "occurrence": 2,
3412
+ "text": "went"
3413
+ }
3414
+ ],
3415
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3416
+ "title": "The past",
3417
+ "type": "mark-the-words"
3418
+ },
3419
+ {
3420
+ "marked": [],
3421
+ "type": "mark-the-words"
3422
+ }
3423
+ ],
3424
+ "expect": {
3425
+ "details": [
3426
+ {
3427
+ "correctResponse": ["2"],
3428
+ "itemId": "t1",
3429
+ "learnerResponse": [],
3430
+ "outcome": "incorrect-omission",
3431
+ "weight": 1
3432
+ },
3433
+ {
3434
+ "correctResponse": ["7"],
3435
+ "itemId": "t2",
3436
+ "learnerResponse": [],
3437
+ "outcome": "incorrect-omission",
3438
+ "weight": 1
3439
+ },
3440
+ {
3441
+ "correctResponse": ["10", "11", "12"],
3442
+ "itemId": "t3",
3443
+ "learnerResponse": [],
3444
+ "outcome": "incorrect-omission",
3445
+ "weight": 1
3446
+ },
3447
+ {
3448
+ "correctResponse": ["17"],
3449
+ "itemId": "t4",
3450
+ "learnerResponse": [],
3451
+ "outcome": "incorrect-omission",
3452
+ "weight": 1
3453
+ }
3454
+ ],
3455
+ "feedback": null,
3456
+ "maxScore": 1,
3457
+ "passed": false,
3458
+ "score": 0
3459
+ },
3460
+ "fn": "score",
3461
+ "id": "score/mw/partial/nothing-marked"
3462
+ },
3463
+ {
3464
+ "args": [
3465
+ "mark-the-words",
3466
+ {
3467
+ "id": "mw-past",
3468
+ "instructions": "Mark every verb in the past.",
3469
+ "schemaVersion": "1.0",
3470
+ "scoringStrategy": "partial",
3471
+ "targets": [
3472
+ {
3473
+ "occurrence": 1,
3474
+ "text": "went"
3475
+ },
3476
+ {
3477
+ "text": "bought"
3478
+ },
3479
+ {
3480
+ "text": "had never gone"
3481
+ },
3482
+ {
3483
+ "occurrence": 2,
3484
+ "text": "went"
3485
+ }
3486
+ ],
3487
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3488
+ "title": "The past",
3489
+ "type": "mark-the-words"
3490
+ },
3491
+ {
3492
+ "marked": [2, 2, 7, -1, 1.5, 99, "3"],
3493
+ "type": "mark-the-words"
3494
+ }
3495
+ ],
3496
+ "expect": {
3497
+ "details": [
3498
+ {
3499
+ "correctResponse": ["2"],
3500
+ "itemId": "t1",
3501
+ "learnerResponse": ["2"],
3502
+ "outcome": "correct",
3503
+ "weight": 1
3504
+ },
3505
+ {
3506
+ "correctResponse": ["7"],
3507
+ "itemId": "t2",
3508
+ "learnerResponse": ["7"],
3509
+ "outcome": "correct",
3510
+ "weight": 1
3511
+ },
3512
+ {
3513
+ "correctResponse": ["10", "11", "12"],
3514
+ "itemId": "t3",
3515
+ "learnerResponse": [],
3516
+ "outcome": "incorrect-omission",
3517
+ "weight": 1
3518
+ },
3519
+ {
3520
+ "correctResponse": ["17"],
3521
+ "itemId": "t4",
3522
+ "learnerResponse": [],
3523
+ "outcome": "incorrect-omission",
3524
+ "weight": 1
3525
+ }
3526
+ ],
3527
+ "feedback": null,
3528
+ "maxScore": 1,
3529
+ "passed": false,
3530
+ "score": 0.5
3531
+ },
3532
+ "fn": "score",
3533
+ "id": "score/mw/partial/tampered-positions-ignored",
3534
+ "note": "A repeated, negative, fractional, out-of-range or non-number position marks nothing, right or wrong."
3535
+ },
3536
+ {
3537
+ "args": [
3538
+ "mark-the-words",
3539
+ {
3540
+ "id": "mw-past",
3541
+ "instructions": "Mark every verb in the past.",
3542
+ "schemaVersion": "1.0",
3543
+ "scoringStrategy": "all-or-nothing",
3544
+ "targets": [
3545
+ {
3546
+ "occurrence": 1,
3547
+ "text": "went"
3548
+ },
3549
+ {
3550
+ "text": "bought"
3551
+ },
3552
+ {
3553
+ "text": "had never gone"
3554
+ },
3555
+ {
3556
+ "occurrence": 2,
3557
+ "text": "went"
3558
+ }
3559
+ ],
3560
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3561
+ "title": "The past",
3562
+ "type": "mark-the-words"
3563
+ },
3564
+ {
3565
+ "marked": [2, 7, 10, 11, 12, 17],
3566
+ "type": "mark-the-words"
3567
+ }
3568
+ ],
3569
+ "expect": {
3570
+ "details": [
3571
+ {
3572
+ "correctResponse": ["2"],
3573
+ "itemId": "t1",
3574
+ "learnerResponse": ["2"],
3575
+ "outcome": "correct",
3576
+ "weight": 1
3577
+ },
3578
+ {
3579
+ "correctResponse": ["7"],
3580
+ "itemId": "t2",
3581
+ "learnerResponse": ["7"],
3582
+ "outcome": "correct",
3583
+ "weight": 1
3584
+ },
3585
+ {
3586
+ "correctResponse": ["10", "11", "12"],
3587
+ "itemId": "t3",
3588
+ "learnerResponse": ["10", "11", "12"],
3589
+ "outcome": "correct",
3590
+ "weight": 1
3591
+ },
3592
+ {
3593
+ "correctResponse": ["17"],
3594
+ "itemId": "t4",
3595
+ "learnerResponse": ["17"],
3596
+ "outcome": "correct",
3597
+ "weight": 1
3598
+ }
3599
+ ],
3600
+ "feedback": null,
3601
+ "maxScore": 1,
3602
+ "passed": true,
3603
+ "score": 1
3604
+ },
3605
+ "fn": "score",
3606
+ "id": "score/mw/all-or-nothing/all-found"
3607
+ },
3608
+ {
3609
+ "args": [
3610
+ "mark-the-words",
3611
+ {
3612
+ "id": "mw-past",
3613
+ "instructions": "Mark every verb in the past.",
3614
+ "schemaVersion": "1.0",
3615
+ "scoringStrategy": "all-or-nothing",
3616
+ "targets": [
3617
+ {
3618
+ "occurrence": 1,
3619
+ "text": "went"
3620
+ },
3621
+ {
3622
+ "text": "bought"
3623
+ },
3624
+ {
3625
+ "text": "had never gone"
3626
+ },
3627
+ {
3628
+ "occurrence": 2,
3629
+ "text": "went"
3630
+ }
3631
+ ],
3632
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3633
+ "title": "The past",
3634
+ "type": "mark-the-words"
3635
+ },
3636
+ {
3637
+ "marked": [2, 7, 10, 11, 12, 17, 0],
3638
+ "type": "mark-the-words"
3639
+ }
3640
+ ],
3641
+ "expect": {
3642
+ "details": [
3643
+ {
3644
+ "correctResponse": ["2"],
3645
+ "itemId": "t1",
3646
+ "learnerResponse": ["2"],
3647
+ "outcome": "correct",
3648
+ "weight": 1
3649
+ },
3650
+ {
3651
+ "correctResponse": ["7"],
3652
+ "itemId": "t2",
3653
+ "learnerResponse": ["7"],
3654
+ "outcome": "correct",
3655
+ "weight": 1
3656
+ },
3657
+ {
3658
+ "correctResponse": ["10", "11", "12"],
3659
+ "itemId": "t3",
3660
+ "learnerResponse": ["10", "11", "12"],
3661
+ "outcome": "correct",
3662
+ "weight": 1
3663
+ },
3664
+ {
3665
+ "correctResponse": ["17"],
3666
+ "itemId": "t4",
3667
+ "learnerResponse": ["17"],
3668
+ "outcome": "correct",
3669
+ "weight": 1
3670
+ },
3671
+ {
3672
+ "correctResponse": [],
3673
+ "itemId": "w0",
3674
+ "learnerResponse": ["0"],
3675
+ "outcome": "incorrect",
3676
+ "weight": 1
3677
+ }
3678
+ ],
3679
+ "feedback": null,
3680
+ "maxScore": 1,
3681
+ "passed": false,
3682
+ "score": 0
3683
+ },
3684
+ "fn": "score",
3685
+ "id": "score/mw/all-or-nothing/one-wrong-mark"
3686
+ },
3687
+ {
3688
+ "args": [
3689
+ {
3690
+ "id": "mw-past",
3691
+ "instructions": "Mark every verb in the past.",
3692
+ "schemaVersion": "1.0",
3693
+ "scoringStrategy": "partial",
3694
+ "targets": [
3695
+ {
3696
+ "occurrence": 1,
3697
+ "text": "went"
3698
+ },
3699
+ {
3700
+ "text": "bought"
3701
+ },
3702
+ {
3703
+ "text": "had never gone"
3704
+ },
3705
+ {
3706
+ "occurrence": 2,
3707
+ "text": "went"
3708
+ }
3709
+ ],
3710
+ "text": "Yesterday she went to the market and bought bread. She had never gone there before, but she went again.",
3711
+ "title": "The past",
3712
+ "type": "mark-the-words"
3713
+ },
3714
+ {
3715
+ "marked": [2, 7, 10, 11, 12, 1],
3716
+ "type": "mark-the-words"
3717
+ }
3718
+ ],
3719
+ "expect": {
3720
+ "details": [
3721
+ {
3722
+ "correctResponse": ["2"],
3723
+ "itemId": "t1",
3724
+ "learnerResponse": ["2"],
3725
+ "outcome": "correct",
3726
+ "weight": 1
3727
+ },
3728
+ {
3729
+ "correctResponse": ["7"],
3730
+ "itemId": "t2",
3731
+ "learnerResponse": ["7"],
3732
+ "outcome": "correct",
3733
+ "weight": 1
3734
+ },
3735
+ {
3736
+ "correctResponse": ["10", "11", "12"],
3737
+ "itemId": "t3",
3738
+ "learnerResponse": ["10", "11", "12"],
3739
+ "outcome": "correct",
3740
+ "weight": 1
3741
+ },
3742
+ {
3743
+ "correctResponse": ["17"],
3744
+ "itemId": "t4",
3745
+ "learnerResponse": [],
3746
+ "outcome": "incorrect-omission",
3747
+ "weight": 1
3748
+ },
3749
+ {
3750
+ "correctResponse": [],
3751
+ "itemId": "w1",
3752
+ "learnerResponse": ["1"],
3753
+ "outcome": "incorrect",
3754
+ "weight": 1
3755
+ }
3756
+ ],
3757
+ "feedback": null,
3758
+ "maxScore": 1,
3759
+ "passed": false,
3760
+ "score": 0.5,
3761
+ "status": "scored"
3762
+ },
3763
+ "fn": "evaluate",
3764
+ "id": "evaluate/mw/scored"
3765
+ },
3766
+ {
3767
+ "args": [
3768
+ {
3769
+ "id": "mt-headings",
3770
+ "instructions": "Choose the correct heading for each paragraph.",
3771
+ "optionUse": "once",
3772
+ "options": [
3773
+ {
3774
+ "id": "i",
3775
+ "label": "i",
3776
+ "text": "A costly experiment"
3777
+ },
3778
+ {
3779
+ "id": "ii",
3780
+ "label": "ii",
3781
+ "text": "Why the trams disappeared"
3782
+ },
3783
+ {
3784
+ "id": "iii",
3785
+ "label": "iii",
3786
+ "text": "A return nobody expected"
3787
+ },
3788
+ {
3789
+ "id": "iv",
3790
+ "label": "iv",
3791
+ "text": "The view from the passengers"
3792
+ }
3793
+ ],
3794
+ "optionsTitle": "List of Headings",
3795
+ "prompts": [
3796
+ {
3797
+ "correctOptionId": "ii",
3798
+ "id": "pA",
3799
+ "text": "Paragraph A"
3800
+ },
3801
+ {
3802
+ "correctOptionId": "iii",
3803
+ "id": "pB",
3804
+ "text": "Paragraph B"
3805
+ },
3806
+ {
3807
+ "correctOptionId": "i",
3808
+ "feedback": "Look at the second sentence.",
3809
+ "id": "pC",
3810
+ "text": "Paragraph C"
3811
+ }
3812
+ ],
3813
+ "schemaVersion": "1.0",
3814
+ "scoringStrategy": "partial",
3815
+ "title": "The return of the tram",
3816
+ "type": "matching"
3817
+ },
3818
+ {
3819
+ "matches": {
3820
+ "pA": "ii",
3821
+ "pB": "iii",
3822
+ "pC": "iv"
3823
+ },
3824
+ "type": "matching"
3825
+ }
3826
+ ],
3827
+ "expect": {
3828
+ "details": [
3829
+ {
3830
+ "correctResponse": ["ii"],
3831
+ "itemId": "pA",
3832
+ "learnerResponse": ["ii"],
3833
+ "outcome": "correct",
3834
+ "weight": 1
3835
+ },
3836
+ {
3837
+ "correctResponse": ["iii"],
3838
+ "itemId": "pB",
3839
+ "learnerResponse": ["iii"],
3840
+ "outcome": "correct",
3841
+ "weight": 1
3842
+ },
3843
+ {
3844
+ "correctResponse": ["i"],
3845
+ "itemId": "pC",
3846
+ "learnerResponse": ["iv"],
3847
+ "outcome": "incorrect",
3848
+ "weight": 1
3849
+ }
3850
+ ],
3851
+ "feedback": null,
3852
+ "maxScore": 1,
3853
+ "passed": false,
3854
+ "score": 0.6666666666666666,
3855
+ "status": "scored"
3856
+ },
3857
+ "fn": "evaluate",
3858
+ "id": "evaluate/mt/scored"
3859
+ },
2094
3860
  {
2095
3861
  "args": [
2096
3862
  "fill-in-the-blanks",