Skip to content

Fix GPXTrack.join with explicit segment zero - #306

Open
rusetiq wants to merge 1 commit into
tkrajina:devfrom
rusetiq:fix-explicit-zero-segment-join
Open

rusetiq wants to merge 1 commit into
tkrajina:devfrom
rusetiq:fix-explicit-zero-segment-join

Conversation

@rusetiq

@rusetiq rusetiq commented Oct 5, 2026

Copy link
Copy Markdown

GPXTrack.join(1, 0) treats the explicitly supplied segment index 0 as if the argument had been omitted. With three one-point segments at latitudes 0, 1, and 2, it produces [[0], [1, 2]] instead of [[1, 0], [2]].

Check for None when choosing the default second segment. This preserves the existing default behavior while allowing joins into segment zero. Add regression coverage for joining segments 1 and 2 with zero, an explicit nonzero target, and the default target; also verify destination segment identity.

Validation on macOS / Python 3.13.14:

  • python -m unittest test: 153 tests passed, using both the standard-library XML backend and lxml.
  • python gpxinfo test_files/*.gpx: passed.
  • git diff --check: passed.
  • mypy --strict . gpxinfo with mypy 2.4.0 reports 19 existing diagnostics. The same diagnostics reproduce in an unchanged archive of the upstream commit; this change adds none.

The two explicit-zero regression cases fail before the fix and pass afterward. This contribution was prepared with assistance from OpenAI Codex.

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