Skip to content

fix: drop NOVARY dimensions of z-variables - #77

Merged
Beforerr merged 2 commits into
mainfrom
fix-novary-z
Oct 6, 2026
Merged

Beforerr merged 2 commits into
mainfrom
fix-novary-z

Conversation

@Beforerr

@Beforerr Beforerr commented Oct 6, 2026

Copy link
Copy Markdown
Member

Stacked on #76.

z-variables counted NOVARY dimensions, which aren't physically stored, so reads ran past the variable's data and returned unrelated memory. r-variables already dropped them; both kinds now share _dim_layout. CDFpp (get_variable_dimensions) and cdflib (_read_vdr/_num_values) drop them the same way.

Fixture data/novary_z.cdf (row-major, declared (2,3,4), dim 2 NOVARY): neither cdflib's nor CDFpp's writer honors Dim_Vary, so data/make_novary_z.py writes (2,1,4) and patches the zVDR. pycdfpp and cdflib both read it as (5,2,4). Before the fix, we read (2,3,4,5) with garbage values. Full test suite passes.

@Beforerr
Beforerr force-pushed the fix-novary-z branch 2 times, most recently from 44373d5 to 0402510 Compare October 6, 2026 13:08
@codecov

codecov Bot commented Oct 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

NOVARY dimensions aren't physically stored, so counting them read past
each variable's data. r-variables already dropped them; z-variables now
share that path. Matches CDFpp and cdflib.
@Beforerr
Beforerr changed the base branch from perf-ttfx to main October 6, 2026 13:57
@Beforerr
Beforerr merged commit 47dea4f into main Oct 6, 2026
6 checks passed
@Beforerr
Beforerr deleted the fix-novary-z branch October 6, 2026 13:57
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