1function gbtest10 2%GBTEST10 test 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') ; 8 9n = 6 ; 10A = 100 * sprand (n, n, 0.5) ; 11AT = A' ; 12M = sparse (rand (n)) > 0.5 ; 13Cin = sprand (n, n, 0.5) ; 14 15 16Cout = GrB.assign (Cin, A) ; 17assert (gbtest_eq (A, Cout)) ; 18 19Cout = GrB.assign (Cin, A, { }, { }) ; 20assert (gbtest_eq (A, Cout)) ; 21 22Cout = GrB.assign (Cin, M, A) ; 23C2 = Cin ; 24C2 (M) = A (M) ; 25assert (gbtest_eq (C2, Cout)) ; 26 27Cout = GrB.assign (Cin, '+', A) ; 28C2 = Cin + A ; 29assert (gbtest_eq (C2, Cout)) ; 30 31d.in0 = 'transpose' ; 32Cout = GrB.assign (Cin, M, A, d) ; 33C2 = Cin ; 34C2 (M) = AT (M) ; 35assert (gbtest_eq (C2, Cout)) ; 36 37Cout = GrB.assign (Cin, '+', A, d) ; 38C2 = Cin + AT ; 39assert (gbtest_eq (C2, Cout)) ; 40 41d.mask = 'complement' ; 42Cout = GrB.assign (Cin, M, A, d) ; 43C2 = Cin ; 44C2 (~M) = AT (~M) ; 45assert (gbtest_eq (C2, Cout)) ; 46 47I = [2 1 5] ; 48J = [3 3 1 2] ; 49B = sprandn (length (I), length (J), 0.5) ; 50Cout = GrB.assign (Cin, B, {I}, {J}) ; 51C2 = Cin ; 52C2 (I,J) = B ; 53assert (gbtest_eq (C2, Cout)) ; 54 55A = rand (4) ; 56G = GrB (A, 'by row') 57M = logical (eye (4)) ; 58B = rand (4) ; 59H = GrB (B, 'by row') 60A (M) = B (M) 61G (M) = H (M) 62assert (isequal (A, G)) ; 63 64A = sprand (4, 4, 0.5) %#ok<*NOPRT> 65C1 = pi * spones (A) 66C2 = GrB.expand (pi, A) 67assert (isequal (C1, C2)) ; 68 69fprintf ('gbtest10: all tests passed\n') ; 70 71