Add several boards per level, CM1/CM2 levels and the CE1 'plage des sons' pilot board (0.6.0)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-12 11:05:00 +02:00
parent 0e48b1995e
commit d0380a76af
118 changed files with 2421 additions and 111 deletions
+14 -2
View File
@@ -15,7 +15,7 @@ func test_unknown_rule_returns_empty_dictionary() -> void:
func test_missions_are_loaded_and_sorted() -> void:
var missions := ExerciseEngine.get_missions()
assert_eq(missions.size(), 21)
assert_eq(missions.size(), 30)
var ids: Array = missions.map(func(m: Dictionary) -> String: return m["mission_id"])
assert_eq(ids, ids.duplicate()) # trivialement vrai, documente l'ordre stable
assert_true(ids.has("mission_01_pre_des_mots"))
@@ -24,11 +24,23 @@ func test_missions_are_loaded_and_sorted() -> void:
func test_missions_are_filtered_by_the_level_of_their_rule() -> void:
assert_eq(ExerciseEngine.get_missions_for_level("CE1").size(), 9)
assert_eq(ExerciseEngine.get_missions_for_level("CE1").size(), 18)
assert_eq(ExerciseEngine.get_missions_for_level("CE2").size(), 12)
assert_eq(ExerciseEngine.get_missions_for_level("CM1").size(), 0)
func test_regions_are_ordered_and_hold_their_missions() -> void:
var ce1 := ExerciseEngine.get_regions_for_level("CE1")
assert_eq(ce1.size(), 2)
assert_eq(ce1[0]["region_id"], "foret_des_accords")
assert_eq(ce1[1]["region_id"], "plage_des_sons")
assert_eq(ExerciseEngine.get_missions_for_region("foret_des_accords").size(), 9)
assert_eq(ExerciseEngine.get_missions_for_region("plage_des_sons").size(), 9)
assert_eq(ExerciseEngine.backdrop_for_rule("regle_s_ss"), "beach")
assert_eq(ExerciseEngine.backdrop_for_rule("regle_pluriel_nom"), "forest")
assert_eq(ExerciseEngine.backdrop_for_rule("regle_homophone_a_a"), "marsh")
func test_reward_catalog_is_loaded_and_sorted_by_threshold() -> void:
var items := ExerciseEngine.get_reward_items()
assert_eq(items.size(), 10)