"""Tests Vergleichs-Diffs (triviale ID-Tausche ausfiltern).""" from planning_exercise_path_builder import ( _build_progression_slot_diffs, _filter_trivial_slot_diffs, ) def test_filter_trivial_slot_diffs_same_title_different_id(): diffs = [ { "roadmap_major_step_index": 1, "baseline_exercise_id": 10, "baseline_title": "Rhythmuswechsel in der Kumite-Beinarbeit", "proposed_exercise_id": 99, "proposed_title": "Rhythmuswechsel in der Kumite-Beinarbeit", } ] assert _filter_trivial_slot_diffs(diffs) == [] def test_filter_trivial_slot_diffs_keeps_real_title_change(): diffs = [ { "roadmap_major_step_index": 1, "baseline_exercise_id": 10, "baseline_title": "Alt", "proposed_exercise_id": 99, "proposed_title": "Neu", } ] filtered = _filter_trivial_slot_diffs(diffs) assert len(filtered) == 1 assert filtered[0]["proposed_title"] == "Neu" def test_build_slot_diffs_then_filter(): baseline = [ {"roadmap_major_step_index": 0, "exercise_id": 1, "title": "A"}, {"roadmap_major_step_index": 1, "exercise_id": 10, "title": "Gleich"}, ] proposed = [ {"roadmap_major_step_index": 0, "exercise_id": 1, "title": "A"}, {"roadmap_major_step_index": 1, "exercise_id": 77, "title": "Gleich"}, ] raw = _build_progression_slot_diffs(baseline, proposed) assert len(raw) == 1 assert _filter_trivial_slot_diffs(raw) == []