Never repeat an exercise within a mission; remove near-duplicate sentences (0.5.5)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-12 10:45:31 +02:00
parent f9600cfcf0
commit 409d8b46c5
24 changed files with 408 additions and 104 deletions
+22
View File
@@ -31,3 +31,25 @@ func test_returns_the_only_candidate_even_if_excluded() -> void:
var candidates: Array[Dictionary] = [{"id": "a"}]
var picked: Dictionary = ExercisePicker.pick(candidates, "a", rng)
assert_eq(picked["id"], "a")
func test_pick_unseen_never_repeats_while_others_remain() -> void:
var rng := RandomNumberGenerator.new()
rng.seed = 3
var candidates: Array[Dictionary] = [{"id": "a"}, {"id": "b"}, {"id": "c"}]
var seen: Array[String] = []
for _i in range(3):
var picked: Dictionary = ExercisePicker.pick_unseen(candidates, candidates, seen, rng)
assert_false(seen.has(picked["id"]), "un exercice deja vu a ete redonne")
seen.append(picked["id"])
assert_eq(seen.size(), 3)
func test_pick_unseen_falls_back_to_other_difficulty_then_to_repeat() -> void:
var rng := RandomNumberGenerator.new()
var preferred: Array[Dictionary] = [{"id": "a"}]
var all: Array[Dictionary] = [{"id": "a"}, {"id": "b"}]
var picked: Dictionary = ExercisePicker.pick_unseen(preferred, all, ["a"], rng)
assert_eq(picked["id"], "b")
var again: Dictionary = ExercisePicker.pick_unseen(preferred, all, ["a", "b"], rng)
assert_true(["a", "b"].has(again["id"]))