1function gbtest50 2%GBTEST50 test GrB.ktruss and GrB.tricount 3 4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 5% SPDX-License-Identifier: GPL-3.0-or-later 6 7rng ('default') ; 8 9load west0479 ; %#ok<*LOAD> 10A = GrB.offdiag (west0479) ; 11A = A+A' ; 12C3a = GrB.ktruss (A) ; 13C3 = GrB.ktruss (A, 3) ; 14assert (isequal (C3a, C3)) ; 15C3 = GrB.ktruss (A, 3, 'check') ; 16assert (isequal (C3a, C3)) ; 17 18ntriangles = sum (C3, 'all') / 6 ; 19 20C4a = GrB.ktruss (A, 4) ; 21C4b = GrB.ktruss (C3, 4) ; % this is faster 22assert (isequal (C4a, C4b)) ; 23 24nt2 = GrB.tricount (A) ; 25assert (ntriangles == nt2) ; 26assert (ntriangles == 235) ; 27 28d = GrB.entries (A, 'col', 'degree') ; 29nt2 = GrB.tricount (A, d) ; 30assert (ntriangles == nt2) ; 31assert (ntriangles == 235) ; 32 33nt2 = GrB.tricount (A, 'check', d) ; 34assert (ntriangles == nt2) ; 35assert (ntriangles == 235) ; 36 37nt2 = GrB.tricount (A, d, 'check') ; 38assert (ntriangles == nt2) ; 39assert (ntriangles == 235) ; 40 41rng ('default') ; 42for k = 1:200 43 if (mod (k, 10) == 1) 44 fprintf ('.') ; 45 end 46 n = 10000 ; 47 G = GrB.eye (10000) ; 48 j = randperm (n, 10) ; 49 G (:,j) = 1 ; 50 G (j,:) = 1 ; 51 nt = GrB.tricount (G) ; %#ok<NASGU> 52end 53 54fprintf ('\ngbtest50: all tests passed\n') ; 55 56