1function gbtest46 2%GBTEST46 test GrB.subassign and GrB.assign 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') ; 8d.kind = 'sparse' ; 9 10types = gbtest_types ; 11for k = 1:length (types) 12 type = types {k} ; 13 A = gbtest_cast (rand (4) * 100, type) ; 14 C = GrB.subassign (A, {1}, {1}, gbtest_cast (pi, type)) ; 15 A (1,1) = pi ; 16 assert (gbtest_err (A, C) == 0) ; 17end 18 19for trial = 1:40 20 21 A = rand (4) ; 22 G = GrB (A) ; 23 pg = GrB (pi) ; 24 25 C1 = A ; 26 C1 (1:3,1) = pi ; 27 28 C2 = GrB.subassign (A, pi, { 1:3}, { 1 }) ; 29 C3 = GrB.subassign (G, pi, { 1:3}, { 1 }) ; 30 C4 = GrB.subassign (G, pg, { 1:3}, { 1 }) ; 31 C5 = GrB.subassign (G, pg, { 1:3}, { 1 }, d) ; 32 assert (isequal (C1, C2)) ; 33 assert (isequal (C1, C3)) ; 34 assert (isequal (C1, C4)) ; 35 assert (isequal (C1, C5)) ; 36 assert (isequal (class (C5), 'double')) ; 37 38 C2 = GrB.assign (A, pi, { 1:3}, { 1 }) ; 39 C3 = GrB.assign (G, pi, { 1:3}, { 1 }) ; 40 C4 = GrB.assign (G, pg, { 1:3}, { 1 }) ; 41 C5 = GrB.assign (G, pg, { 1:3}, { 1 }, d) ; 42 assert (isequal (C1, C2)) ; 43 assert (isequal (C1, C3)) ; 44 assert (isequal (C1, C4)) ; 45 assert (isequal (C1, C5)) ; 46 assert (isequal (class (C5), 'double')) ; 47 48end 49 50fprintf ('gbtest46: all tests passed\n') ; 51 52