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 }, | |
| ]) | |
| }) | |
| }) | |