You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.4 KiB
Matlab
61 lines
1.4 KiB
Matlab
function mmtest()
|
|
tmpfile = [num2str(now()) '.mtx'];
|
|
fp_err = 1e-15;
|
|
|
|
function works = rwtest(m)
|
|
mmwrite(tmpfile, m);
|
|
m2 = mmread(tmpfile);
|
|
works = all(abs(m(:) - m2(:)) < fp_err*mean(abs(m(:))));
|
|
delete(tmpfile);
|
|
end
|
|
|
|
dense_r = rand(100) + 1i * rand(100);
|
|
sparse_r = sparse(dense_r * (abs(dense_r) > mean(abs(dense_r(:)))));
|
|
|
|
% full
|
|
assert(rwtest(dense_r));
|
|
assert(rwtest(sparse_r));
|
|
|
|
% symmetric
|
|
assert(rwtest( tril(dense_r) + tril(dense_r).' ));
|
|
assert(rwtest( tril(sparse_r) + tril(sparse_r).' ));
|
|
|
|
% skew-symmetric
|
|
assert(rwtest( tril(dense_r) - tril(dense_r).' ));
|
|
assert(rwtest( tril(sparse_r) - tril(sparse_r).' ));
|
|
|
|
% hermitian
|
|
assert(rwtest( tril(dense_r) + tril(dense_r)' ));
|
|
assert(rwtest( tril(sparse_r) + tril(sparse_r)' ));
|
|
|
|
|
|
|
|
dense_r = real(dense_r);
|
|
sparse_r = real(sparse_r);
|
|
|
|
% full
|
|
assert(rwtest(dense_r));
|
|
assert(rwtest(sparse_r));
|
|
|
|
% symmetric
|
|
assert(rwtest( tril(dense_r) + tril(dense_r).' ));
|
|
assert(rwtest( tril(sparse_r) + tril(sparse_r).' ));
|
|
|
|
% skew-symmetric
|
|
assert(rwtest( tril(dense_r) - tril(dense_r).' ));
|
|
assert(rwtest( tril(sparse_r) - tril(sparse_r).' ));
|
|
|
|
% hermitian
|
|
assert(rwtest( tril(dense_r) + tril(dense_r)' ));
|
|
assert(rwtest( tril(sparse_r) + tril(sparse_r)' ));
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|