function SuiteSparse_test
% SuiteSparse_test exhaustive test of all SuiteSparse packages
%
% Your current directory must be SuiteSparse for this function to work.
% SuiteSparse_install must be run prior to running this test. Warning:
% this test takes a *** long **** time.
%
% Example:
% SuiteSparse_test
%
% See also SuiteSparse_install, SuiteSparse_demo.
% Copyright 2007, Tim Davis, University of Florida
npackages = 13 ;
h = waitbar (0, 'SuiteSparse test:') ;
SuiteSparse = pwd ;
v = getversion ;
if (v < 7)
error ('SuiteSparse_test requires MATLAB 7.0 or later') ;
end
% if at UF, ensure pre-installed UF Sparse Matrix Collection is used
uf = { '/cise/homes/davis/Install/UFget', 'd:/UFget', '/share/UFget', ...
'/windows/UFget' } ;
for k = 1:length(uf)
if (exist (uf {k}, 'dir'))
addpath (uf {k}) ;
break ;
end
end
try
%---------------------------------------------------------------------------
% CSparse (32-bit MATLAB only)
%---------------------------------------------------------------------------
if (isempty (strfind (computer, '64')))
% compile and install CSparse (not installed by SuiteSparse_install)
waitbar (1/(npackages+1), h, 'SuiteSparse test: CSparse') ;
addpath ([SuiteSparse '/CSparse/MATLAB/CSparse']) ;
addpath ([SuiteSparse '/CSparse/MATLAB/Demo']) ;
cd ([SuiteSparse '/CSparse/MATLAB/CSparse']) ;
cs_make ;
% test CSparse
cd ([SuiteSparse '/CSparse/MATLAB/Test']) ;
testall ;
% uninstall CSparse by removing it from path
rmpath ([SuiteSparse '/CSparse/MATLAB/CSparse']) ;
rmpath ([SuiteSparse '/CSparse/MATLAB/Demo']) ;
end
%---------------------------------------------------------------------------
% CXSparse
%---------------------------------------------------------------------------
waitbar (2/(npackages+1), h, 'SuiteSparse test: CXSparse') ;
cd ([SuiteSparse '/CXSparse/MATLAB/Test']) ;
testall ;
%---------------------------------------------------------------------------
% COLAMD
%---------------------------------------------------------------------------
waitbar (3/(npackages+1), h, 'SuiteSparse test: COLAMD') ;
cd ([SuiteSparse '/COLAMD/MATLAB']) ;
colamd_test ;
%---------------------------------------------------------------------------
% CCOLAMD
%---------------------------------------------------------------------------
waitbar (4/(npackages+1), h, 'SuiteSparse test: CCOLAMD') ;
cd ([SuiteSparse '/CCOLAMD/MATLAB']) ;
ccolamd_test ;
%---------------------------------------------------------------------------
% UMFPACK
%---------------------------------------------------------------------------
waitbar (5/(npackages+1), h, 'SuiteSparse test: UMFPACK') ;
cd ([SuiteSparse '/UMFPACK/MATLAB']) ;
umfpack_test (800) ;
%---------------------------------------------------------------------------
% CHOLMOD
%---------------------------------------------------------------------------
waitbar (6/(npackages+1), h, 'SuiteSparse test: CHOLMOD') ;
cd ([SuiteSparse '/CHOLMOD/MATLAB/Test']) ;
cholmod_test ;
%---------------------------------------------------------------------------
% BTF
%---------------------------------------------------------------------------
waitbar (7/(npackages+1), h, 'SuiteSparse test: BTF') ;
cd ([SuiteSparse '/BTF/MATLAB/Test']) ;
btf_test ;
%---------------------------------------------------------------------------
% KLU
%---------------------------------------------------------------------------
waitbar (8/(npackages+1), h, 'SuiteSparse test: KLU') ;
cd ([SuiteSparse '/KLU/MATLAB/Test']) ;
klu_test ;
%---------------------------------------------------------------------------
% LDL
%---------------------------------------------------------------------------
waitbar (9/(npackages+1), h, 'SuiteSparse test: LDL') ;
cd ([SuiteSparse '/LDL/MATLAB']) ;
ldlmain2 ;
ldltest ;
%---------------------------------------------------------------------------
% LINFACTOR: MATLAB 7.3 (R2006b) or later required
%---------------------------------------------------------------------------
if (v > 7.2)
waitbar (10/(npackages+1), h, 'SuiteSparse test: LINFACTOR') ;
cd ([SuiteSparse '/LINFACTOR']) ;
lintests ;
end
%---------------------------------------------------------------------------
% MESHND
%---------------------------------------------------------------------------
waitbar (11/(npackages+1), h, 'SuiteSparse test: MESHND') ;
cd ([SuiteSparse '/MESHND']) ;
meshnd_quality ;
%---------------------------------------------------------------------------
% SSMULT
%---------------------------------------------------------------------------
waitbar (12/(npackages+1), h, 'SuiteSparse test: SSMULT') ;
cd ([SuiteSparse '/SSMULT']) ;
ssmult_test ;
%---------------------------------------------------------------------------
% MATLAB_Tools
%---------------------------------------------------------------------------
waitbar (13/(npackages+1), h, 'SuiteSparse test: MATLAB Tools') ;
cd ([SuiteSparse '/MATLAB_Tools']) ;
figure (1) ;
clf
pagerankdemo (1000) ;
figure (2) ;
clf
seashell ;
shellgui ;
cd ([SuiteSparse '/MATLAB_Tools/waitmex']) ;
waitmex ;
url = 'http://www.cise.ufl.edu/research/sparse' ;
fprintf ('Click here for more details\n', url) ;
hprintf ('or see \n', url) ;
%---------------------------------------------------------------------------
% AMD, CAMD, UFcollection, UFget
%---------------------------------------------------------------------------
% no exhaustive tests; tested via other packages
catch %#ok
%---------------------------------------------------------------------------
% test failure
%---------------------------------------------------------------------------
cd (SuiteSparse) ;
disp (lasterr) ; %#ok
fprintf ('SuiteSparse test: FAILED\n') ;
return
end
%-------------------------------------------------------------------------------
% test OK
%-------------------------------------------------------------------------------
close (h) ;
fprintf ('SuiteSparse test: OK\n') ;
cd (SuiteSparse) ;