MusicSheetReader.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {MusicSheetReader} from "../../../src/MusicalScore/ScoreIO/MusicSheetReader";
  2. import {MusicSheet} from "../../../src/MusicalScore/MusicSheet";
  3. import {IXmlElement} from "../../../src/Common/FileIO/Xml";
  4. // Fixture has no typings yet, thus declare it as 'any'
  5. declare var fixture: any;
  6. describe("Music Sheet Reader Tests", () => {
  7. // Initialize variables
  8. let path: string = "/test/data/MuzioClementi_SonatinaOpus36No1_Part1.xml";
  9. let reader: MusicSheetReader = new MusicSheetReader();
  10. let root: IXmlElement;
  11. let sheet: MusicSheet;
  12. before((): void => {
  13. fixture.setBase("base");
  14. });
  15. // Load the xml files
  16. beforeEach((): void => {
  17. fixture.load(path);
  18. // console.log(this.result[0].length, typeof this.result, typeof this.result[0], this.result[0].substr, this.result[0].getElementById);
  19. let container: Element = document.getElementById("fixture_container");
  20. let documentElement: IXmlElement = new IXmlElement(container);
  21. chai.expect(documentElement.elements("score-partwise").length).to.equal(1);
  22. root = documentElement.element("score-partwise");
  23. chai.expect(root).to.not.be.undefined;
  24. sheet = reader.createMusicSheet(root, path);
  25. });
  26. afterEach((): void => {
  27. fixture.cleanup();
  28. });
  29. it("Read title and composer", (done: MochaDone) => {
  30. chai.expect(sheet.TitleString).to.equal("Sonatina Op.36 No 1 Teil 1 Allegro");
  31. chai.expect(sheet.ComposerString).to.equal("Muzio Clementi");
  32. done();
  33. });
  34. it("Measures", (done: MochaDone) => {
  35. // chai.expect(root.element("part").elements("measure").length).to.equal(38);
  36. chai.expect(sheet.SourceMeasures.length).to.equal(38);
  37. console.log("First Measure: ", sheet.SourceMeasures[0]);
  38. // console.log("Notes on first Measure: ", sheet.SourceMeasures[0].VerticalSourceStaffEntryContainers[0].StaffEntries[0]);
  39. // chai.expect(sheet.)
  40. done();
  41. });
  42. it("Instruments", (done: MochaDone) => {
  43. // chai.expect(root.elements("part").length).to.equal(2);
  44. chai.expect(reader.CompleteNumberOfStaves).to.equal(2);
  45. chai.expect(sheet.Instruments.length).to.equal(2);
  46. chai.expect(sheet.InstrumentalGroups.length).to.equal(2);
  47. console.log("SheetErrors: ", sheet.SheetErrors);
  48. chai.expect(sheet.Instruments[0].Name).to.equal("Piano (right)");
  49. chai.expect(sheet.Instruments[1].Name).to.equal("Piano (left)");
  50. done();
  51. });
  52. });