Expand Tests section with detailed explanation in README and BEDIENUNGSANLEITUNG

This commit is contained in:
Dieter Schlüter 2026-04-07 03:34:32 +02:00
commit 1b87d7dcb4
3 changed files with 59 additions and 3 deletions

View file

@ -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.
---