1function test140
2%TEST140 test assign with duplicates
3
4% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
5% SPDX-License-Identifier: Apache-2.0
6
7rng ('default') ;
8
9n = 6 ;
10A = 100 * sprand (n, n, 0.5) ;
11M = sparse (rand (n)) > 0.5 ;
12Cin = sprand (n, n, 0.5) ;
13
14Cout = gb.assign (Cin, A, { }, { }) ;
15assert (isequal (A, sparse (Cout))) ;
16
17I = [2 1 5] ;
18J = [3 3 1 2] ;
19% J = [2 2 1 3] ;
20B = sprandn (length (I), length (J), 0.5) ;
21
22    [J1 J1k] = sort (J)
23    J1k = J1k-1
24    Jduplicate = [(J1 (1:end-1) == J1 (2:end)), false]
25    J2  = J1  (~Jduplicate)
26    J2k = J1k (~Jduplicate)
27
28I0 = uint64(I)-1 ;
29J0 = uint64(J)-1 ;
30
31C_spec = GB_spec_assign (Cin, [ ], [ ], B, I, J, [ ], [ ])
32C_mex  = GB_mex_assign  (Cin, [ ], [ ], B, I0, J0, [ ], [ ])
33GB_spec_compare (C_spec, C_mex) ;
34
35