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

source-academy / plugins / 30499946537
97%
feat/add-init-infra: 67%

Build:
Build:
LAST BUILD BRANCH: misc-changes
DEFAULT BRANCH: feat/add-init-infra
Ran 29 Jul 2026 11:35PM UTC
Jobs 1
Files 31
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

29 Jul 2026 11:34PM UTC coverage: 96.831% (+3.1%) from 93.763%
30499946537

push

github

web-flow
Restore Binary Tree / General Tree view modes to the data visualizer (#81)

* Restore Binary Tree / General Tree view modes

Prof Martin flagged that dropping these during the Conductor port
(deleted outright, "now fully unused") was a mistake — they're an
important feature, not dead weight. Ports the old pre-Conductor
frontend's classification (isBinaryTree/isGeneralTree) and layout
(initializeTreeMetaData) algorithms from dataVisualizer.tsx/Tree.tsx,
and the two drawers, onto the new wire format:

- classify.ts: re-derives cycle/shared-structure detection and
  binary/general-tree classification against SerializedDataVisualizerNode
  (a tagged N-ary "array" node) instead of the old code's raw nested-pair
  walking (`structures[0]`/`structures[1]` on live objects), generalized
  from a fixed 2-element-pair representation since a native list isn't
  fixed at length 2. Keyed by RefId instead of WeakMap<object, _> — no
  live object identity crosses the wire.
- BinaryTreeDrawer.tsx/GeneralTreeDrawer.tsx: the drawing algorithms
  themselves are an unchanged, verified line-for-line port (every
  leftCOUNTER/rightCOUNTER/EY1/EY2/scalerV/originIndex calculation) —
  only the state-access pattern changed, from the old code's global
  DataVisualizer statics (DataVisualizer.isBinTree, .TreeDepth, ...) to
  an injected per-call ClassificationResult.
- BaseTreeNode.ts: restores nodePos/nodeColor, populated in
  Tree.fromSerializedNode from the classification's computed layout.
- Tree.ts: draw() now takes a ViewMode and returns the matching drawer
  instance (mirrors the old Tree.tsx's draw()) instead of drawing
  directly — callers now do `.draw(viewMode).draw(x, y, key)`.
- DataVisualizerView.tsx: a global Original/Binary Tree/General Tree
  toggle, applying across every call and argument (matching the old
  tool's single static toggle). Doesn't hide anything — a structure
  that isn't actually the selected shape still renders, via the
  drawers' own "not a bin... (continued)

305 of 323 branches covered (94.43%)

Branch coverage included in aggregate %.

233 of 235 new or added lines in 6 files covered. (99.15%)

581 of 592 relevant lines covered (98.14%)

26.48 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
98.75
src/web/data-visualizer/src/classify.ts
1
95.33
src/web/data-visualizer/src/tree/BinaryTreeDrawer.tsx
Jobs
ID Job ID Ran Files Coverage
1 30499946537.1 29 Jul 2026 11:35PM UTC 31
96.83
GitHub Action Run
Source Files on build 30499946537
  • Tree
  • List 31
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30499946537
  • 30bbfc7c on github
  • Prev Build on main (#30451757216)
  • Next Build on main (#30522045530)
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