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:
Denis Defolie
2026-10-11 22:49:01 +02:00
parent 97a065879c
commit dbf513e686
45 changed files with 1390 additions and 14 deletions
+33
View File
@@ -0,0 +1,33 @@
extends GutTest
## Tests d'AdultGate : le calcul est dans les bornes et la reponse est exacte.
func test_challenge_is_within_bounds_and_answer_matches() -> void:
var rng := RandomNumberGenerator.new()
rng.seed = 42
for _i in range(50):
var challenge := AdultGate.make_challenge(rng)
assert_between(challenge["a"], AdultGate.MIN_FACTOR_A, AdultGate.MAX_FACTOR_A)
assert_between(challenge["b"], AdultGate.MIN_FACTOR_B, AdultGate.MAX_FACTOR_B)
assert_eq(challenge["answer"], challenge["a"] * challenge["b"])
func test_same_seed_gives_same_challenge() -> void:
var first := RandomNumberGenerator.new()
first.seed = 7
var second := RandomNumberGenerator.new()
second.seed = 7
assert_eq(AdultGate.make_challenge(first), AdultGate.make_challenge(second))
func test_is_correct_accepts_exact_answer_with_spaces() -> void:
var challenge := {"a": 13, "b": 7, "answer": 91}
assert_true(AdultGate.is_correct(challenge, "91"))
assert_true(AdultGate.is_correct(challenge, " 91 "))
func test_is_correct_rejects_wrong_or_non_numeric() -> void:
var challenge := {"a": 13, "b": 7, "answer": 91}
assert_false(AdultGate.is_correct(challenge, "90"))
assert_false(AdultGate.is_correct(challenge, ""))
assert_false(AdultGate.is_correct(challenge, "quatre-vingt-onze"))