MusicSheetCalculator_Test.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334
  1. /* eslint-disable @typescript-eslint/no-unused-expressions */
  2. import {MusicSheetReader} from "../../../src/MusicalScore/ScoreIO/MusicSheetReader";
  3. import {MusicSheet} from "../../../src/MusicalScore/MusicSheet";
  4. import {IXmlElement} from "../../../src/Common/FileIO/Xml";
  5. import {MusicSheetCalculator} from "../../../src/MusicalScore/Graphical/MusicSheetCalculator";
  6. import {VexFlowMusicSheetCalculator} from "../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetCalculator";
  7. import {GraphicalMusicSheet} from "../../../src/MusicalScore/Graphical/GraphicalMusicSheet";
  8. import {VexFlowTextMeasurer} from "../../../src/MusicalScore/Graphical/VexFlow/VexFlowTextMeasurer";
  9. import {TestUtils} from "../../Util/TestUtils";
  10. import {EngravingRules} from "../../../src";
  11. describe("Music Sheet Calculator", () => {
  12. const filename: string = "MuzioClementi_SonatinaOpus36No1_Part1.xml";
  13. const reader: MusicSheetReader = new MusicSheetReader();
  14. const calculator: MusicSheetCalculator = new VexFlowMusicSheetCalculator(reader.rules);
  15. let score: IXmlElement;
  16. let sheet: MusicSheet;
  17. it("calculates music sheet", (done: Mocha.Done) => {
  18. // this.timeout = 10000;
  19. MusicSheetCalculator.TextMeasurer = new VexFlowTextMeasurer(new EngravingRules());
  20. // Load the XML file
  21. const xml: Document = TestUtils.getScore(filename);
  22. chai.expect(xml).to.not.be.undefined;
  23. score = new IXmlElement(TestUtils.getPartWiseElement(xml));
  24. chai.expect(score).to.not.be.undefined;
  25. sheet = reader.createMusicSheet(score, "path-of-" + filename);
  26. const graphicalSheet: GraphicalMusicSheet = new GraphicalMusicSheet(sheet, calculator);
  27. graphicalSheet.reCalculate();
  28. done();
  29. });
  30. });