Skip to content

test: cover the TTree and RNTuple reading APIs - #1832

Open
ariostas wants to merge 4 commits into
scikit-hep:mainfrom
ariostas:test/api-coverage
Open

ariostas wants to merge 4 commits into
scikit-hep:mainfrom
ariostas:test/api-coverage

Conversation

@ariostas

@ariostas ariostas commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

🤖 AI text below 🤖

Part of the split of #1814 (the list is in #1834). These are the new tests of #1814 for the TTree reading API (caches, uproot.dask, graphed reads, read options, TBranch) and the RNTuple reading API, including its NumPy output and files written by ROOT, apart from the regression tests of its fixes, which are in the fix PRs. All of them pass on main.

It adds test files and deletes the four LRUCache tests of test_1661, which test_1832_cov_api_cache.py replaces.

@ariostas
ariostas marked this pull request as ready for review November 6, 2026 14:47
@github-actions github-actions Bot added the type/test PR title type: test (set automatically) label Nov 6, 2026
@ariostas
ariostas force-pushed the test/existing-tests branch from c192219 to 5253a21 Compare November 6, 2026 15:10
ariostas added a commit to ariostas/uproot5 that referenced this pull request Nov 6, 2026
The ROOT fixture also declared writers that only the tests of scikit-hep#1832 use, and
if any of them didn't compile with some ROOT version, the tests here would
fail too. The fixture also restores gErrorIgnoreLevel if a declaration fails.

Assisted-by: Claude Code:claude-opus-5-5
ariostas added a commit to ariostas/uproot5 that referenced this pull request Nov 6, 2026
Six tests (of Future.result timeouts, ThreadPoolExecutor.shutdown, the order
of LRUCache, and Library equality) were deleted here in favor of tests in
scikit-hep#1829, scikit-hep#1830 and scikit-hep#1832, which are based on this PR; until those are merged
nothing else would cover them. They are now deleted together with the tests
that replace them. A comment no longer points to a file of scikit-hep#1828.

Assisted-by: Claude Code:claude-opus-5-5
@codecov

codecov Bot commented Nov 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.38%. Comparing base (e12d2a4) to head (d7a7aec).

Additional details and impacted files

see 22 files with indirect coverage changes

ianna pushed a commit that referenced this pull request Nov 7, 2026
* test: tighten the existing tests and make their fixtures robust

Changes to existing tests from #1814 that don't depend on its fixes: they
check values instead of only running, restore checks that had been dropped,
close the files they open, and run concurrently (each XRootD server has its
own admin path and waits until it accepts connections, and reset_classes puts
the original model classes back).

Assisted-by: Claude Code:claude-opus-5-5

* test: keep the tests that the new coverage tests replace

Six tests (of Future.result timeouts, ThreadPoolExecutor.shutdown, the order
of LRUCache, and Library equality) were deleted here in favor of tests in
#1829, #1830 and #1832, which are based on this PR; until those are merged
nothing else would cover them. They are now deleted together with the tests
that replace them. A comment no longer points to a file of #1828.

Assisted-by: Claude Code:claude-opus-5-5

* test: iterate over XRootD in one step per file

MET_pt is in one TBasket, so with steps of 15 entries the later steps of a
file had nothing to request, and the XRootD source then sent an empty vector
read, which failed now and then. #1825 stops sending it; until then, these
tests iterate in one step per file.

Assisted-by: Claude Code:claude-opus-5-5
ariostas added a commit to ariostas/uproot5 that referenced this pull request Nov 10, 2026
The ROOT fixture also declared writers that only the tests of scikit-hep#1832 use, and
if any of them didn't compile with some ROOT version, the tests here would
fail too. The fixture also restores gErrorIgnoreLevel if a declaration fails.

Assisted-by: Claude Code:claude-opus-5-5
ariostas added a commit that referenced this pull request Nov 10, 2026
…1828)

* fix: correct errors found while testing RNTuple reading and writing

These were found by the tests of #1814, which are the regression tests here.
The fixes are to columns of narrower representations (zigzag, delta and
truncated or quantized floats), GPU reads of uncompressed and multi-page
columns, split columns of unsupported widths, unknown field roles, field
paths, linked attribute sets, anchors past 2 GB, and writing empty and
masked arrays.

Assisted-by: Claude Code:claude-opus-5-5

* test: declare only the C++ that the RNTuple regression tests use

The ROOT fixture also declared writers that only the tests of #1832 use, and
if any of them didn't compile with some ROOT version, the tests here would
fail too. The fixture also restores gErrorIgnoreLevel if a declaration fails.

Assisted-by: Claude Code:claude-opus-5-5

* refactor: remove the unused page_is_compressed field of FieldPayload

Each page now decides whether it is compressed, and uncompressed pages
are recorded as None, so nothing reads the cluster-wide flag anymore.

Assisted-by: Claude Code:claude-opus-5-5
@ariostas
ariostas changed the base branch from test/existing-tests to main November 12, 2026 16:02
New tests from scikit-hep#1814, apart from the regression tests of its fixes.

Assisted-by: Claude Code:claude-opus-5-5
The ROOT fixture also declared classes and writers that only the tests of
scikit-hep#1828 use; if any of them didn't compile with some ROOT version, the tests
here would fail too. gErrorIgnoreLevel is now restored if something fails
while it's lowered. The four LRUCache tests of test_1661 that
test_1832_cov_api_cache.py replaces are deleted here.

Assisted-by: Claude Code:claude-opus-5-5
Extending an RNTuple with lists that are all empty now works, and
test_1812 checks it, including that other mismatched types still fail.

Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type/test PR title type: test (set automatically)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant