1function gbtest98
2%GBTEST98 test row/col degree for hypersparse matrices
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
9n = 2^12 ;
10G = GrB (n, n) ;
11I = randperm (n, 8) ;
12G (I,I) = magic (8) ;
13
14d = double (GrB.entries (G, 'row', 'degree')) ;
15A = double (G) ;
16d2 = sum (spones (A))' ;
17assert (isequal (d, d2)) ;
18
19G = GrB (G, 'by row') ;
20d = double (GrB.entries (G, 'col', 'degree')) ;
21assert (isequal (d, d2)) ;
22
23G = G + GrB.eye (n) ;
24A = double (G) ;
25d2 = sum (spones (A))' ;
26d = double (GrB.entries (G, 'col', 'degree')) ;
27assert (isequal (d, d2)) ;
28
29n = 2 * flintmax ;
30G = GrB (n, n) ;
31I = sort (randperm (flintmax-1, 8)) ;
32A = magic (8) ;
33G (I,I) = A ;
34x1 = nonzeros (A) ;
35x2 = nonzeros (G) ;
36assert (isequal (x1, x2)) ;
37
38[i1,j1,x1] = GrB.extracttuples (G) ;
39[~ ,~ ,x2] = GrB.extracttuples (A) ;
40assert (isequal (x1, x2)) ;
41
42assert (isequal (class (i1), 'int64')) ;
43assert (isequal (class (j1), 'int64')) ;
44
45G = GrB.random (8, 8, 0.5) ;
46A = double (G) ;
47G = full (G, 'double', 1) ;
48A (A == 0) = 1 ;
49assert (isequal (A, G)) ;
50
51fprintf ('\ngbtest98: all tests passed\n') ;
52