This commit is contained in:
team3
2026-07-24 11:23:18 +02:00
parent cb68cd671b
commit 1b054497ed
49 changed files with 935 additions and 408 deletions

View File

@@ -32,3 +32,37 @@ def test_ziele_dedup_verschont_verschiedene():
assert struktur._ziele_dedup(topic) == 0
assert db.one("SELECT COUNT(*) c FROM lernziele WHERE topic=?",
topic)["c"] == 2
def test_ziele_dedup_facetten_paraphrase():
"""Audit: Ganz-Satz-Jaccard kam nie über 0.36 — der Inhaltswort-Kern
(Floskeln raus) merged Paraphrasen desselben Soll-Punkts."""
topic = topic_anlegen()
s = db.insert("soll", topic=topic, punkt="P", status="bestaetigt")
db.insert("lernziele", topic=topic, titel="Wirkung verstehen", soll_id=s,
text="Der Lernende kann die Wirkung der Technik verstehen.")
db.insert("lernziele", topic=topic, titel="Wirkung einordnen", soll_id=s,
text="Der Lernende kann Wirkung und Grenzen der Technik einordnen.")
assert struktur._ziele_dedup(topic) == 1
def test_ziele_dedup_nur_gleicher_soll():
topic = topic_anlegen()
s1 = db.insert("soll", topic=topic, punkt="P1", status="bestaetigt")
s2 = db.insert("soll", topic=topic, punkt="P2", status="bestaetigt")
db.insert("lernziele", topic=topic, titel="Wirkung verstehen", soll_id=s1,
text="Der Lernende kann die Wirkung der Technik verstehen.")
db.insert("lernziele", topic=topic, titel="Wirkung einordnen", soll_id=s2,
text="Der Lernende kann Wirkung und Grenzen der Technik einordnen.")
assert struktur._ziele_dedup(topic) == 0 # andere Soll-Punkte → kein Merge
def test_baustein_min_wird_erzwungen():
"""Audit: 10 Atome → 8 „Teil"-Gruppen mit 1-2 Atomen. MIN-Merge macht
daraus Gruppen im Band, Quellreihenfolge bleibt."""
from backend import config
gruppen = [[{"id": i}] for i in range(8)]
aus = struktur._min_erzwingen(gruppen)
assert all(len(g) >= config.BAUSTEIN_MIN_ATOME for g in aus)
assert all(len(g) <= config.BAUSTEIN_MAX_ATOME for g in aus)
assert [a["id"] for g in aus for a in g] == list(range(8))