44 lines
2.7 KiB
JavaScript
44 lines
2.7 KiB
JavaScript
// 🧪 Testsuite: JS 04 - Arrays, Sets & Maps
|
|
|
|
// Test 1: verdoppeln
|
|
assert.deepStrictEqual(verdoppeln([1, 2, 3]), [2, 4, 6], "verdoppeln([1, 2, 3]) sollte [2, 4, 6] sein");
|
|
assert.deepStrictEqual(verdoppeln([]), [], "verdoppeln([]) sollte [] sein");
|
|
assert.deepStrictEqual(verdoppeln([-2, 0, 5]), [-4, 0, 10], "verdoppeln([-2, 0, 5]) sollte [-4, 0, 10] sein");
|
|
|
|
// Test 2: filterGeradeZahlen
|
|
assert.deepStrictEqual(filterGeradeZahlen([1, 2, 3, 4, 5, 6]), [2, 4, 6], "filterGeradeZahlen() filtert unvollständig");
|
|
assert.deepStrictEqual(filterGeradeZahlen([1, 3, 5]), [], "filterGeradeZahlen([1, 3, 5]) sollte [] sein");
|
|
assert.deepStrictEqual(filterGeradeZahlen([]), [], "filterGeradeZahlen([]) sollte [] sein");
|
|
|
|
// Test 3: arraySumme
|
|
assert.strictEqual(arraySumme([10, 20, 30]), 60, "arraySumme([10, 20, 30]) sollte 60 sein");
|
|
assert.strictEqual(arraySumme([]), 0, "arraySumme([]) sollte 0 sein");
|
|
assert.strictEqual(arraySumme([5]), 5, "arraySumme([5]) sollte 5 sein");
|
|
|
|
// Test 4: entferneDuplikate (Set)
|
|
assert.deepStrictEqual(entferneDuplikate([1, 2, 2, 3, 1, 4]), [1, 2, 3, 4], "entferneDuplikate([1, 2, 2, 3, 1, 4]) sollte [1, 2, 3, 4] sein");
|
|
assert.deepStrictEqual(entferneDuplikate(["a", "b", "a", "c", "b"]), ["a", "b", "c"], "entferneDuplikate mit Strings fehlerhaft");
|
|
assert.deepStrictEqual(entferneDuplikate([]), [], "entferneDuplikate([]) sollte [] sein");
|
|
|
|
// Test 5: erstelleWoerterbuch (Map)
|
|
const wb = erstelleWoerterbuch([["de", "Hallo"], ["en", "Hello"], ["es", "Hola"]]);
|
|
assert.ok(wb instanceof Map, "erstelleWoerterbuch() muss eine Instanz von Map zurückgeben");
|
|
assert.strictEqual(wb.size, 3, "Map sollte 3 Einträge enthalten");
|
|
assert.strictEqual(wb.get("de"), "Hallo", "Map.get('de') sollte 'Hallo' sein");
|
|
assert.strictEqual(wb.get("en"), "Hello", "Map.get('en') sollte 'Hello' sein");
|
|
assert.strictEqual(wb.get("es"), "Hola", "Map.get('es') sollte 'Hola' sein");
|
|
assert.strictEqual(wb.has("fr"), false, "Map.has('fr') sollte false sein");
|
|
|
|
// Test 6: zaehleHaeufigkeiten (Map)
|
|
const counts = zaehleHaeufigkeiten(["apfel", "banane", "apfel", "orange", "banane", "apfel"]);
|
|
assert.ok(counts instanceof Map, "zaehleHaeufigkeiten() muss eine Map zurückgeben");
|
|
assert.strictEqual(counts.size, 3, "Map sollte 3 unterschiedliche Früchte enthalten");
|
|
assert.strictEqual(counts.get("apfel"), 3, "Apfel sollte 3x gezählt werden");
|
|
assert.strictEqual(counts.get("banane"), 2, "Banane sollte 2x gezählt werden");
|
|
assert.strictEqual(counts.get("orange"), 1, "Orange sollte 1x gezählt werden");
|
|
|
|
const emptyCounts = zaehleHaeufigkeiten([]);
|
|
assert.ok(emptyCounts instanceof Map, "Leeres Array muss eine leere Map zurückgeben");
|
|
assert.strictEqual(emptyCounts.size, 0, "Leere Map sollte size 0 haben");
|
|
|
|
console.log("✅ Alle 21 JavaScript Tests in JS 04 erfolgreich bestanden!");
|