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

pyiron / pyiron_workflow_atomistics / 25766024387
90%

Build:
DEFAULT BRANCH: main
Ran 12 May 2026 10:31PM 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

12 May 2026 10:30PM UTC coverage: 41.81% (-0.1%) from 41.905%
25766024387

push

github

web-flow
Test coverage 50%→70% and four engine bug fixes (#36)

* test: cover MD, GB, segregation, bulk, transform paths; fix latent rewrite bugs

Brings total coverage from 50% to 70% (158 passing, 1 skip, 2 xfail) and
fixes several latent defects in the Engine-Protocol rewrite that had no
test coverage.

Bug fixes in source:
- _make_engines_with_subdirs / _make_engines_from_dirs returned generic
  `list`; downstream for_node channels expect `list[Engine]`. Pure-Python
  graph construction failed before any calculation ran.
- extract_outputs_from_EngineOutputs filtered on `output.convergence` but
  the EngineOutput field is `converged` — every output was silently
  discarded, manifesting as "No converged runs" everywhere.
- analysis/gb_plane.find_gb_plane used `np.random.choice` without a seed
  for bulk sampling. Result was nondeterministic GB-plane location and
  variable cleavage-plane counts → variable runtime and silent physics
  drift between runs.
- analysis/gb_plane: plot_gb_plane and plot_structure_2d called
  `plt.show()` from library code; on a headless interactive backend
  (tkagg) this blocks indefinitely. Removed.

Design tightening in find_gb_plane:
- Bulk slabs are now pinned to fractional quarter-points 0.25 and 0.75
  (geometric centres of each grain in a centred bicrystal). Removed the
  bulk_offset parameter — the only sensible value was approx_frac±0.25.
- Bulk index selection now sorts by axial coord and takes the first
  n_bulk; deterministic and matches the previous random-pick semantics.
- Defensive ValueError when slab_thickness yields no bulk atoms, instead
  of a confusing pandas broadcast error.
- Existing test_gb_cleavage and conftest mocks updated for the
  convergence→converged rename.

Coverage infrastructure:
- tests/conftest.py forces matplotlib.use("Agg") at import so headless
  CI cannot block on plt.show() or fail trying to open a display.

New tests:
- engine/test_ase_md.py — 12 MD tests (NVE, NVT × 3 thermostats, NPT × ... (continued)

878 of 2100 relevant lines covered (41.81%)

0.42 hits per line

Coverage Regressions

Lines Coverage ∆ File
64
17.89
-0.08% engine/ase.py
20
52.8
0.0% physics/grain_boundary.py
19
86.27
-0.55% analysis/gb_plane.py
1
98.36
-0.03% physics/_grain_boundary_helpers/dataclass_storage.py
Jobs
ID Job ID Ran Files Coverage
1 25766024387.1 12 May 2026 10:31PM UTC 32
41.81
GitHub Action Run
Source Files on build 25766024387
  • Tree
  • List 32
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25766024387
  • bfeacf8c on github
  • Prev Build on main (#25752020889)
  • Next Build on main (#25766632702)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc