From 6f593e05b2ce3e0324c6ec2f7d2da0c6358e35e2 Mon Sep 17 00:00:00 2001 From: Ramon Date: Tue, 21 Jul 2026 22:01:41 +0200 Subject: [PATCH] fix: corrigeer woordplaatjes in taalbibliotheek (v0.4.44-beta) --- VERSION | 2 +- public/js/core.js | 2 +- public/js/data.js | 84 ++++++++++++++++++++++++++++++++++- test/language-library.test.js | 23 ++++++++++ 4 files changed, 107 insertions(+), 4 deletions(-) diff --git a/VERSION b/VERSION index 22314b3..9080e31 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.4.43-beta +0.4.44-beta diff --git a/public/js/core.js b/public/js/core.js index bab0a9c..8b73329 100644 --- a/public/js/core.js +++ b/public/js/core.js @@ -2,7 +2,7 @@ "use strict"; /* version โ€” shown until /api/version resolves (or if the fetch fails, e.g. offline). Kept in sync by hand with the VERSION file at the repo root on every release. */ -const VERSION = "0.4.43-beta"; +const VERSION = "0.4.44-beta"; (function(){ const tag = document.getElementById("verTag"); tag.textContent = "v"+VERSION; diff --git a/public/js/data.js b/public/js/data.js index 4b24da1..1445b73 100644 --- a/public/js/data.js +++ b/public/js/data.js @@ -411,6 +411,85 @@ const LANGUAGE_CONCEPTS = [ ["season","time","seizoen","season","๐Ÿ"] ].map(([id,theme,nl,en,pic])=>({id,theme,nl,en,pic})); +/* Gecontroleerde Nederlandse beeldcorrecties. Bestaande handgekozen emoji + blijven de terugval; deze lijst corrigeert polyseme woorden en geeft veel + voorkomende concrete woorden een specifieker beeld. */ +const LANGUAGE_PICTURE_EXACT=Object.freeze({ + groentekraam:"๐Ÿฅ•๐Ÿช",veehouderij:"๐Ÿ„",wastafel:"๐Ÿšฐ",woonkamermeubel:"๐Ÿ›‹๏ธ",badkamertegel:"๐Ÿšฟ",prullenbak:"๐Ÿ—‘๏ธ", + tekstproductie:"โœ๏ธ๐Ÿ“„",verdrietverwerking:"๐Ÿ˜ข๐Ÿง ",bezorgd:"๐Ÿ˜Ÿ",ouderverzorging:"๐Ÿ‘ฉโค๏ธ",spierkracht:"๐Ÿ’ช", + schoolslag:"๐ŸŠ",wedstrijdreglement:"๐Ÿ€๐Ÿ“‹",toneelspeler:"๐ŸŽญ",spellingspatroon:"๐Ÿ”ค",meetinstrument:"๐Ÿ“", + lentebloem:"๐ŸŒผ",zomerdag:"๐ŸŒž",herfstblad:"๐Ÿ‚",winterjas:"โ›„",jaargetijde:"๐Ÿ",gitaarspel:"๐ŸŽธ", + ruimtestation:"๐Ÿ›ฐ๏ธ",boekje:"๐Ÿ“–",muziek:"๐ŸŽถ",onderzoeksverslag:"๐Ÿงช๐Ÿ“‹",grondrecht:"โš–๏ธ", + bol:"๐Ÿฅฏ",toast:"๐Ÿž",korst:"๐Ÿž",kruimel:"๐Ÿž",karnemelk:"๐Ÿฅ›",room:"๐Ÿฅ›",boter:"๐Ÿงˆ",vla:"๐Ÿฎ", + brie:"๐Ÿง€",plak:"๐Ÿง€",friet:"๐ŸŸ",puree:"๐Ÿฅ”",schil:"๐Ÿฅ”",knol:"๐Ÿฅ”",prei:"๐Ÿฅฌ",kool:"๐Ÿฅฌ",boon:"๐Ÿซ˜",erwtje:"๐Ÿซ›", + koek:"๐Ÿช",snoep:"๐Ÿฌ",wafel:"๐Ÿง‡",gebakje:"๐Ÿง",slagroom:"๐Ÿฐ", + stam:"๐ŸŒณ",tak:"๐ŸŒฟ",wortel:"๐ŸŒฑ",stengel:"๐ŸŒฑ",knop:"๐ŸŒท",boeket:"๐Ÿ’",druppel:"๐Ÿ’ง",plas:"๐Ÿ’ฆ",sloot:"๐Ÿž๏ธ",beek:"๐Ÿž๏ธ", + licht:"โ˜€๏ธ",schaduw:"โ—",bui:"๐ŸŒฆ๏ธ",vorst:"๐Ÿฅถ",hagel:"๐ŸŒจ๏ธ",vlok:"โ„๏ธ",aarde:"๐ŸŒ",grond:"๐ŸŸซ",kiem:"๐ŸŒฑ", + bus:"๐ŸšŒ",taxi:"๐Ÿš•",rit:"๐Ÿ›ฃ๏ธ",band:"๐Ÿ›ž",step:"๐Ÿ›ด",pedaal:"๐Ÿšฒ",bel:"๐Ÿ””",stuur:"๐Ÿšฒ",rail:"๐Ÿ›ค๏ธ",spoor:"๐Ÿ›ค๏ธ", + roeispaan:"๐Ÿšฃ",vleugel:"โœˆ๏ธ",piloot:"๐Ÿง‘โ€โœˆ๏ธ",vlucht:"โœˆ๏ธ",pad:"๐Ÿฅพ",bocht:"โ†ช๏ธ",streep:"โž–",file:"๐Ÿš—๐Ÿš—",route:"๐Ÿ—บ๏ธ", + kast:"๐Ÿ—„๏ธ",nachtkast:"๐Ÿ—„๏ธ",slaapkamer:"๐Ÿ›๏ธ",slaapkamerraam:"๐ŸชŸ",flat:"๐Ÿข",hut:"๐Ÿ›–",dak:"๐Ÿ ",muur:"๐Ÿงฑ",deken:"๐Ÿ›๏ธ",kussen:"๐Ÿ›๏ธ",kruk:"๐Ÿช‘",slot:"๐Ÿ”’",sleutel:"๐Ÿ”‘", + pan:"๐Ÿณ",pot:"๐Ÿฒ",kom:"๐Ÿฅฃ",lepel:"๐Ÿฅ„",bad:"๐Ÿ›",douche:"๐Ÿšฟ",wc:"๐Ÿšฝ",kraan:"๐Ÿšฐ",zeep:"๐Ÿงผ", + stof:"๐Ÿซง",vuil:"๐Ÿ—‘๏ธ",bezem:"๐Ÿงน",dweil:"๐Ÿงฝ",spons:"๐Ÿงฝ", + duim:"๐Ÿ‘",vinger:"โ˜๏ธ",nagel:"๐Ÿ’…",pols:"โŒš",teen:"๐Ÿฆถ",hiel:"๐Ÿฆถ",enkel:"๐Ÿฆต",knie:"๐Ÿฆต", + wang:"๐Ÿ™‚",kin:"๐Ÿ™‚",nek:"๐Ÿงฃ",keel:"๐Ÿ—ฃ๏ธ",lip:"๐Ÿ‘„",kies:"๐Ÿฆท",tong:"๐Ÿ‘…",speeksel:"๐Ÿ’ง",gebit:"๐Ÿ˜", + trui:"๐Ÿ‘•",broek:"๐Ÿ‘–",rok:"๐Ÿ‘—",long:"๐Ÿซ",bloed:"๐Ÿฉธ",bot:"๐Ÿฆด",spier:"๐Ÿ’ช",skelet:"๐Ÿฆด", + bewegingsapparaat:"๐Ÿฆด",bewegingsrichting:"๐Ÿงญ",lichaamsbeweging:"๐Ÿคธ",bewegingsreeks:"๐Ÿ”„",bewegingsoefening:"๐Ÿคธ",bewegingspatroon:"๐Ÿ’ƒ",gaan:"๐Ÿšถ",stap:"๐Ÿ‘ฃ",staan:"๐Ÿง",zitten:"๐Ÿช‘",racen:"๐Ÿ",sprinten:"๐Ÿƒ",haasten:"โฉ",vluchten:"๐Ÿƒ", + hupsen:"๐Ÿ‡",bukken:"๐Ÿ™‡",rollen:"๐Ÿคธ",draaien:"๐Ÿ”„",blad:"๐Ÿ“„",zin:"๐Ÿ“",tekst:"๐Ÿ“„",schrift:"๐Ÿ““", + praten:"๐Ÿ—ฃ๏ธ",zeggen:"๐Ÿ’ฌ",vragen:"โ“",roepen:"๐Ÿ“ฃ",fluisteren:"๐Ÿคซ",delen:"๐Ÿคฒ",geven:"๐ŸŽ",halen:"๐Ÿ“ฅ",brengen:"๐Ÿ“ค", + leuk:"๐Ÿ˜€",fijn:"๐Ÿ˜Š",glimlach:"๐Ÿ™‚",sip:"๐Ÿ˜”",verdriet:"๐Ÿ˜ข",pijn:"๐Ÿค•",kwaad:"๐Ÿ˜ ",ruzie:"๐Ÿ’ข",zorgen:"๐Ÿ˜Ÿ", + rust:"๐Ÿง˜",kalm:"๐Ÿ™‚",stil:"๐Ÿคซ",zacht:"๐Ÿชถ",ademen:"๐ŸŒฌ๏ธ",dapper:"๐Ÿฆธ",durven:"๐Ÿ’ช",winnen:"๐Ÿ†",raar:"๐Ÿค”",wauw:"๐Ÿคฉ", + gezin:"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",ouders:"๐Ÿ‘ช",mama:"๐Ÿ‘ฉ",tante:"๐Ÿ‘ฉ",dochter:"๐Ÿ‘ง",papa:"๐Ÿ‘จ",oom:"๐Ÿ‘จ",zoon:"๐Ÿ‘ฆ", + jongen:"๐Ÿ‘ฆ",meisje:"๐Ÿ‘ง",kleuter:"๐Ÿง’",puber:"๐Ÿง‘",maat:"๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘",buur:"๐Ÿ˜๏ธ",gast:"๐Ÿง‘",juf:"๐Ÿ‘ฉโ€๐Ÿซ",meester:"๐Ÿ‘จโ€๐Ÿซ", + leraar:"๐Ÿง‘โ€๐Ÿซ",mentor:"๐Ÿง‘โ€๐Ÿซ",coach:"๐Ÿง‘โ€๐Ÿซ",team:"๐Ÿ‘ฅ",klas:"๐Ÿซ",paar:"๐Ÿ‘ซ",kring:"โญ•", + kaart:"๐Ÿƒ",doel:"๐Ÿฅ…",trap:"โšฝ",veld:"๐ŸŸ๏ธ",basket:"๐Ÿ€",korf:"๐Ÿงบ",worp:"๐Ÿคพ",score:"๐Ÿ’ฏ",punt:"๐Ÿ”ต",stuk:"๐Ÿงฉ",rand:"๐Ÿงฉ", + plaat:"๐Ÿ–ผ๏ธ",beer:"๐Ÿงธ",blok:"๐Ÿงฑ",pion:"โ™Ÿ๏ธ",plons:"๐Ÿ’ฆ",slag:"๐ŸŠ",prijs:"๐Ÿ†",beker:"๐Ÿ†",medaille:"๐Ÿ…", + straat:"๐Ÿ›ฃ๏ธ",landingsbaan:"๐Ÿ›ฌ",plattegrond:"๐Ÿ—บ๏ธ",landbouwer:"๐Ÿง‘โ€๐ŸŒพ",plein:"๐Ÿ˜๏ธ",les:"๐Ÿ“š",gym:"๐Ÿคธ",kassa:"๐Ÿงพ",kar:"๐Ÿ›’",mand:"๐Ÿงบ",klant:"๐Ÿง‘",arts:"๐Ÿง‘โ€โš•๏ธ",zaal:"๐Ÿšช",zorg:"โค๏ธ", + boer:"๐Ÿง‘โ€๐ŸŒพ",stal:"๐Ÿš๏ธ",schuur:"๐Ÿš๏ธ",land:"๐ŸŒพ",erf:"๐Ÿก",balie:"๐Ÿ›Ž๏ธ",lezer:"๐Ÿ“–",buurt:"๐Ÿ˜๏ธ",vijver:"๐Ÿž๏ธ", + dag:"โ˜€๏ธ",uur:"๐Ÿ•",tijd:"โฐ",middag:"๐ŸŒค๏ธ",vroeg:"๐ŸŒ…",wakker:"โฐ",ontbijt:"๐Ÿฅฃ",avond:"๐ŸŒ‡",laat:"๐ŸŒ™", + donker:"๐ŸŒ‘",week:"๐Ÿ—“๏ธ",maand:"๐Ÿ“†",jaar:"๐ŸŽ†",datum:"๐Ÿ“…",agenda:"๐Ÿ“’",feest:"๐Ÿฅณ",kaars:"๐Ÿ•ฏ๏ธ",ballon:"๐ŸŽˆ", + lente:"๐ŸŒผ",zomer:"๐ŸŒž",herfst:"๐Ÿ‚",winter:"โ›„",seconde:"โฑ๏ธ",kwart:"ยผ",half:"ยฝ",duur:"โณ", + kleur:"๐ŸŒˆ",verf:"๐ŸŽจ",kwast:"๐Ÿ–Œ๏ธ",doek:"๐Ÿ–ผ๏ธ",palet:"๐ŸŽจ",tekening:"๐Ÿ–๏ธ",lijn:"โž–",vorm:"๐Ÿ”ท",vak:"โ—ป๏ธ", + toon:"๐ŸŽต",lied:"๐ŸŽถ",stem:"๐Ÿ—ฃ๏ธ",klank:"๐Ÿ”Š",trom:"๐Ÿฅ",fluit:"๐Ÿชˆ",snaar:"๐ŸŽธ",toets:"๐ŸŽน", + dans:"๐Ÿ’ƒ",sprong:"๐Ÿคธ",draai:"๐Ÿ”„",toneel:"๐ŸŽญ",rol:"๐ŸŽญ",pak:"๐Ÿ‘”",podium:"๐ŸŽญ",foto:"๐Ÿ“ท",film:"๐ŸŽฌ",lens:"๐Ÿ“ท", + zoeken:"๐Ÿ”Ž",vraag:"โ“",vondst:"๐Ÿ’ก",proef:"๐Ÿงช",test:"โœ…",buis:"๐Ÿงช",mengen:"๐Ÿฅฃ", + magneet:"๐Ÿงฒ",ijzer:"๐Ÿ”ฉ",pool:"๐Ÿงฒ",kracht:"๐Ÿ’ช",wiel:"๐Ÿ›ž",as:"โš™๏ธ",tand:"๐Ÿฆท",veer:"๐Ÿชถ",hefboom:"โš–๏ธ", + stroom:"โšก",draad:"๐Ÿงต",stekker:"๐Ÿ”Œ",digitaal:"๐Ÿ’ป",internet:"๐ŸŒ",programmeren:"๐Ÿง‘โ€๐Ÿ’ป",computer:"๐Ÿ’ป",muis:"๐Ÿ–ฑ๏ธ",scherm:"๐Ÿ–ฅ๏ธ",bestand:"๐Ÿ“„",ruimte:"๐ŸŒŒ", + planeet:"๐Ÿช",raket:"๐Ÿš€",satelliet:"๐Ÿ›ฐ๏ธ",heelal:"๐ŸŒŒ",astronaut:"๐Ÿง‘โ€๐Ÿš€", + letter:"๐Ÿ”ค",woord:"๐Ÿ” ",naam:"๐Ÿท๏ธ",teken:"โœ๏ธ",komma:",",titel:"๐Ÿท๏ธ",prent:"๐Ÿ–ผ๏ธ",taal:"๐Ÿ—ฃ๏ธ", + spraak:"๐Ÿ’ฌ",verhaal:"๐Ÿ“–",nul:"0๏ธโƒฃ",een:"1๏ธโƒฃ",twee:"2๏ธโƒฃ",drie:"3๏ธโƒฃ",getal:"๐Ÿ”ข",cijfer:"๐Ÿ”ฃ",reeks:"๐Ÿ”ข", + som:"โž•",plus:"โž•",min:"โž–",keer:"โœ–๏ธ",hoek:"๐Ÿ“",vlak:"โ—ป๏ธ",lengte:"๐Ÿ“", + samen:"๐Ÿค",hulp:"๐Ÿ†˜",beurt:"๐Ÿ”„",afspraak:"๐Ÿค",regel:"๐Ÿ“‹",wijk:"๐Ÿ˜๏ธ",wereld:"๐ŸŒ",grens:"๐Ÿšง", + noord:"โฌ†๏ธ",zuid:"โฌ‡๏ธ",oost:"โžก๏ธ",west:"โฌ…๏ธ",plek:"๐Ÿ“",richting:"๐Ÿงญ",nieuws:"๐Ÿ“ฐ",krant:"๐Ÿ—ž๏ธ",bericht:"๐Ÿ’ฌ", + radio:"๐Ÿ“ป",media:"๐Ÿ“บ",afval:"๐Ÿ—‘๏ธ",bak:"๐Ÿ—‘๏ธ",glas:"โ™ป๏ธ",papier:"๐Ÿ“„",recht:"โš–๏ธ",plicht:"๐Ÿ“‹",keus:"๐Ÿ”€", + wet:"โš–๏ธ",eerlijk:"โš–๏ธ",mening:"๐Ÿ’ญ",besluit:"โœ…" +}); +/* Betekenisdragende delen voor samenstellingen. Het familiebeeld blijft + voorop staan; maximaal รฉรฉn tweede symbool verduidelijkt het onderscheid. */ +const LANGUAGE_PICTURE_HINTS=Object.freeze([ + ["bescherming","๐Ÿ›ก๏ธ"],["veiligheid","๐Ÿ›ก๏ธ"],["verzorging","๐Ÿงผ"],["vaardigheid","๐ŸŽฏ"],["onderzoek","๐Ÿ”ฌ"], + ["bereiding","๐Ÿณ"],["productie","๐Ÿญ"],["verwerking","๐Ÿญ"],["organisatie","๐Ÿ“‹"],["ontwikkeling","๐Ÿ“ˆ"], + ["geschiedenis","๐Ÿ“œ"],["industrie","๐Ÿญ"],["maatschappij","๐ŸŒ"],["informatie","โ„น๏ธ"],["technologie","๐Ÿ’ป"], + ["wedstrijd","๐Ÿ†"],["training","๐Ÿ‹๏ธ"],["strategie","โ™Ÿ๏ธ"],["berekening","๐Ÿงฎ"],["verdeling","๐Ÿ“Š"], + ["winkel","๐Ÿช"],["fabriek","๐Ÿญ"],["bedrijf","๐Ÿญ"],["centrum","๐Ÿ™๏ธ"],["gebouw","๐Ÿข"],["kamer","๐Ÿšช"], + ["boek","๐Ÿ“•"],["schrift","๐Ÿ““"],["kaart","๐Ÿ—บ๏ธ"],["verslag","๐Ÿ“‹"],["bericht","๐Ÿ’ฌ"],["programma","๐Ÿ’ป"], + ["verlichting","๐Ÿ’ก"],["licht","๐Ÿ’ก"],["water","๐Ÿ’ง"],["lucht","๐ŸŒฌ๏ธ"],["grond","๐ŸŸซ"],["bloem","๐ŸŒท"], + ["boom","๐ŸŒณ"],["tuin","๐ŸŒฑ"],["weide","๐ŸŒฟ"],["storm","๐ŸŒช๏ธ"],["regen","๐ŸŒง๏ธ"],["sneeuw","โ„๏ธ"], + ["bak","๐Ÿ“ฆ"],["voer","๐Ÿฝ๏ธ"],["hok","๐Ÿ "],["stal","๐Ÿš๏ธ"],["riem","๐Ÿฆฎ"],["kooi","๐Ÿชน"], + ["boot","โ›ต"],["reis","๐Ÿงณ"],["straat","๐Ÿ˜๏ธ"],["station","๐Ÿš‰"],["haven","โš“"], + ["deur","๐Ÿšช"],["raam","๐ŸชŸ"],["kast","๐Ÿ—„๏ธ"],["tafel","๐Ÿช‘"],["stoel","๐Ÿช‘"],["bed","๐Ÿ›๏ธ"], + ["zorg","โค๏ธ"],["hulp","๐Ÿค"],["school","๐Ÿซ"],["leer","๐Ÿ“š"],["taal","๐Ÿ”ค"],["reken","๐Ÿงฎ"], + ["spel","๐ŸŽฒ"],["sport","๐Ÿ…"],["feest","๐Ÿฅณ"],["dag","๐Ÿ“…"],["tijd","โฐ"],["jaar","๐Ÿ—“๏ธ"], + ["kracht","๐Ÿ’ช"],["energie","โšก"],["stroom","โšก"],["machine","โš™๏ธ"],["instrument","๐ŸŽต"],["muziek","๐ŸŽถ"], + ["groep","๐Ÿ‘ฅ"],["team","๐Ÿ‘ฅ"],["familie","๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง"],["ouder","๐Ÿ‘ช"],["kind","๐Ÿง’"],["mens","๐Ÿง‘"], + ["wereld","๐ŸŒ"],["milieu","โ™ป๏ธ"],["afval","๐Ÿ—‘๏ธ"],["bestuur","๐Ÿ›๏ธ"] +]); +function languageProgressionPicture(word,fallback){ + if(LANGUAGE_PICTURE_EXACT[word])return LANGUAGE_PICTURE_EXACT[word]; + const match=LANGUAGE_PICTURE_HINTS.filter(([part])=>word.includes(part)).sort((a,b)=>b[0].length-a[0].length) + .find(([,emoji])=>emoji!==fallback); + return match?fallback+match[1]:fallback +} + /* Ruim duizend aanvullende Nederlandse woorden, geordend in woordfamilies. Iedere regel loopt bewust van een kort, concreet basiswoord naar langere afleidingen, samenstellingen en schooltaal. De positie op de regel bepaalt @@ -444,7 +523,7 @@ const LANGUAGE_NL_PROGRESSION_WORDS=(()=>{ const word=raw.trim();if(!word||seen.has(word))return;seen.add(word); const slug=word.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z]/g,""); const yearGroup=LANGUAGE_PROGRESSION_YEARS[Math.min(familyPosition++,LANGUAGE_PROGRESSION_YEARS.length-1)]; - out.push({id:"nl-"+theme+"-"+slug,theme,nl:word,pic,yearGroup}); + out.push({id:"nl-"+theme+"-"+slug,theme,nl:word,pic:languageProgressionPicture(word,pic),yearGroup,pictureChecked:true}); }); })); return out @@ -474,7 +553,8 @@ function languageThemeList(lang=LANG){ })).filter(theme=>theme.words.length); } function languageEmojiDataUrl(emoji,colors=["#f4f8ff","#dce9fa"]){ - const svg=`${emoji}`; + const fontSize=emoji.length>4?104:emoji.length>2?122:148; + const svg=`${emoji}`; return "data:image/svg+xml;charset=utf-8,"+encodeURIComponent(svg); } function languagePictureCatalog(lang=LANG){ diff --git a/test/language-library.test.js b/test/language-library.test.js index b8a8ba2..4bd1ec6 100644 --- a/test/language-library.test.js +++ b/test/language-library.test.js @@ -48,6 +48,29 @@ test('taalwidgets delen ruim duizend extra Nederlandse woorden over leerjaar en assert.equal(data.themesEn.reduce((sum,theme)=>sum+theme.words.length,0),data.concepts.length); }); +test('alle aanvullende woorden hebben een gecontroleerd en correct gekoppeld woordplaatje',async()=>{ + const data=await languageData(); + const builtinByName=new Map(data.catalogNl.images.filter(image=>image.builtin).map(image=>[image.name,image])); + assert.ok(new Set(data.progression.map(word=>word.pic)).size>=400,'verwacht brede beeldvariatie'); + for(const word of data.progression){ + assert.equal(word.pictureChecked,true,word.nl); + const image=builtinByName.get(word.nl); + assert.ok(image,word.nl); + assert.equal(image.value,word.pic,word.nl); + assert.ok(image.src.startsWith('data:image/svg+xml;charset=utf-8,'),word.nl); + } + const expected={ + kattenbak:'๐Ÿˆ๐Ÿ“ฆ',kattenvoer:'๐Ÿˆ๐Ÿฝ๏ธ',groentekraam:'๐Ÿฅ•๐Ÿช',landingsbaan:'๐Ÿ›ฌ', + kast:'๐Ÿ—„๏ธ',slaapkamerraam:'๐ŸชŸ',bewegingsapparaat:'๐Ÿฆด',bewegingsrichting:'๐Ÿงญ', + digitaal:'๐Ÿ’ป',kaart:'๐Ÿƒ',landbouwer:'๐Ÿง‘โ€๐ŸŒพ',straat:'๐Ÿ›ฃ๏ธ',plattegrond:'๐Ÿ—บ๏ธ', + veehouderij:'๐Ÿ„',wastafel:'๐Ÿšฐ',tekstproductie:'โœ๏ธ๐Ÿ“„',verdrietverwerking:'๐Ÿ˜ข๐Ÿง ', + bezorgd:'๐Ÿ˜Ÿ',schoolslag:'๐ŸŠ',toneelspeler:'๐ŸŽญ',spellingspatroon:'๐Ÿ”ค', + meetinstrument:'๐Ÿ“',ruimtestation:'๐Ÿ›ฐ๏ธ',grondrecht:'โš–๏ธ' + }; + for(const [word,picture] of Object.entries(expected)) + assert.equal(data.progression.find(item=>item.nl===word)?.pic,picture,word); +}); + test('alle oude startwoorden blijven staan en krijgen ook een bibliotheekplaatje',async()=>{ const data=await languageData(); const oldNl=['aap','vis','zon','kat','bal','ei','boom','huis','maan','boot','kip','muis','boek','ster','roos','vuur','fiets','taart','jas','bril','klok','peer','kaas','eend','hand','voet','neus','oog','oor','mond'];