mirror of
https://github.com/deunix-educ/aventuriers-des-mots.git
synced 2026-10-13 02:11:58 +02:00
Add settings screen and adult space with progress report and save export/restore (0.4.0)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
extends GutTest
|
||||
## Tests de ProgressReport : synthese pour l'adulte et detection des notions a
|
||||
## retravailler.
|
||||
|
||||
|
||||
func _save_with_skill(state: Dictionary) -> Dictionary:
|
||||
var save := SaveFactory.new_save("test_report", "Lea", "CE1")
|
||||
save["skills"] = {"accord_groupe_nominal": state}
|
||||
return save
|
||||
|
||||
|
||||
func _state(status: String, results: Array, hints: Array) -> Dictionary:
|
||||
return {
|
||||
"status": status,
|
||||
"recent_results": results,
|
||||
"recent_hint_used": hints,
|
||||
"sessions_succeeded": [],
|
||||
"formats_succeeded": [],
|
||||
"last_session_practiced": 0,
|
||||
"review_interval_index": 0,
|
||||
"next_review_session": 0,
|
||||
}
|
||||
|
||||
|
||||
func test_empty_profile_has_no_skills_and_zero_counts() -> void:
|
||||
var report := ProgressReport.build(SaveFactory.new_save("test_report", "Lea", "CE1"), 9, 10)
|
||||
assert_eq(report["stars"], 0)
|
||||
assert_eq(report["missions_done"], 0)
|
||||
assert_eq(report["missions_total"], 9)
|
||||
assert_eq(report["items_total"], 10)
|
||||
assert_eq(report["skills"].size(), 0)
|
||||
|
||||
|
||||
func test_counts_missions_stars_and_items() -> void:
|
||||
var save := SaveFactory.new_save("test_report", "Lea", "CE1")
|
||||
save["mission_results"] = {"m1": {"best_stars": 3, "last_stars": 3, "completions": 1}}
|
||||
save["rewards"] = {"stars": 3, "items": ["a", "b"]}
|
||||
var report := ProgressReport.build(save, 9, 10)
|
||||
assert_eq(report["missions_done"], 1)
|
||||
assert_eq(report["stars"], 3)
|
||||
assert_eq(report["items_owned"], 2)
|
||||
|
||||
|
||||
func test_skill_with_low_recent_success_needs_work() -> void:
|
||||
var save := _save_with_skill(
|
||||
_state("en_acquisition", [false, false, true, false], [true, false, false, false])
|
||||
)
|
||||
var row: Dictionary = ProgressReport.build(save, 9, 10)["skills"][0]
|
||||
assert_eq(row["attempts"], 4)
|
||||
assert_eq(row["successes"], 1)
|
||||
assert_eq(row["hints_used"], 1)
|
||||
assert_true(row["needs_work"])
|
||||
|
||||
|
||||
func test_skill_with_good_results_does_not_need_work() -> void:
|
||||
var save := _save_with_skill(_state("en_consolidation", [true, true, false, true], []))
|
||||
var row: Dictionary = ProgressReport.build(save, 9, 10)["skills"][0]
|
||||
assert_false(row["needs_work"])
|
||||
|
||||
|
||||
func test_too_few_attempts_is_not_a_difficulty() -> void:
|
||||
var save := _save_with_skill(_state("en_acquisition", [false, false], []))
|
||||
var row: Dictionary = ProgressReport.build(save, 9, 10)["skills"][0]
|
||||
assert_false(row["needs_work"])
|
||||
|
||||
|
||||
func test_status_a_reviser_always_needs_work() -> void:
|
||||
var save := _save_with_skill(_state("a_reviser", [true], []))
|
||||
var row: Dictionary = ProgressReport.build(save, 9, 10)["skills"][0]
|
||||
assert_true(row["needs_work"])
|
||||
Reference in New Issue
Block a user