Andrea Condoluci %!s(int64=9) %!d(string=hai) anos
pai
achega
15485443a3
Modificáronse 1 ficheiros con 54 adicións e 0 borrados
  1. 54 0
      test/MusicalScore/Calculation/MeasureSizeCalculator.ts

+ 54 - 0
test/MusicalScore/Calculation/MeasureSizeCalculator.ts

@@ -0,0 +1,54 @@
+import {
+  MeasureSizeCalculator,
+} from "../../../src/MusicalScore/Calculation/MeasureSizeCalculator.ts";
+
+import Vex = require("vexflow");
+
+describe("Measure Size Calculator Tests", () => {
+  // Initialization
+  let stave: Vex.Flow.Stave = new Vex.Flow.Stave(0, 0, 0);
+  let voices: Vex.Flow.Voice[];
+  //let formatter: Vex.Flow.Formatter = new Vex.Flow.Formatter();
+  let formatter: any;
+  // Create a voice with a note
+  let voice: Vex.Flow.Voice;
+  let note: Vex.Flow.StaveNote;
+  let calc: MeasureSizeCalculator;
+
+  it("One note", (done: MochaDone) => {
+    formatter = new Vex.Flow.Formatter();
+    voice = new Vex.Flow.Voice(undefined);
+    note = new Vex.Flow.StaveNote({ keys: ["b/4"], "duration": "1" });
+    voice.addTickables([note]);
+    voices = [voice];
+
+    chai.expect(formatter.preCalculateMinTotalWidth(voices)).to.equal(22);
+
+    calc = new MeasureSizeCalculator(
+      stave, voices, <Vex.Flow.Formatter> formatter
+    );
+    chai.expect(calc.getBottomBorder()).to.equal(5);
+    done();
+  });
+
+  it("Four quarter notes", (done: MochaDone) => {
+    formatter = new Vex.Flow.Formatter();
+    voice = new Vex.Flow.Voice(undefined);
+    voice.addTickables([
+      new Vex.Flow.StaveNote({ keys: ["c/4"], "duration": "q" }),
+      new Vex.Flow.StaveNote({ keys: ["d/4"], "duration": "q" }),
+      new Vex.Flow.StaveNote({ keys: ["e/4"], "duration": "q" }),
+      new Vex.Flow.StaveNote({ keys: ["f/4"], "duration": "q" }),
+    ]);
+    voices = [voice];
+
+    chai.expect(formatter.preCalculateMinTotalWidth(voices)).to.equal(64);
+    calc = new MeasureSizeCalculator(
+      stave, voices, <Vex.Flow.Formatter> formatter
+    );
+    chai.expect(calc.getWidth()).to.equal(64);
+    chai.expect(calc.getBottomBorder()).to.equal(6);
+    chai.expect(calc.getTopBorder()).to.equal(0);
+    done();
+  });
+});