Yann
test
f23825d
raw
history blame
2.21 kB
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 },
])
})
})