diff --git a/BEDIENUNGSANLEITUNG.md b/BEDIENUNGSANLEITUNG.md index 5f85e33..234768a 100644 --- a/BEDIENUNGSANLEITUNG.md +++ b/BEDIENUNGSANLEITUNG.md @@ -314,6 +314,29 @@ Algorithmen mit besonderen Eigenschaften oder Anwendungsfällen. --- +## Tests + +```bash +node test_algorithms.js # Kurzbericht +node test_algorithms.js --verbose # Detaillierte Ausgabe +``` + +Das Testskript führt **automatisierte Korrektheitstests** für alle Sortieralgorithmen durch: + +**Haupt-Tests** — 19 Sortier-Algorithmen × 5 Presets × 2 Größen = 190 Tests. Für jeden: `done`-Step, sortiert, Länge erhalten. + +**Shuffle-Tests** — 10 Tests. Prüft dass die Werte permutiert aber erhalten bleiben. + +**Edge Cases** — Leeres Array und Single-Element. + +**Performance-Test** — 6 Algorithmen mit 100 Elementen. + +**Gesamt: 198 Tests** — alle müssen bestehen. + +Das Skript extrahiert den JavaScript-Code aus `sorting_visualization.html`, führt ihn in einer isolierten Node.js-VM aus und ruft `buildSteps(algo)` auf. Die Funktion ist rein funktional — keine DOM-Manipulation — und daher unit-testbar. + +--- + ## Lizenz Dieses Projekt ist eine Open-Source-Lehr- und Lernressource. diff --git a/README.md b/README.md index 5603fc8..a1ebd6b 100644 --- a/README.md +++ b/README.md @@ -57,10 +57,43 @@ Interaktive Visualisierung von 20 Sortieralgorithmen mit Schritt-für-Schritt-Da ## Tests ```bash -node test_algorithms.js +node test_algorithms.js # Kurzbericht +node test_algorithms.js --verbose # Detaillierte Ausgabe ``` -Alle 198 Tests müssen bestehen. +### Was wird getestet? + +Das Testskript führt **automatisierte Korrektheitstests** für alle Sortieralgorithmen durch: + +**1. Haupt-Tests (2 Größen × 5 Presets × 19 Sortier-Algorithmen = 190)** +Für jeden Algorithmus (außer Shuffle) wird geprüft: +- Der letzte Step hat `type === 'done'` +- Das Array ist vollständig sortiert +- Die Array-Länge bleibt erhalten + +**2. Shuffle-Tests (10 Tests)** +Shuffle ist speziell — prüft stattdessen: +- Länge bleibt erhalten +- Alle Original-Werte sind noch vorhanden + +**3. Edge Cases (2 Tests)** +- Leeres Array → Bubble Sort +- Single-Element `[42]` → Bubble Sort + +**4. Performance-Test (6 Algorithmen × 100 Elemente)** +- Sortiert das Array korrekt in akzeptabler Zeit + +**Gesamt: 198 Tests** + +### Technische Details + +Das Skript: +1. **Extrahiert** den JavaScript-Code aus `sorting_visualization.html` +2. **Führt** ihn in einer isolierten Node.js-VM aus (mit gemockten DOM-Elementen) +3. **Ruft** `buildSteps(algo)` auf — die Funktion die alle Steps für die Animation erzeugt +4. **Verifiziert** dass der letzte Step das Array korrekt sortiert hat + +Die `buildSteps`-Funktion ist rein funktional und gibt nur Step-Objekte zurück — keine DOM-Manipulation. Das macht sie unit-testbar. --- diff --git a/sorting_visualization.html b/sorting_visualization.html index 60f1de5..d07d7e7 100644 --- a/sorting_visualization.html +++ b/sorting_visualization.html @@ -204,7 +204,7 @@

- Sortier-Algorithmen v0.2.20 + Sortier-Algorithmen v0.2.21

Interaktive Visualisierung mit schrittweiser Animation