| 214 | } |
| 215 | |
| 216 | fn check_sparse() { |
| 217 | // SPMatrix transpose (sparse.rs:97, 102) |
| 218 | let m = ml_matrix("1 0 2 0; 0 3 0 4; 5 0 0 6; 0 7 8 0"); |
| 219 | let sp: SPMatrix = SPMatrix::from_dense(&m); |
| 220 | let spt: SPMatrix = sp.transpose(); |
| 221 | let recovered = spt.to_dense(); |
| 222 | print_kv("sparse transpose hash", hash_matrix(&recovered)); |
| 223 | // Also exercise a non-square shape and verify double-transpose |
| 224 | // returns the original. |
| 225 | let m2 = ml_matrix("1 0 0; 0 2 3; 4 0 5; 0 6 0"); |
| 226 | let sp2: SPMatrix = SPMatrix::from_dense(&m2); |
| 227 | let sp2tt = sp2.transpose().transpose().to_dense(); |
| 228 | print_kv("sparse round-trip hash", hash_matrix(&sp2tt)); |
| 229 | } |
| 230 | |
| 231 | fn check_useful() { |
| 232 | // useful::max / useful::min (useful.rs:82, 100) |