1function v = bfs_test (A, s) 2%BFS_TEST compares bfs_matlab and GB_mex_bfs 3 4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 5% SPDX-License-Identifier: Apache-2.0 6 7if (nargin < 2) 8 s = 1 ; 9end 10A = sparse (A) ; 11 12% test the MATLAB version 13tic 14v = bfs_matlab (A, s) ; 15t1 = toc ; 16n = size (A,1) ; 17 18fprintf ('# of nodes in graph: %d\n', n) ; 19fprintf ('source node: %d\n', s) ; 20fprintf ('number of levels: %d\n', max (v)) ; 21fprintf ('reachable nodes (incl. source): %d\n', length (find (v > 0))) ; 22 23for level = 1:n 24 q = find (v == level)' ; 25 if (isempty (q)) 26 break ; 27 end 28 if (n > 100) 29 fprintf ('# of nodes in level %d: %d\n', level, length (q)) ; 30 else 31 fprintf ('nodes in level %d: ', level) ; 32 fprintf ('%d ', q) ; 33 fprintf ('\n') ; 34 end 35end 36 37% now try GB_mex_bfs: 38 39fprintf ('\ntesting GB_mex_bfs:\n') ; 40 41tic 42v2 = GB_mex_bfs (A, s) ; 43t2 = toc ; 44 45fprintf ('MATLAB time: %g\n', t1) ; 46fprintf ('GraphBLAS time: %g (Demo/bfs5m)\n', t2) ; 47 48assert (isequal (full (v), full (v2))) ; 49 50fprintf ('bfs_test: all tests passed\n') ; 51 52 53