abcjs / tests /parse /note-id.test.js
KEXEL's picture
Upload 337 files
af6912c verified
describe("Parser", function() {
var abcOctave1 = "X:1\nK: bass\n" +
"[V:v1] C,D,E,F, |\n" +
"[V:v2 octave=-1] CDEF |\n" +
"[V:v3 octave=-2] cdef |\n" +
"[V:v4 octave=1] C,,D,,E,,F,, |\n" +
"K: octave=1\n" +
"[V:v1] C,,D,,E,,F,,|\n" +
"[V:v2] CDEF |\n" +
"[V:v3] cdef |\n" +
"[V:v4 octave=0] C,D,E,F, |\n"
var expectedOctave1 = [
[-7, -6, -5, -4],
[-7, -6, -5, -4],
[-7, -6, -5, -4],
[-7, -6, -5, -4],
[-7, -6, -5, -4],
[-7, -6, -5, -4],
[-7, -6, -5, -4],
[-7, -6, -5, -4],
]
it("octave1", function() {
doNoteIdTest(abcOctave1, expectedOctave1)
})
function doNoteIdTest(abc, expected) {
var visualObj = abcjs.renderAbc("paper", abc, {});
var output = []
for (var k = 0; k < visualObj[0].lines.length; k++) {
var line = visualObj[0].lines[k];
for (var i = 0; i < line.staff.length; i++) {
var voice = line.staff[i].voices[0]
var out = []
for (var j = 0; j < voice.length; j++) {
if (voice[j].pitches)
out.push(voice[j].pitches[0].pitch)
}
output.push(out)
}
}
chai.assert.deepStrictEqual(output, expected);
}
})