• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ponder-lab / Hybridize-Functions-Refactoring / #2460
83%

Build:
DEFAULT BRANCH: main
Ran 10 Jul 2026 05:46PM UTC
Jobs 1
Files 32
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 Jul 2026 05:36PM UTC coverage: 81.797% (+0.2%) from 81.576%
#2460

push

github

web-flow
Track suffix and prefix shape slices rank-independently so the descriptor survives unresolvable ranks (#762)

* Track suffix and prefix shape slices rank-independently

The numpy-shape descriptor was dropped at a slice whenever the source tensor's rank was statically unresolvable (a ⊤ context, or contexts disagreeing on rank): `narrowBySlice` required `sourceRank`, so the corpus `einsum_via_matmul` suffix slice `input_shape[-num_inner_dims:]` fell back to an untracked shape taint and the sink saw a null descriptor, never consulting `numpyOverShapeStaticness`. A pure suffix slice covers the last `k` dimensions regardless of rank, so it is now narrowed to negative indices that the verdict resolves against each context's own rank (out-of-range indices degrade to unprovable, mirroring Python's clamping); a pure prefix slice likewise needs no rank. Rank-resolvable slices keep the absolute path unchanged.

The BERT-style `get_shape_list` idiom itself (in-callee `.shape.as_list()`, element-wise `tf.shape` mutation, dual returns) turns out to be tracked already: the caller-side extractor seed anchors the all-dimensions descriptor at the call site independent of the helper's internals. `testNumpyOnDynamicShapeThroughShapeList` pins that with a fixture distilling NLPGNN's helper verbatim, and `testNumpyOnDynamicTailAcrossRanks` pins the actual fix: a suffix slice over a mixed-rank source with a dynamic trailing dimension now declines, where the dropped descriptor previously permitted the crasher.

Closes #761.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M4XLK81HCB6Vp1WQiRPafR

* Preserve the descriptor under no-op and empty rank-free slices

A no-op copy slice (`[:]`) covers every dimension regardless of rank, so it now preserves the base descriptor instead of dropping it, and the empty prefix `[:0]` is likewise rank-independent (it covers nothing). The across-ranks pin now exercises all three rank-fr... (continued)

22 of 23 new or added lines in 1 file covered. (95.65%)

2130 of 2604 relevant lines covered (81.8%)

0.82 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
91.44
0.86% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/Util.java
Jobs
ID Job ID Ran Files Coverage
1 #2460.1 10 Jul 2026 05:46PM UTC 32
81.8
Source Files on build #2460
  • Tree
  • List 32
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • a9801221 on github
  • Prev Build on gh-readonly-queue/main/pr-758-25c0ed3d61868cc4041e2ee87dccb1e815b25e50
  • Next Build on main
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc