Skip to main content
DateAug 8, 2026·Versionv0.7.9·AI usageYes

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_equal checks 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), mapped rstsr_test, a numpy_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) and numpy_differences_resolved.md (divergences since fixed), human-readable. Each open divergence tagged intentional / 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.