Skip to content

Add same-format round-trip integration tests - #77

Open
elicwhite wants to merge 1 commit into
midi-writer-vocalsfrom
round-trip-integration
Open

Add same-format round-trip integration tests#77
elicwhite wants to merge 1 commit into
midi-writer-vocalsfrom
round-trip-integration

Conversation

@elicwhite

Copy link
Copy Markdown
Owner

End-to-end coverage for the scan-chart writers: build a ParsedChart,
serialize via writeChartFile/writeMidiFile, re-parse via parseChartAndIni,
and assert that structured fields survive.

The per-feature tests (chart-writer.test.ts, midi-writer.test.ts) already
cover granular correctness. This file's job is interactions across tracks
— e.g. a chart with drums + guitar + vocals populated together — and the
"everything enabled at once" shape the earlier tests skip.

Coverage:

  • tempo/TS/sections/endEvents (both formats)
  • drums: kick, tom/cymbal, accent, ghost, 2x-kick (both formats)
    flam: .mid only (the .chart parser doesn't recognize N 109 — writer
    emits it, parser gap is pre-existing)
  • 5-fret: base colors + forceHopo + forceTap + sustains (both formats)
    star power + solo sections (both formats)
  • GHL: open + chord-with-open ENHANCED_OPENS path (both formats)
  • vocals: PART VOCALS full shape; HARM1/2/3 with CopyDown semantics (.mid)
  • multi-track: drums + guitar + bass (both formats); drums + guitar +
    vocals (.mid)
  • metadata: [Song] fields and chart_offset via .chart

18 new tests; 433 total passing.

@elicwhite
elicwhite force-pushed the midi-writer-vocals branch from 17b2b16 to ba58fa3 Compare April 20, 2026 05:09
@elicwhite
elicwhite force-pushed the round-trip-integration branch from 9104edd to 139de95 Compare April 20, 2026 05:09
@elicwhite
elicwhite force-pushed the midi-writer-vocals branch from ba58fa3 to cc46d30 Compare April 20, 2026 05:10
@elicwhite
elicwhite force-pushed the round-trip-integration branch 2 times, most recently from 5c8ed73 to da67ddc Compare April 20, 2026 05:19
@elicwhite
elicwhite marked this pull request as ready for review April 20, 2026 16:09
@elicwhite
elicwhite force-pushed the midi-writer-vocals branch from 631a9d0 to a5b46ec Compare April 21, 2026 04:29
@elicwhite
elicwhite force-pushed the round-trip-integration branch from da67ddc to 8d80779 Compare April 21, 2026 04:29
@elicwhite
elicwhite force-pushed the midi-writer-vocals branch from a5b46ec to e69e3e0 Compare April 21, 2026 04:47
@elicwhite
elicwhite force-pushed the round-trip-integration branch from 8d80779 to d20ac10 Compare April 21, 2026 04:48
@elicwhite
elicwhite force-pushed the midi-writer-vocals branch from e69e3e0 to b5242da Compare April 21, 2026 05:06
End-to-end coverage for the scan-chart writers: build a ParsedChart,
serialize via writeChartFile/writeMidiFile, re-parse via parseChartAndIni,
and assert that structured fields survive.

The per-feature tests (chart-writer.test.ts, midi-writer.test.ts) already
cover granular correctness. This file's job is interactions across tracks
— e.g. a chart with drums + guitar + vocals populated together — and the
"everything enabled at once" shape the earlier tests skip.

Coverage:
  - tempo/TS/sections/endEvents (both formats)
  - drums: kick, tom/cymbal, accent, ghost, 2x-kick (both formats)
    flam: .mid only (the .chart parser doesn't recognize N 109 — writer
    emits it, parser gap is pre-existing)
  - 5-fret: base colors + forceHopo + forceTap + sustains (both formats)
    star power + solo sections (both formats)
  - GHL: open + chord-with-open ENHANCED_OPENS path (both formats)
  - vocals: PART VOCALS full shape; HARM1/2/3 with CopyDown semantics (.mid)
  - multi-track: drums + guitar + bass (both formats); drums + guitar +
    vocals (.mid)
  - metadata: [Song] fields and chart_offset via .chart

18 new tests; 433 total passing.
@elicwhite
elicwhite force-pushed the round-trip-integration branch from f3dfd0d to 6862111 Compare April 22, 2026 16:34
@elicwhite
elicwhite force-pushed the midi-writer-vocals branch from 771cfa8 to 53a5a9d Compare April 22, 2026 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant