Repository navigation
Add testing infrastructure, docs, and CI - #4
Merged
Merged
Conversation
- added compile-test and test targets to build.xml using JUnit Platform Console Standalone - added GitHub Actions CI workflow for automated build and test on push/PR - added MathUtilsTest (55 tests): equality, rounding, pure math, array ops, boolean arrays, permutations - added VectTest (30 tests): construction, arithmetic, geometry, statistics, transforms, predicates - added IntervalTest (14 tests): construction, containment, intersection, union, immutability - test JARs kept separate in lib/test-jars/ to avoid contaminating production builds
- MatrixTest (48 tests): construction, accessors, arithmetic, linear algebra (inverse, det, trace, rank), norms, statistics, structural ops (sub, cat, flatten), exp/log, predicates - QuaternionTest (17 tests): construction from axis/angle, inverse, rotation matrix properties (orthogonality, det=1), matrix roundtrip, known rotations (90° Z maps X→Y) - TriangleTest (14 tests): area (right/equilateral/degenerate), center, plane normal, closest point, distance, barycentric coordinates - BoxTest (19 tests): creation, containment, intersection, union, grow/scale/shift, immutability Total test count: 213
- HistogramTest (19 tests): creation, update, contains, sum, max, mode, normalize, density, entropy, otsu thresholding, smoothing, copy - SchemaTest (14 tests): construction, add/has/getIndex, defaults, lock, copy independence, iterator - TableTest (27 tests): construction, addField/addRecord, get/set, getRecord, where queries, withField defaults, remove, copy independence, proto, schema locking, iterator Total test count: 273
Documents the internals of the annotation/module system for developers: - annotation reference (class-level and field-level) - module discovery flow (Reflections scanning, QitMain dispatch) - CLI binding lifecycle (spec building, arg parsing, I/O, execution) - how to write new modules, batch tools, use enums/optionals - key source file reference
Uses @testfactory to dynamically generate a test per discovered module, running ModuleUtils.report() on each to verify annotation correctness. Catches annotation errors (wrong field types, conflicting roles, invalid defaults) at build time rather than runtime. Total test count: 749
Modules are pure data transforms; workflow orchestration belongs outside QIT. Added a Design Philosophy section to the developer guide and a user-facing "How do modules fit into a workflow?" section to modules.md, highlighting LONI Pipeline integration alongside modern workflow tools.
Auto-deploys the MkDocs site to GitHub Pages when docsite/ files change on main. Replaces manual deployment to cabeen.io/qitwiki.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test suites
Test plan