File: test104.m

package info (click to toggle)
suitesparse 1%3A5.12.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 176,720 kB
  • sloc: ansic: 1,193,914; cpp: 31,704; makefile: 6,638; fortran: 1,927; java: 1,826; csh: 765; ruby: 725; sh: 529; python: 333; perl: 225; sed: 164; awk: 35
file content (52 lines) | stat: -rw-r--r-- 1,823 bytes parent folder | download
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
function test104
%TEST104 export/import

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

rng ('default')
fprintf ('\ntest104: export/import tests\n') ;

for m = [0 1 5 100]
    for n = [0 1 5 100]
        if (n == 1)
            fmts = [-9:-1 1:9] ;
        else
            fmts = [1:9] ;
        end
        for d = [0 0.1 0.5 inf]
            A = GB_spec_random (m, n, d) ;
            nz = nnz (A.pattern) ;
            is_sparse = (nz < m*n) ;
            fprintf ('.') ;
            for fmat = fmts
                for fexport = 0:14
                    try
                        C = GB_mex_export_import (A, fmat, fexport) ;
                        GB_spec_compare (C, A) ;
                        C = GB_mex_export_import (A, fmat, fexport, 1) ;
                        GB_spec_compare (C, A) ;
                        C = GB_mex_export_import (A, fmat, fexport, 502) ;
                        GB_spec_compare (C, A) ;
                    catch me
                        % should fail if A is sparse and it is attempted to
                        % be exported as full
                        ok = is_sparse && ...
                            (fexport == 6 || fexport == 7 || ...
                             fexport == -6 || fexport == -7 || ...
                             fexport == 16 || fexport == 15 || ...
                             fexport == -16 || fexport == -15) ;
                        if (~ok)
                            % this should not have failed
                            me
                            me.message
                            assert (false) ;
                        end
                    end
                end
            end
        end
    end
end

fprintf ('\ntest104: all tests passed\n') ;