Repository navigation
Conversation
Instead of comparing whole files, the new tests look at the parts of the output they are about (pitches, voices, measure lengths, divisions, barlines, ...), with helpers in tests/musicxml_helpers.py: - one test module per area of the export: dispatch of ly.music nodes, \transpose, repeats, chord mode, \afterGrace, \partCombine, lyrics, measures, divisions and the MusicXML version - a corpus of realistic snippets that must convert, without warnings, to MusicXML that is valid against the schema - the localized MusicXML 4.0 schema (tests/musicxml-4.0/) Tests for behaviour that is not implemented yet are marked as strict xfail; the changes implementing it remove the markers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMyxTwm2w6VtbxBdt5dL1T
This was referenced Oct 2, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add semantic tests for the MusicXML export
This is the first of four PRs that improve the LilyPond to MusicXML export (
ly.musicxml). It only adds tests; the following PRs build on it:\transpose, repeats, chord mode, lyrics and\partCombineWhat it adds
The existing tests compare whole files, so a change anywhere in the output makes them fail, and they cover few features. The new tests look only at the part of the output they are about: pitches, voices, measure lengths, divisions, barlines and so on. Helpers for this are in
tests/musicxml_helpers.py.ly.musicnodes,\transpose, repeats, chord mode,\afterGrace,\partCombine, lyrics, measures, divisions, and the MusicXML version.tests/musicxml_corpus.py): every snippet must convert without warnings to MusicXML that is valid against the schema.tests/musicxml-4.0/).Tests for behaviour that does not work yet are marked as strict xfail. Each of the following PRs removes the markers of the tests it makes pass, so its effect is visible in the test results.
Writing these tests found several bugs in the current export, among them:
\transposeis ignored\scaleDurationscrashesAll of these are fixed in the following PRs.
🤖 Generated with Claude Code