1function gbtest95 2%GBTEST95 test indexing 3 4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 5% SPDX-License-Identifier: GPL-3.0-or-later 6 7G = GrB.empty (GrB ([0 2])) ; 8assert (isequal (size (G), [0 2])) ; 9 10A = magic (4) ; 11I = GrB ([1 2]) ; 12G = GrB (A) ; 13X = G (:,1) ; 14Y = G (:,1) ; 15C1 = X (I) ; 16C2 = Y ([1 2]) ; 17assert (isequal (C1, C2)) ; 18 19C1 = X ({ I }) ; 20assert (isequal (C1, C2)) ; 21 22C1 = G ({ }, { }) ; 23assert (isequal (C1, G)) ; 24 25H = GrB (2^59, 2^60) ; 26[m, n] = size (H) ; 27s = GrB.isfull (H) ; 28assert (~s) ; 29assert (isequal ([m n], [2^59 2^60])) ; 30assert (isa ([m n], 'int64')) ; 31 32H = GrB.random (3, 4, inf, 'range', GrB ([2 4], 'int8')) ; 33assert (GrB.isfull (H)) ; 34assert (isequal (GrB.type (H), 'int8')) ; 35 36H = GrB.random (H, 'range', GrB ([3 4], 'uint32')) ; 37assert (GrB.isfull (H)) ; 38assert (isequal (GrB.type (H), 'uint32')) ; 39 40C = tril (H, GrB (1,1)) ; 41assert (istril (C)) ; 42 43types = gbtest_types ; 44for k = 1:length (types) 45 type = types {k} ; 46 if (contains (type, 'complex') || isequal (type, 'logical')) 47 continue ; 48 end 49 I = GrB ([1 2], type) ; 50 C1 = A (I,I) ; 51 C2 = A ([1 2], [1 2]) ; 52 C3 = A (int8 ([1 2]), int8 ([1 2])) ; 53 C4 = G (I,I) ; 54 assert (isequal (C1, C2)) 55 assert (isequal (C1, C3)) 56 assert (isequal (C1, C4)) 57end 58 59I1 = [1 2 ; 3 4] ; 60I2 = GrB (I1) ; 61C1 = A (I1,I1) ; 62C2 = A (I2,I2) ; 63H = GrB (2^60, 2^60) ; 64H (1:2,1:2) = I1 ; 65C3 = A (H,H) ; 66assert (isequal (C1, C2)) 67assert (isequal (C1, C3)) 68 69A = [-1 2] ; 70B = [2 0.5] ; 71C1 = A.^B ; 72C2 = GrB (A).^B ; 73assert (isequal (C1, C2)) 74assert (isreal (C2)) 75 76fprintf ('gbtest95: all tests passed\n') ; 77 78