1function gbtest101 2%GBTEST101 test loading of v3 GraphBLAS objects 3 4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 5% SPDX-License-Identifier: GPL-3.0-or-later 6 7load gbtestv3 8whos 9 10G 11fprintf ('================== v3 sparse struct:\n') ; 12G_struct = struct (G) 13G2 = GrB (G, 'sparse') ; 14fprintf ('================== v5 sparse struct:\n') ; 15G2_struct = struct (G2) 16assert (isequal (G, A)) ; 17assert (isequal (G2, A)) ; 18 19assert (isfield (G_struct, 'GraphBLAS')) ; 20assert (isfield (G2_struct, 'GraphBLASv5')) ; 21G3 = GrB (G) ; 22G3_struct = struct (G3) ; 23assert (isfield (G3_struct, 'GraphBLASv5')) ; 24assert (isequal (G3, A)) ; 25 26[m1, n1] = size (G) ; 27[m2, n2] = size (A) ; 28assert (m1 == m2) ; 29assert (n1 == n2) ; 30 31t1 = GrB.type (G) ; 32t2 = GrB.type (A) ; 33assert (isequal (t1, t2)) ; 34 35[s1, f1] = GrB.format (G) ; 36[s2, f2] = GrB.format (G2) ; 37assert (isequal (s1, s2)) ; 38assert (isequal (f1, f2)) ; 39 40H2 = GrB (H, 'hyper') ; 41fprintf ('================== v3 hypersparse struct:\n') ; 42H_struct = struct (H) 43fprintf ('================== v5 hypersparse struct:\n') ; 44H2_struct = struct (H2) 45 46assert (isfield (H_struct, 'GraphBLAS')) ; 47assert (isfield (H2_struct, 'GraphBLASv5')) ; 48H3 = GrB (H) ; 49H3_struct = struct (H3) ; 50assert (isfield (H3_struct, 'GraphBLASv5')) ; 51assert (isequal (H3, H)) ; 52 53H3 = GrB (n,n) ; 54H3 (1:4, 1:4) = magic (4) ; 55assert (isequal (H2, H)) ; 56assert (isequal (H3, H)) ; 57 58[s1, f1] = GrB.format (H) ; 59[s2, f2] = GrB.format (H2) ; 60assert (isequal (s1, s2)) ; 61assert (isequal (f1, f2)) ; 62 63t1 = GrB.type (H2) ; 64t2 = GrB.type (H) ; 65assert (isequal (t1, t2)) ; 66 67R2 = GrB (R) ; 68assert (isequal (R2, R)) ; 69assert (isequal (R2, A')) ; 70 71assert (isfield (struct (R), 'GraphBLAS')) ; 72assert (isfield (struct (R2), 'GraphBLASv5')) ; 73 74X2 = GrB (X) ; 75assert (isequal (magic (4), X)) ; 76assert (isequal (magic (4), X2)) ; 77 78assert (isfield (struct (X), 'GraphBLAS')) ; 79assert (isfield (struct (X2), 'GraphBLASv5')) ; 80 81fprintf ('================== v3 dense struct (held in sparse format):\n') ; 82X_struct = struct (X) 83fprintf ('================== v5 dense struct (no integers in struct):\n') ; 84X2_struct = struct (X2) 85 86fprintf ('gbtest101: all tests passed\n') ; 87 88