ADR 0003 - Three-artifact NumPy-faithfulness model
"Behave similarly to NumPy" is tracked as three distinct artifacts, not one tracking document:
- (a) Parity test - in-code, in
core_func/. Commented NumPy Python acts as the reference oracle;assert_equalchecks rstsr agrees. Inherently row-major (NumPy is C-order by default). - (b) Coverage checklist -
rstsr-core/tests/tracking/numpy_coverage.csv, machine-readable. One row per NumPy test function: path, class, method, version, status (transferred/partial/not-applicable/todo), mappedrstsr_test, anumpy_source_hash, and a note. Machine-readable so a NumPy version bump can be diffed against it. - (c) Differences reports -
rstsr-core/tests/tracking/numpy_differences.md(open divergences) andnumpy_differences_resolved.md(divergences since fixed), human-readable. Each open divergence taggedintentional/bug/col-major-transfer.
1. Discipline
A divergence found during (a) is filed as a bug or recorded in (c) - never silently left in a comment.
2. Rationale
Split over a single tracking file because the checklist must be machine-readable (for semi-auto NumPy drift detection) while the report must be human-readable and the parity tests are inherently in-code. Col-major transfer difficulties fold into (c) under the col-major-transfer tag rather than a fourth file.