Expand Tests section with detailed explanation in README and BEDIENUNGSANLEITUNG
This commit is contained in:
parent
be09319fed
commit
1b87d7dcb4
3 changed files with 59 additions and 3 deletions
|
|
@ -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.
|
||||||
|
|
|
||||||
37
README.md
37
README.md
|
|
@ -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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue