abc-notation-transposition
Version:
A robust utility for transposing ABC Notation by half steps.
38 lines (35 loc) • 1.15 kB
JavaScript
const {resetAccidentals} = require('../../../../functions/transpose-abc');
const {KEYS} = require('../../../../constants');
test('Expect reset accidentals to correctly revert stored accidentals to those of the current key signature.', () => {
const CMAJOR = KEYS.get(0)[0];
const DMAJOR = KEYS.get(2)[0];
const voiceState = {
originalKey : CMAJOR,
transposedKey: DMAJOR,
originalAccidentals: {
A: "=",
B: "=",
C: "=",
D: "=",
E: "=",
F: "^",
G: "^",
},
transposedAccidentals: {
A: "^",
B: "=",
C: "^",
D: "=",
E: "=",
F: "^",
G: "^",
}
}
resetAccidentals(voiceState);
expect(voiceState.originalAccidentals.F).toBe('=');
expect(voiceState.originalAccidentals.G).toBe('=');
expect(voiceState.transposedAccidentals.G).toBe('=');
expect(voiceState.transposedAccidentals.A).toBe('=');
expect(voiceState.transposedAccidentals.F).toBe('^');
expect(voiceState.transposedAccidentals.C).toBe('^');
});