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

@ -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 ## Lizenz
Dieses Projekt ist eine Open-Source-Lehr- und Lernressource. Dieses Projekt ist eine Open-Source-Lehr- und Lernressource.

View file

@ -57,10 +57,43 @@ Interaktive Visualisierung von 20 Sortieralgorithmen mit Schritt-für-Schritt-Da
## Tests ## Tests
```bash ```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.
--- ---

View file

@ -204,7 +204,7 @@
<div class="flex-1"></div> <div class="flex-1"></div>
<div class="text-center"> <div class="text-center">
<h1 class="title-text font-bold tracking-tight" style="color: var(--c-text); text-shadow: 0 0 40px rgba(74,124,255,0.3);"> <h1 class="title-text font-bold tracking-tight" style="color: var(--c-text); text-shadow: 0 0 40px rgba(74,124,255,0.3);">
Sortier-Algorithmen <span style="font-size: 0.45em; font-weight: 400; opacity: 0.5; vertical-align: middle;">v0.2.20</span> Sortier-Algorithmen <span style="font-size: 0.45em; font-weight: 400; opacity: 0.5; vertical-align: middle;">v0.2.21</span>
</h1> </h1>
<p class="text-muted text-sm mt-0.5">Interaktive Visualisierung mit schrittweiser Animation</p> <p class="text-muted text-sm mt-0.5">Interaktive Visualisierung mit schrittweiser Animation</p>
</div> </div>