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