From d79599ede1af837a32dc301d5a18e288b205b907 Mon Sep 17 00:00:00 2001 From: c0dev0id Date: Sat, 11 Jul 2026 14:22:31 +0200 Subject: [PATCH] test: update seq.note fixtures letter= -> letters=; assert multi-ref form --- test-parser.mjs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/test-parser.mjs b/test-parser.mjs index 86baa9f..406beff 100644 --- a/test-parser.mjs +++ b/test-parser.mjs @@ -561,8 +561,8 @@ const DYN_MOTIF = `00 bar '001P1L1M1' 03 line.stem_note pitch=0 04 stem_note.chain _tmp_string='oo' 05 chain.clause 0 repeat=1 -06 seq.note letter='o' shift=0 length=1 netlength=1 -06 seq.note letter='o' shift=12 netlength=1 length=1 +06 seq.note letters='o' shift=0 length=1 netlength=1 +06 seq.note letters='o' shift=12 netlength=1 length=1 `; const dynBar = buildModel(parseAstLog(DYN_MOTIF)).bars[0]; const dynVoice = dynBar.voices['pi']; @@ -580,7 +580,7 @@ const STAT_MOTIF = `00 bar '001P1L1M1' 03 line.stem_note pitch='C4' 04 stem_note.chain _tmp_string='o' 05 chain.clause 0 -06 seq.note letter='o' shift=0 length=1 netlength=1 +06 seq.note letters='o' shift=0 length=1 netlength=1 `; const statVoice = buildModel(parseAstLog(STAT_MOTIF)).bars[0].voices['pi']; ok('static motif isStatic=true', statVoice.motifs[0].isStatic === true); @@ -593,12 +593,12 @@ const PS_FIXTURE = `00 bar '001P1L1M1' 03 line.stem_note pitch='C4' 04 stem_note.chain _tmp_string='o.oe' 05 chain.clause 0 -06 seq.note letter='o' shift=0 length=1 netlength=1 +06 seq.note letters='o' shift=0 length=1 netlength=1 06 seq.pause length=1 05 chain.clause 1 06 seq.stack length=2 netlength=2 -07 stack.note letter='o' shift=0 -07 stack.note letter='e' shift=0 +07 stack.note letters='o' shift=0 +07 stack.note letters='e' shift=0 `; const psVoice = buildModel(parseAstLog(PS_FIXTURE)).bars[0].voices['pi']; const psSn = psVoice.offsets[0].stemNotes[0]; @@ -614,11 +614,11 @@ const NC_FIXTURE = `00 bar '001P1L1M1' 03 line.stem_note pitch='C4' 04 stem_note.chain _tmp_string='o(...)' 05 chain.clause 0 -06 seq.note letter='o' shift=0 length=1 netlength=1 +06 seq.note letters='o' shift=0 length=1 netlength=1 06 seq.chain length=2 07 chain.clause 0 08 seq.stack length=1 netlength=1 -09 stack.note letter='o' shift=0 +09 stack.note letters='o' shift=0 `; const ncSn = buildModel(parseAstLog(NC_FIXTURE)).bars[0].voices['pi'].offsets[0].stemNotes[0]; ok('nested chain: only 1 top-level clause', ncSn.clauses.length === 1); @@ -651,7 +651,7 @@ const LM_FIXTURE = `00 bar '001P1L1M1' 03 line.stem_note pitch='C4' 04 stem_note.chain _tmp_string='o' 05 chain.clause 0 -06 seq.note letter='o' shift=0 length=1 netlength=1 +06 seq.note letters='o' shift=0 length=1 netlength=1 03 line.motif 'coct' 03 line.motif 'oct' chord='C2' `; @@ -671,8 +671,8 @@ const WT_FIXTURE = `00 bar '001P1L1M1' 04 stem_note.write_to 'coct' 04 stem_note.chain _tmp_string='o=o+3*4' 05 chain.clause 0 repeat=3 -06 seq.note letter='o' shift=0 netlength=1 length=1 -06 seq.note letter='o' shift=3 netlength=1 length=1 +06 seq.note letters='o' shift=0 netlength=1 length=1 +06 seq.note letters='o:f' shift=3 netlength=1 length=1 `; const wtSn = buildModel(parseAstLog(WT_FIXTURE)).bars[0].voices['pi'].offsets[0].stemNotes[0]; ok('write_to: writeToName', wtSn.writeToName === 'coct'); @@ -680,6 +680,8 @@ ok('write_to: chainText from _tmp_string', wtSn.chainText === 'o=o+3*4'); ok('write_to: clause parsed', wtSn.clauses.length === 1); ok('write_to: clause repeat', wtSn.clauses[0].repeat === 3); ok('write_to: clause notes', wtSn.clauses[0].notes.length === 2); +ok('seq.note has letters field (not letter)', wtSn.clauses[0].notes[0].letters === 'o'); +ok('seq.note letters with article ref', wtSn.clauses[0].notes[1].letters === 'o:f'); section('adjacent prop on stem_note'); const ADJ_FIXTURE = `00 bar '001P1L1M1'