Deep dive: pandas test parity audit — fill xs test coverage gaps#261
Deep dive: pandas test parity audit — fill xs test coverage gaps#261
xs test coverage gaps#261Conversation
Agent-Logs-Url: https://github.com/githubnext/tsessebe/sessions/c6aeff19-4fd3-44f0-bd1a-26e491895e29 Co-authored-by: mrjf <180956+mrjf@users.noreply.github.com>
xs test coverage gaps
…errors - Replace string-literal property access rec["size"], rec["at"], rec["getLoc"] with dot notation in src/core/frame.ts - Refactor applyNearest in src/core/reindex.ts into three smaller helpers (buildLeftNearest, buildRightNearest, pickNearest) to bring cognitive complexity below the Biome limit of 15 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Commit pushed:
|
|
Evergreen fix applied — resolved the Root causes:
Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "releaseassets.githubusercontent.com"See Network Configuration for more information.
|
…t TS compliance - frame.ts: use rec["size"], rec["at"], rec["getLoc"] to satisfy noPropertyAccessFromIndexSignature - reindex.ts: use ?? -1 / ?? null for noUncheckedIndexedAccess on array element access Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Commit pushed:
|
Evergreen CI Fix ✅Fixed 4 TypeScript errors caught by
|
|
@coplot fix tests |
1 similar comment
|
@coplot fix tests |
|
Warning The 🌿 Evergreen — Merge FixThis PR was 54 commits behind What was merged: 46 files changed, including new benchmarks, CI is now running on the updated HEAD (
|
|
Warning The Evergreen: Merge with mainThis PR was 56 commits behind What changed: The merge brought in infrastructure updates (CI workflows, benchmarks, new The previous CI failure ("Test & Lint") was caused by lint errors introduced by the drift from main. After the merge, the branch should be lint-clean. CI is running on the new HEAD.
|
|
Warning The Evergreen 🌲 — Merge with The branch was 56 commits behind
If checks are still failing after CI completes, Evergreen will attempt a targeted fix on the next run. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "releaseassets.githubusercontent.com"See Network Configuration for more information.
|
|
Warning The Evergreen Fix 🌿Fixed two issues on this PR: Push 1 — Merged Push 2 — Fixed lint errors
CI should now pass.
|
|
Warning The 🌲 Evergreen — PR Health FixThis PR was 56 commits behind Push 1 — Merged
|
|
Warning The Evergreen: PR health fix ✅Push 1 — Merged Push 2 — Fixed lint errors
CI should now pass. 🤞
|
|
Warning The Evergreen — PR Health UpdateI fixed two issues with this PR: 1. Merged 2. Fixed lint errors introduced by the PR
Two commits were pushed:
CI should now pass on the new HEAD. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "releaseassets.githubusercontent.com"See Network Configuration for more information.
|
|
Warning The Evergreen — PR Health Fix ✅Two pushes were made to bring this PR up to date: Push 1 — Merged
|
|
Warning The Evergreen: PR Health Fix ✅What was donePush 1 — Merged Push 2 — Fixed lint errors
CI should now pass on the new HEAD.
|
|
Warning The Evergreen FixI merged Push 1 — merge main
Push 2 — lint fixes
|
|
Warning The Evergreen: Merge with
|
|
Warning The Evergreen — PR Health Keeper 🌿This PR was 56 commits behind Action taken: Merged The PR's own changes are minimal (
|
|
Warning The Evergreen: Merge Fix Applied 🌿This PR was 56 commits behind I merged If checks are still failing after CI completes, a follow-up Evergreen run will investigate the specific failures.
|
|
Warning The Evergreen: Merged
|
|
Warning The Evergreen 🌿 — merged The merge was clean with no conflicts. CI should now pass on the updated branch. If checks are still failing after this push, a subsequent Evergreen run will investigate the logs.
|
|
Warning The Evergreen 🌿 — Merged The merge was clean with no conflicts. CI is now running on the updated branch — if checks pass, this PR should be ready to review.
|
|
Warning The Evergreen 🌲 — merged The branch was 56 commits behind If checks are still failing after CI completes, Evergreen will investigate on the next run.
|
|
Warning The Evergreen — PR Health FixThis PR was 56 commits behind What was done:
The PR's own changes ( Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "releaseassets.githubusercontent.com"See Network Configuration for more information.
|
|
Warning The Evergreen: Merged
|
|
Warning The Evergreen 🌿 — Merge with This branch was 56 commits behind The merge commit has been pushed. CI is now running on the updated branch — if the failing checks were caused by drift, they should pass. I'll follow up with a CI fix if needed on the next run.
|
|
Warning The Evergreen FixTwo issues were resolved: 1. Merged 2. Fixed failing CI (biome lint errors)
Both fixes were pushed as separate commits. CI should now pass.
|
|
Warning The Evergreen 🌲 — merge fix applied This PR was 56 commits behind The previous CI failure ( The PR's own changes ( New CI run should be green. 🤞
|
|
Warning The 🌿 Evergreen: Merge with
|
Audit of test parity against pandas' own test suite: are we pinning every behaviour the implementation supports? File-level coverage is complete, but assertion-level coverage is uneven —
xsis the worked example.Audit findings
src/<module>/<file>.tshas a matchingtests/<module>/<file>.test.ts. Sole exception: the abstractsrc/core/base-index.ts, exercised transitively viaIndex/RangeIndex.src/stats/xs.tshonours the fullpandas.{DataFrame,Series}.xsoption surface, but the existing tests only covered the happy path with positive integer levels. Several supported behaviours had zero coverage.Gaps closed in
tests/stats/xs.test.ts(+19 cases, no production change)level: "letter"), negative indices (level: -1), and the corresponding error paths (out-of-range number, unknown name) for both DataFrame and Series.dropLevel: false— verifies the matched level and its name survive in the resultMultiIndex, for both DataFrame and Series.namepreservation on the duplicate-label branch.Result
Coverage of
src/stats/xs.tsrises from 76.92% → 92.31%; suite goes 6,765 → 6,784 tests, all green. The same audit pattern (probe the implementation's option surface against pandas docs, pin each branch) is the template to apply to the rest of the ported surface in follow-up PRs.