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