File: gbtest.m

package info (click to toggle)
suitesparse-graphblas 7.4.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 67,112 kB
  • sloc: ansic: 1,072,243; cpp: 8,081; sh: 512; makefile: 506; asm: 369; python: 125; awk: 10
file content (189 lines) | stat: -rw-r--r-- 6,167 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
function gbtest
%GBTEST test GraphBLAS interface
% First compile the GraphBLAS library by typing 'make' in the top-level
% GraphBLAS folder, in your system shell.  That statement will use cmake to
% compile GraphBLAS.  Use 'make JOBS=40' to compile in parallel (replace '40'
% with the number of cores in your system).  Next, do the following:
%
% This test has been ported to Octave 7, as of SuiteSparse:GraphBLAS v5.1.  A
% few features differ between Octave and MATLAB, so those tests are skipped for
% Octave.  Octave passes all of the essential tests below.
%
% Example:
%
%   cd GraphBLAS/GraphBLAS
%   addpath (pwd) ;
%   savepath ;          % if this fails, edit your startup.m file
%   cd @GrB/private
%   gbmake ;            % compile the interface to GraphBLAS
%   cd ../../test
%   gbtest              % run this test
%
% See also GrB.

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

% gbtest3 requires ../demo/dnn_builtin.m and ../demo/dnn_builtin2gb.m.
demo_folder = fullfile (fileparts (mfilename ('fullpath')), '../demo') ;
addpath (demo_folder) ;
rng ('default') ;

have_octave = gb_octave ;

gbtest0   % test GrB.clear
gbtest1   % test GrB
gbtest2   % list all binary operators
gbtest3   % test dnn
gbtest4   % list all possible semirings
gbtest5   % test GrB.descriptorinfo
gbtest6   % test GrB.mxm
gbtest7   % test GrB.build
gbtest8   % test GrB.select
gbtest9   % test eye and speye
gbtest10  % test GrB.assign
gbtest11  % test GrB, sparse
gbtest12  % test GrB.eadd, GrB.emult, GrB.eunion
gbtest13  % test find and GrB.extracttuples
gbtest14  % test kron and GrB.kronecker
gbtest15  % list all unary operators
gbtest16  % test GrB.extract
gbtest17  % test GrB.trans
gbtest18  % test comparators (and, or, >, ...)
gbtest19  % test mpower
gbtest20  % test bandwidth, isdiag, ceil, floor, round, fix
gbtest21  % test isfinite, isinf, isnan
gbtest22  % test reduce to scalar
gbtest23  % test min and max
gbtest24  % test any, all
gbtest25  % test diag, tril, triu
gbtest26  % test typecasting
gbtest27  % test conversion to full
gbtest28  % test GrB.build
gbtest29  % test subsref and subsasgn with logical indexing
gbtest30  % test colon notation
gbtest31  % test GrB and casting
gbtest32  % test nonzeros
gbtest33  % test spones, numel, nzmax, size, length, isempty, issparse, ...
gbtest34  % test repmat
gbtest35  % test reshape
gbtest36  % test abs, sign
gbtest37  % test istril, istriu, isbanded, isdiag, ishermitian, ...
gbtest38  % test sqrt, eps, ceil, floor, round, fix, real, conj, ...
gbtest39  % test amd, colamd, symamd, symrcm, dmperm, etree
gbtest40  % test sum, prod, max, min, any, all, norm
gbtest41  % test ones, zeros, false
gbtest42  % test for nan
gbtest43  % test error handling
gbtest44  % test subsasgn, mtimes, plus, false, ...
gbtest45  % test GrB.vreduce
gbtest46  % test GrB.subassign and GrB.assign
gbtest47  % test GrB.entries, GrB.nonz, numel
gbtest48  % test GrB.apply
gbtest49  % test GrB.prune
gbtest50  % test GrB.ktruss and GrB.tricount
gbtest51  % test GrB.tricount
gbtest52  % test GrB.format
gbtest53  % test GrB.monoidinfo
gbtest54  % test GrB.compact
gbtest55  % test disp
gbtest56  % test GrB.empty
gbtest57  % test fprintf and sprintf
gbtest58  % test uplus
gbtest59  % test end
gbtest60  % test issigned
gbtest62  % test ldivide, rdivide, mldivide, mrdivide
gbtest65  % test GrB.mis

if (~have_octave)
    % the Graph and DiGraph methods do not appear in octave
    gbtest61  % test GrB.laplacian
    gbtest63  % test GrB.incidence
    gbtest64  % test GrB.pagerank
    gbtest66  % test graph
    gbtest67  % test digraph
end

gbtest68  % test isequal
gbtest69  % test flip
gbtest70  % test GrB.random
gbtest71  % test GrB.selectopinfo
gbtest72  % test any-pair semiring
gbtest73  % test GrB.normdiff

if (~have_octave)
    % octave returns double, MATLAB returns integer.
    % This would be easy to fix but the tests are skipped for octave.
    gbtest74  % test bitwise operators
    gbtest75  % test bitshift
end

gbtest76  % test trig functions
gbtest77  % test error handling

if (~have_octave)
    % octave: bit index must be in proper range.
    % MATLAB: bit indices outside the size of the integer are ignored.
    % This would be easy to fix but the tests are skipped for octave.
    gbtest78  % test integer operations
end

gbtest79  % test power
gbtest80  % test complex division and power
gbtest81  % test complex operators
gbtest82  % test complex A*B, A'*B, A*B', A'*B', A+B
gbtest83  % test GrB.apply
gbtest84  % test GrB.assign
gbtest85  % test GrB.subassign
gbtest86  % test GrB.mxm
gbtest87  % test GrB.eadd
gbtest88  % test GrB.emult
gbtest89  % test GrB.extract
gbtest90  % test GrB.reduce
gbtest91  % test GrB.trans
gbtest92  % test GrB.kronecker
gbtest93  % test GrB.select
gbtest94  % test GrB.vreduce
gbtest95  % test indexing
gbtest97  % test GrB.apply2
gbtest98  % test row/col degree for hypersparse matrices
gbtest99  % test performance of C=A'*B and C=A'
gbtest100 % test GrB.ver and GrB.version
if (~have_octave)
    % octave cannot load the mat file from MATLAB with a v3 @GrB object
    gbtest101 % test loading of v3 GraphBLAS objects
end
gbtest102 % test horzcat, vertcat, cat, cell2mat
gbtest103 % test iso matrices
gbtest104 % test formats
gbtest105 % test logical assignment with iso matrices
gbtest106 % test build
gbtest107 % test cell2mat error handling
gbtest108 % test mat2cell
gbtest109 % test num2cell
gbtest110 % test argmax
gbtest111 % test argmin
gbtest112 % test load and save
gbtest113 % test ones and eq
gbtest114 % test kron with iso matrices
gbtest115 % test serialize/deserialize
gbtest116 % test GrB.binopinfo for index_unary operators
gbtest117 % test idxunop in GrB.apply2
gbtest118 % test GrB.argsort
gbtest119 % test GrB.eunion
gbtest120 % test subsref
gbtest121 % test times with scalars
gbtest122 % test reshape
gbtest96  % test GrB.optype

if (~have_octave)
    % the Graph and DiGraph methods do not appear in octave
    gbtest00  % test GrB.bfs and plot (graph (G))
end

% restore default # of threads
demo_nproc ;
GrB.clear

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