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 | +、転置、行列式、pow に関する Matrix と MatrixFn の比較 |
all matrix implementations stay aligned under random small inputs | quickcheck: ランダムな 入力に対する三つの実装すべて |
実行方法:
moon test -p consistency