Conversation
gen-quality
|
Coverage reportCore-dev coverage
|
| Metric | Coverage | Covered / Total |
|---|---|---|
| Lines | 77.9% | 28539 / 36619 |
| Functions | 74.4% | 6360 / 8547 |
| Branches | 50.7% | 22672 / 44725 |
API coverage src/private/mx/{api,impl,utility}/
| Metric | Coverage | Covered / Total |
|---|---|---|
| Lines | 68.9% | 4771 / 6926 |
| Functions | 56.1% | 1551 / 2763 |
| Branches | 40.4% | 3888 / 9616 |
Core HTML report | API HTML report
Commit f3a1b9a204301c25dfbc9fa432af2dbbf2f1489e.
gen-quality
|
Summary ------- Technical elements <fingering> and <pluck> were deliberately commented out of technicalMarkMap because they carry text payloads a flat api::MarkType could not hold, so they fell back to MarkType::unspecified and were lost on both read and write. Reuse the existing MarkData text-payload pattern (the same approach <fret> and <string> already use): the element text (e.g. "1", "2-3" for fingering; "p", "i", "m", "a" for pluck) is carried in MarkData::name. Add api::MarkType::fingering and api::MarkType::pluck, and two optional Bool fields on MarkData (fingeringSubstitution, fingeringAlternate) to carry the <fingering> substitution/alternate attributes, following the existing hasMordent* optionality convention. Placement and other position attributes already round-trip via MarkData::positionData. Wire both directions: technicalMarkMap rows, the reader (TechnicalFunctions::parseTechicalMark) and the writer (NotationsWriter::addTechnical), plus isMarkTechnical. Scope ----- Covers fingering and pluck with full read+write round-trip (the two most common and most tractable of the section-1c marks). The remaining payload-bearing technical marks -- hammer-on, pull-off, bend, tap -- are NOT covered here: they need start/stop+number spanner state (hammer-on, pull-off) or a multi-element bend-alter/pre-bend/release/with-bar payload (bend) that does not fit the flat MarkData::name model and warrants a dedicated api type in a follow-up. They continue to return false in the reader (unchanged behavior, no regression). The section-1c tracker row is marked done for the fingering/pluck scope. Test plan --------- - New TEST(technical_fingering_pluck_roundtrip, NoteData) in NoteDataTest.cpp: builds notes with fingering "1", fingering "2-3" (substitution=yes, alternate=no) and pluck "p", round-trips through XML, asserts markType, text, placement, and the substitution/alternate flags survive. - make test: all 223 cases / 3941 assertions pass. - make fmt + make check: clean. - make test-api-roundtrip: 1 passed, 0 failed (pinned baseline unchanged).
gen-quality
|
gen-quality
|
Coverage reportCore-dev coverage
|
| Metric | Coverage | Covered / Total |
|---|---|---|
| Lines | 77.9% | 28539 / 36620 |
| Functions | 74.4% | 6360 / 8548 |
| Branches | 50.7% | 22672 / 44725 |
API coverage src/private/mx/{api,impl,utility}/
| Metric | Coverage | Covered / Total |
|---|---|---|
| Lines | 70.6% | 5034 / 7132 |
| Functions | 57.6% | 1679 / 2914 |
| Branches | 42.0% | 4167 / 9933 |
Core HTML report | API HTML report
Commit 54e7bee1d76e9935e350d0af9c5c84bed2a2f6ca.
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.
Summary
Addresses audit section 1c. Fingering and pluck were commented out of `technicalMarkMap` because
they carry text payloads that a flat `MarkType` cannot hold. This reuses the existing
`MarkData` text-payload pattern (same as `fret`/`string`): the element text lives in
`MarkData::name`.
Adds `MarkType::fingering` and `MarkType::pluck`. Two optional `Bool` fields
`fingeringSubstitution` and `fingeringAlternate` are added to `MarkData` for the
`` substitution/alternate attributes, following the existing `hasMordent*`
optionality convention. Placement and position already round-trip via `MarkData::positionData`.
`isMarkTechnical` updated to include the new types.
Scoped out: `hammer-on`, `pull-off`, `bend`, `tap`. These require spanner start/stop state
or multi-element payloads and warrant a dedicated api type. Their reader cases are unchanged
(return false) -- no regression.
Testing
References
mx/apilayer. #159 (parent tracker)