Spaces:
Running
Running
import { Measure } from "../measure/Measure" | |
import { createBeatsInRange } from "./mapBeats" | |
describe("createBeatsInRange", () => { | |
const timebase = 480 | |
it("should create beats", () => { | |
const measures: Measure[] = [ | |
{ startTick: 0, measure: 0, numerator: 4, denominator: 4 }, | |
{ startTick: timebase * 4, measure: 1, numerator: 6, denominator: 8 }, | |
{ startTick: timebase * 7, measure: 2, numerator: 3, denominator: 4 }, | |
] | |
const beats = createBeatsInRange(measures, timebase, 0, timebase * 15) | |
expect(beats).toStrictEqual([ | |
// first measure (4/4) | |
{ measure: 0, beat: 0, tick: 0 }, | |
{ measure: 0, beat: 1, tick: timebase }, | |
{ measure: 0, beat: 2, tick: timebase * 2 }, | |
{ measure: 0, beat: 3, tick: timebase * 3 }, | |
// second measure (6/8) | |
{ measure: 1, beat: 0, tick: timebase * 4 }, | |
{ measure: 1, beat: 1, tick: timebase * 4.5 }, | |
{ measure: 1, beat: 2, tick: timebase * 5 }, | |
{ measure: 1, beat: 3, tick: timebase * 5.5 }, | |
{ measure: 1, beat: 4, tick: timebase * 6 }, | |
{ measure: 1, beat: 5, tick: timebase * 6.5 }, | |
// third measure (3/4) | |
{ measure: 2, beat: 0, tick: timebase * 7 }, | |
{ measure: 2, beat: 1, tick: timebase * 8 }, | |
{ measure: 2, beat: 2, tick: timebase * 9 }, | |
// fourth measure (3/4) | |
{ measure: 3, beat: 0, tick: timebase * 10 }, | |
{ measure: 3, beat: 1, tick: timebase * 11 }, | |
{ measure: 3, beat: 2, tick: timebase * 12 }, | |
// fifth measure (3/4) | |
{ measure: 4, beat: 0, tick: timebase * 13 }, | |
{ measure: 4, beat: 1, tick: timebase * 14 }, | |
]) | |
}) | |
it("should create default beats without the initial measure", () => { | |
const measures: Measure[] = [ | |
{ | |
startTick: timebase * 4, // starts at out of the range | |
measure: 0, | |
numerator: 5, | |
denominator: 8, | |
}, | |
] | |
const beats = createBeatsInRange(measures, timebase, 0, timebase * 4) | |
expect(beats).toStrictEqual([ | |
{ measure: 0, beat: 0, tick: 0 }, | |
{ measure: 0, beat: 1, tick: timebase }, | |
{ measure: 0, beat: 2, tick: timebase * 2 }, | |
{ measure: 0, beat: 3, tick: timebase * 3 }, | |
]) | |
}) | |
}) | |