File: test293.m

package info (click to toggle)
suitesparse 1%3A7.10.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 254,920 kB
  • sloc: ansic: 1,134,743; cpp: 46,133; makefile: 4,875; fortran: 2,087; java: 1,826; sh: 996; ruby: 725; python: 495; asm: 371; sed: 166; awk: 44
file content (57 lines) | stat: -rw-r--r-- 1,277 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
function test293
%TEST293 merge sort, different integer sizes

% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2025, All Rights Reserved.
% SPDX-License-Identifier: Apache-2.0

fprintf ('test293 --------------- merge sort, integer cases\n') ;
rng ('default') ;

n = 1e6 ;
imax = 2e6 ;
I = randi (imax, n, 1) ;
J = randi (imax, n, 1) ;
K = (1:n)' ;

for i = [32 64]
    
    if (i == 32)
        I0 = uint32 (I) ;
    else
        I0 = uint64 (I) ;
    end

    for k = [32 64]

        if (k == 32)
            K0 = uint32 (K) ;
        else
            K0 = uint64 (K) ;
        end

        IK1 = sortrows ([I0 K0]) ;
        for nthreads = [1 2 4 8]
            fprintf ('.') ;
            [a b] = GB_mex_msort_2 (I0, K0, nthreads) ;
            assert (isequal (IK1, [a b])) ;
        end

        for j = [32 64]

            if (j == 32)
                J0 = uint32 (J) ;
            else
                J0 = uint64 (J) ;
            end

            IJK = sortrows ([I0 J0 K0]) ;
            for nthreads = [1 2 4 8]
                fprintf ('.') ;
                [a b c] = GB_mex_msort_3 (I0, J0, K0, nthreads) ;
                assert (isequal (IJK, [a b c])) ;
            end
        end
    end
end

fprintf ('\ntest293 --------------- all tests passed\n') ;