Campomigliaio collegato (strada, circolino, ponte), il Poggio verso la Fortezza; Ringraziamenti coi ritratti e il carosello
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ApqNBvNbNCwXqR2RLo8QJh
This commit is contained in:
@@ -77,14 +77,17 @@ test('la storia è coerente: scene, oggetti, dialoghi e punti calpestabili esist
|
||||
}
|
||||
});
|
||||
|
||||
const nameOf = n => typeof n === 'string' ? n : n.name;
|
||||
|
||||
test('i crediti: ogni voce ha un ruolo e almeno un nome', () => {
|
||||
assert.ok(story.credits.length > 0);
|
||||
for (const c of story.credits) {
|
||||
assert.ok(c.role?.trim(), 'ruolo vuoto');
|
||||
assert.ok(c.names?.length && c.names.every(n => n.trim()), `nomi vuoti in ${c.role}`);
|
||||
assert.ok(c.names?.length && c.names.every(n => nameOf(n).trim()), `nomi vuoti in ${c.role}`);
|
||||
for (const n of c.names) if (n.face) assert.ok(existsSync(new URL('../' + n.face, import.meta.url)), `manca il ritratto ${n.face}`);
|
||||
}
|
||||
const all = story.credits.flatMap(c => c.names);
|
||||
for (const name of ['Yuri Baldi', 'Francesco Bacci']) assert.ok(all.includes(name), `manca ${name}`);
|
||||
const all = story.credits.flatMap(c => c.names.map(nameOf));
|
||||
for (const name of ['Baldoria (Yuri Baldi)', 'l\'Arcu (Marco Arcuri)', 'Francesco Bacci']) assert.ok(all.includes(name), `manca ${name}`);
|
||||
});
|
||||
|
||||
test('i crediti: i nomi di ogni voce escono in ordine casuale, sempre tutti', () => {
|
||||
@@ -95,8 +98,8 @@ test('i crediti: i nomi di ogni voce escono in ordine casuale, sempre tutti', ()
|
||||
const random = () => ((x = (x * 16807) % 2147483647) / 2147483647);
|
||||
const out = shuffledCredits(story.credits, random);
|
||||
assert.deepEqual(out.map(c => c.role), story.credits.map(c => c.role), 'le voci restano nel loro ordine');
|
||||
out.forEach((c, i) => assert.deepEqual([...c.names].sort(), [...story.credits[i].names].sort()));
|
||||
orders.add(out.find(c => c.role === idee).names.join('|'));
|
||||
out.forEach((c, i) => assert.deepEqual(c.names.map(nameOf).sort(), story.credits[i].names.map(nameOf).sort()));
|
||||
orders.add(out.find(c => c.role === idee).names.map(nameOf).join('|'));
|
||||
}
|
||||
assert.ok(orders.size > 3, `${idee}: l'ordine non cambia`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user