MusicSheetCalculator_Test.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * Created by Matthias on 21.06.2016.
  3. */
  4. import {MusicSheetReader} from "../../../src/MusicalScore/ScoreIO/MusicSheetReader";
  5. import {MusicSheet} from "../../../src/MusicalScore/MusicSheet";
  6. import {IXmlElement} from "../../../src/Common/FileIO/Xml";
  7. import {MusicSheetCalculator} from "../../../src/MusicalScore/Graphical/MusicSheetCalculator";
  8. import {VexFlowMusicSheetCalculator} from "../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetCalculator";
  9. import {GraphicalMusicSheet} from "../../../src/MusicalScore/Graphical/GraphicalMusicSheet";
  10. import {VexFlowTextMeasurer} from "../../../src/MusicalScore/Graphical/VexFlow/VexFlowTextMeasurer";
  11. describe("Music Sheet Calculator Tests", () => {
  12. // Initialize variables
  13. let path: string = "test/data/MuzioClementi_SonatinaOpus36No1_Part1.xml";
  14. let reader: MusicSheetReader = new MusicSheetReader();
  15. let calculator: MusicSheetCalculator = new VexFlowMusicSheetCalculator();
  16. let score: IXmlElement;
  17. let sheet: MusicSheet;
  18. function getSheet(filename: string): Document {
  19. return ((window as any).__xml__)[filename];
  20. }
  21. before((): void => {
  22. // ???
  23. });
  24. beforeEach((): void => {
  25. // ???
  26. });
  27. afterEach((): void => {
  28. // cleanup?
  29. });
  30. it("Do Calculation", (done: MochaDone) => {
  31. MusicSheetCalculator.TextMeasurer = new VexFlowTextMeasurer();
  32. // Load the xml file
  33. let doc: Document = getSheet(path);
  34. chai.expect(doc).to.not.be.undefined;
  35. score = new IXmlElement(doc.getElementsByTagName("score-partwise")[0]);
  36. // chai.expect(score).to.not.be.undefined;
  37. sheet = reader.createMusicSheet(score, path);
  38. let graphicalSheet: GraphicalMusicSheet = new GraphicalMusicSheet(sheet, calculator);
  39. graphicalSheet.reCalculate();
  40. done();
  41. });
  42. });