1function gbtest51 2%GBTEST51 test GrB.tricount and concatenate 3 4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 5% SPDX-License-Identifier: GPL-3.0-or-later 6 7files = { 8'../../Demo/Matrix/2blocks' 9'../../Demo/Matrix/ash219' 10'../../Demo/Matrix/bcsstk01' 11'../../Demo/Matrix/bcsstk16' 12'../../Demo/Matrix/eye3' 13'../../Demo/Matrix/fs_183_1' 14'../../Demo/Matrix/ibm32a' 15'../../Demo/Matrix/ibm32b' 16'../../Demo/Matrix/lp_afiro' 17'../../Demo/Matrix/mbeacxc' 18'../../Demo/Matrix/t1' 19'../../Demo/Matrix/t2' 20'../../Demo/Matrix/west0067' } ; 21nfiles = length (files) ; 22 23% the files in ../../Demo/Matrix that do not have a .mtx filename 24% are zero-based. 25desc.base = 'zero-based' ; 26 27valid_count = [ 28 0 29 0 30 160 31 1512964 32 0 33 863 34 0 35 0 36 0 37 0 38 2 39 0 40 120 ] ; 41 42[filepath, name, ext] = fileparts (mfilename ('fullpath')) ; %#ok<*ASGLU> 43 44for k = 1:nfiles 45 % fprintf ('--------------------------load file:\n') ; 46 filename = files {k} ; 47 T = load (fullfile (filepath, filename)) ; 48 nz = size (T, 1) ; 49 X = ones (nz,1) ; 50 G = GrB.build (int64 (T (:,1)), int64 (T (:,2)), X, desc) ; 51 A = sparse (T (:,1)+1, T (:,2)+1, X) ; 52 assert (isequal (A,G)) 53 54 % fprintf ('--------------------------construct G:\n') ; 55 [m, n] = size (G) ; 56 if (m ~= n) 57 G = [GrB(m,m) G ; G' GrB(n,n)] ; %#ok<*AGROW> (concatenate) 58 elseif (~issymmetric (G)) 59 G = G + G' ; 60 end 61 62 % fprintf ('--------------------------tricount (G):\n') ; 63 c = GrB.tricount (G) ; 64 % fprintf ('triangle count: %-30s : # triangles %d\n', filename, c) ; 65 assert (c == valid_count (k)) ; 66 67 % fprintf ('--------------------------convert G to by-row:\n') ; 68 G = GrB (G, 'by row') ; 69 70 % fprintf ('--------------------------tricount (G):\n') ; 71 c = GrB.tricount (G) ; 72 assert (c == valid_count (k)) ; 73end 74 75% fprintf ('--------------------------tricount (G, ''check''):\n') ; 76c = GrB.tricount (G, 'check') ; 77assert (c == valid_count (end)) ; 78 79fprintf ('\ngbtest51: all tests passed\n') ; 80 81