1function test97
2%TEST97 test GB_assign, scalar expansion and zombies
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: Apache-2.0
6
7rng ('default') ;
8
9    n = 20 ;
10    C = sparse (rand (n)) ;
11    C (:,1) = sparse (rand (n,1) > 0.5) ;
12
13    ntrials = 10 ;
14
15    for k = 1:2:ntrials
16
17        % make some zombies
18        Work (k).A = sprandn (n, n, 0.1) ;
19        Work (k).I = [ ] ;
20        Work (k).J = [ ] ;
21        Work (k).Mask = sparse (ones (n)) ;
22        Work (k).accum = [ ] ;
23        Work (k).desc = [ ] ;
24        Work (k).scalar = 0 ;
25
26        % scalar expansion
27        Work (k+1).A = sparse (pi) ;
28        Work (k+1).I = [ ] ;
29        Work (k+1).J = [ ] ;
30        Work (k+1).Mask = sparse (ones (n)) ;
31        Work (k+1).accum = [ ] ;
32        Work (k+1).desc = [ ] ;
33        Work (k+1).scalar = 1 ;
34    end
35
36    C1 = GB_mex_assign  (C, Work) ;
37
38    C2 = C ;
39    for k = 1:ntrials
40        M = Work (k).Mask ;
41        A = Work (k).A ;
42        scalar = Work (k).scalar ;
43        C2 = GB_spec_subassign (C2, M, [ ], A, [ ], [ ], [ ], scalar) ;
44    end
45
46    GB_spec_compare (C1, C2) ;
47
48fprintf ('\ntest97: all tests passed\n') ;
49
50