consistency API
Luna-Flow/linear-algebra/consistency 是一个仅用于测试的包。它没有公开项:其接口文件为空,存在的目的是在 immut、mutable 与 immut.MatrixFn 之间运行跨包一致性测试。
源码:src/consistency/core_wbtest.mbt。比较的内容及原因见 consistency 设计。
公开项
无。该包不应被导入。
测试套件
| 测试 | 必须一致的内容 |
|---|---|
matrix core operations stay aligned | immut 与 mutable 的存储顺序、+、*、转置、迹 |
matrix constructors and conversions stay aligned | make、new、from_2d_array、from_array、to_2d_array、退化形状 |
matrix and vector conversions stay aligned | 由向量构造的行矩阵、列矩阵和对角矩阵 |
semantic differences stay explicit | 文档中说明的差异(原地更新与返回新值的更新) |
shared same_index_swap stays aligned | swap_rows(i, i) 和 swap_cols(i, i) 在两者中都不产生任何效果 |
identity and transpose laws stay aligned | , , |
trace and multiplication associativity stay aligned | , |
vector tensor and matrix conversion laws stay aligned | 外积、行矩阵与列矩阵 |
cross-package matrix semiring laws on small integers | quickcheck:+ 的结合律、分配律、乘积相等 |
zero-column multiplication stays aligned | 乘积 |
immut and fn_matrix stay aligned on core laws | Matrix 与 MatrixFn 在 +、转置、行列式、pow 上的对比 |
all matrix implementations stay aligned under random small inputs | quickcheck:三种实现在随机 输入上的对比 |
运行方式:
moon test -p consistency