Skip to content

Fix test compatibility with fonttools splitCubicAtT precision improvement#70

Merged
anthrotype merged 2 commits intomasterfrom
update-tests-for-fonttools-splitCubicAtT-fix
Jan 15, 2026
Merged

Fix test compatibility with fonttools splitCubicAtT precision improvement#70
anthrotype merged 2 commits intomasterfrom
update-tests-for-fonttools-splitCubicAtT-fix

Conversation

@anthrotype
Copy link
Collaborator

  • Update test data to expect cleaner floating point values from splitCubicAtT
  • Add approximate comparison for floating point values in test assertions

fonttools fonttools/fonttools#3743 added a fix to splitCubicAtT that ensures the first segment starts exactly at pt1 and the last segment ends exactly at pt4, eliminating floating point drift (e.g. 250.00000000000003 → 250.0).

The booleanOperations tests were comparing glyph digests exactly, so the cleaner output from the fixed splitCubicAtT caused test failures.

I regenerated expected test data to match the latest fonttools but also changed digest comparison to use math.isclose for floats, allowing the tests to pass with both old and new fonttools versions.

fonttools improved splitCubicAtT to ensure the first segment starts
exactly at pt1 and the last segment ends exactly at pt4, eliminating
floating point drift (e.g. 250.00000000000003 -> 250.0).

Regenerated expected output for Q and QTail_reversed glyphs across
all boolean operation layers (union, difference, intersection, xor).
Allow minor floating point differences when comparing glyph digests.
This ensures tests pass with both older fonttools versions (which had
floating point drift in splitCubicAtT) and newer versions (which force
exact endpoint matching).

Uses math.isclose for float comparison within a recursive helper that
handles the nested digest structure.
@anthrotype anthrotype merged commit 6bc5c9b into master Jan 15, 2026
@typemytype
Copy link
Owner

thanks!

I assume this should fix:
#69
robotools/fontParts#853

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.

2 participants