Mercurial > hg > octave-lyh
annotate scripts/testfun/assert.m @ 14868:5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
* lin2mu.m, loadaudio.m, wavread.m, accumarray.m, bicubic.m, celldisp.m,
colon.m, cplxpair.m, dblquad.m, divergence.m, genvarname.m, gradient.m,
int2str.m, interp1.m, interp1q.m, interp2.m, interpn.m, loadobj.m, nthargout.m,
__isequal__.m, __splinen__.m, quadgk.m, quadl.m, quadv.m, rat.m, rot90.m,
rotdim.m, saveobj.m, subsindex.m, triplequad.m, delaunay3.m, griddata.m,
inpolygon.m, tsearchn.m, voronoi.m, get_first_help_sentence.m, which.m,
gray2ind.m, pink.m, dlmwrite.m, strread.m, textread.m, textscan.m, housh.m,
ishermitian.m, issymmetric.m, krylov.m, logm.m, null.m, rref.m,
compare_versions.m, copyfile.m, dump_prefs.m, edit.m, fileparts.m,
getappdata.m, isappdata.m, movefile.m, orderfields.m, parseparams.m,
__xzip__.m, rmappdata.m, setappdata.m, swapbytes.m, unpack.m, ver.m, fminbnd.m,
fminunc.m, fsolve.m, glpk.m, lsqnonneg.m, qp.m, sqp.m, configure_make.m,
copy_files.m, describe.m, get_description.m, get_forge_pkg.m, install.m,
installed_packages.m, is_architecture_dependent.m, load_package_dirs.m,
print_package_description.m, rebuild.m, repackage.m, save_order.m, shell.m,
allchild.m, ancestor.m, area.m, axes.m, axis.m, clabel.m, close.m, colorbar.m,
comet.m, comet3.m, contour.m, cylinder.m, ezmesh.m, ezsurf.m, findobj.m,
fplot.m, hist.m, isocolors.m, isonormals.m, isosurface.m, isprop.m, legend.m,
mesh.m, meshz.m, pareto.m, pcolor.m, peaks.m, plot3.m, plotmatrix.m, plotyy.m,
polar.m, print.m, __add_datasource__.m, __add_default_menu__.m,
__axes_limits__.m, __bar__.m, __clabel__.m, __contour__.m, __errcomm__.m,
__errplot__.m, __ezplot__.m, __file_filter__.m, __fltk_print__.m,
__ghostscript__.m, __gnuplot_print__.m, __go_draw_axes__.m,
__go_draw_figure__.m, __interp_cube__.m, __marching_cube__.m, __patch__.m,
__pie__.m, __plt__.m, __print_parse_opts__.m, __quiver__.m, __scatter__.m,
__stem__.m, __tight_eps_bbox__.m, __uigetdir_fltk__.m, __uigetfile_fltk__.m,
__uiputfile_fltk__.m, quiver.m, quiver3.m, rectangle.m, refreshdata.m,
ribbon.m, scatter.m, semilogy.m, shading.m, slice.m, subplot.m, surface.m,
surfl.m, surfnorm.m, text.m, uigetfile.m, uiputfile.m, whitebg.m, deconv.m,
mkpp.m, pchip.m, polyaffine.m, polyder.m, polygcd.m, polyout.m, polyval.m,
ppint.m, ppjumps.m, ppval.m, residue.m, roots.m, spline.m, splinefit.m,
addpref.m, getpref.m, setpref.m, ismember.m, setxor.m, arch_fit.m, arch_rnd.m,
arch_test.m, autoreg_matrix.m, diffpara.m, fftconv.m, filter2.m, hanning.m,
hurst.m, periodogram.m, triangle_sw.m, sinc.m, spectral_xdf.m, spencer.m,
stft.m, synthesis.m, unwrap.m, yulewalker.m, bicgstab.m, gmres.m, pcg.m, pcr.m,
__sprand_impl__.m, speye.m, spfun.m, sprandn.m, spstats.m, svds.m,
treelayout.m, treeplot.m, bessel.m, factor.m, legendre.m, perms.m, primes.m,
magic.m, toeplitz.m, corr.m, cov.m, mean.m, median.m, mode.m, qqplot.m,
quantile.m, ranks.m, zscore.m, logistic_regression_likelihood.m,
bartlett_test.m, chisquare_test_homogeneity.m, chisquare_test_independence.m,
kolmogorov_smirnov_test.m, run_test.m, u_test.m, wilcoxon_test.m, z_test.m,
z_test_2.m, bin2dec.m, dec2base.m, mat2str.m, strcat.m, strchr.m, strjust.m,
strtok.m, substr.m, untabify.m, assert.m, demo.m, example.m, fail.m, speed.m,
test.m, now.m: Use Octave coding conventions for cuddling parentheses in
scripts directory.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Tue, 17 Jul 2012 07:08:39 -0700 |
parents | 72c96de7a403 |
children | 333243133364 |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
14093
diff
changeset
|
1 ## Copyright (C) 2000-2012 Paul Kienzle |
5589 | 2 ## |
7016 | 3 ## This file is part of Octave. |
5589 | 4 ## |
7016 | 5 ## Octave is free software; you can redistribute it and/or modify it |
6 ## under the terms of the GNU General Public License as published by | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
9 ## | |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
5589 | 14 ## |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
5589 | 18 |
19 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
20 ## @deftypefn {Function File} {} assert (@var{cond}) |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
21 ## @deftypefnx {Function File} {} assert (@var{cond}, @var{errmsg}, @dots{}) |
9313 | 22 ## @deftypefnx {Function File} {} assert (@var{cond}, @var{msg_id}, @var{errmsg}, @dots{}) |
11563
3c6e8aaa9555
Grammarcheck m-files before 3.4 release.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
23 ## @deftypefnx {Function File} {} assert (@var{observed}, @var{expected}) |
3c6e8aaa9555
Grammarcheck m-files before 3.4 release.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
24 ## @deftypefnx {Function File} {} assert (@var{observed}, @var{expected}, @var{tol}) |
5589 | 25 ## |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
26 ## Produce an error if the specified condition is not met. @code{assert} can |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
27 ## be called in three different ways. |
5589 | 28 ## |
29 ## @table @code | |
14093
050bc580cb60
doc: Various docstring improvements before 3.6.0 release.
Rik <octave@nomad.inbox5.com>
parents:
14070
diff
changeset
|
30 ## @item assert (@var{cond}) |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
31 ## @itemx assert (@var{cond}, @var{errmsg}, @dots{}) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
32 ## @itemx assert (@var{cond}, @var{msg_id}, @var{errmsg}, @dots{}) |
5589 | 33 ## Called with a single argument @var{cond}, @code{assert} produces an |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
34 ## error if @var{cond} is zero. When called with more than one argument the |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
35 ## additional arguments are passed to the @code{error} function. |
5589 | 36 ## |
37 ## @item assert (@var{observed}, @var{expected}) | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11563
diff
changeset
|
38 ## Produce an error if observed is not the same as expected. Note that |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
39 ## @var{observed} and @var{expected} can be scalars, vectors, matrices, |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
40 ## strings, cell arrays, or structures. |
5589 | 41 ## |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
42 ## @item assert (@var{observed}, @var{expected}, @var{tol}) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
43 ## Produce an error if observed is not the same as expected but equality |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
44 ## comparison for numeric data uses a tolerance @var{tol}. |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
45 ## If @var{tol} is positive then it is an absolute tolerance which will produce |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
46 ## an error if @code{abs (@var{observed} - @var{expected}) > abs (@var{tol})}. |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
47 ## If @var{tol} is negative then it is a relative tolerance which will produce |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
48 ## an error if @code{abs (@var{observed} - @var{expected}) > |
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
49 ## abs (@var{tol} * @var{expected})}. If @var{expected} is zero @var{tol} will |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
50 ## always be interpreted as an absolute tolerance. |
5589 | 51 ## @end table |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
52 ## @seealso{test, fail, error} |
5589 | 53 ## @end deftypefn |
54 | |
8202
cf59d542f33e
replace all TODOs and XXXs with FIXMEs
Jaroslav Hajek <highegg@gmail.com>
parents:
7770
diff
changeset
|
55 ## FIXME: Output throttling: don't print out the entire 100x100 matrix, |
cf59d542f33e
replace all TODOs and XXXs with FIXMEs
Jaroslav Hajek <highegg@gmail.com>
parents:
7770
diff
changeset
|
56 ## but instead give a summary; don't print out the whole list, just |
cf59d542f33e
replace all TODOs and XXXs with FIXMEs
Jaroslav Hajek <highegg@gmail.com>
parents:
7770
diff
changeset
|
57 ## say what the first different element is, etc. To do this, make |
cf59d542f33e
replace all TODOs and XXXs with FIXMEs
Jaroslav Hajek <highegg@gmail.com>
parents:
7770
diff
changeset
|
58 ## the message generation type specific. |
6494 | 59 |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
60 function assert (cond, varargin) |
6494 | 61 |
62 in = deblank (argn(1,:)); | |
63 for i = 2:rows (argn) | |
7540
3422f39573b1
strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents:
7151
diff
changeset
|
64 in = cstrcat (in, ",", deblank (argn(i,:))); |
7151 | 65 endfor |
7540
3422f39573b1
strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents:
7151
diff
changeset
|
66 in = cstrcat ("(", in, ")"); |
5589 | 67 |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
68 if (nargin == 1 || (nargin > 1 && islogical (cond) && ischar (varargin{1}))) |
9841
6f1ea8241c99
make isnumeric yield false on logicals
Jaroslav Hajek <highegg@gmail.com>
parents:
9448
diff
changeset
|
69 if ((! isnumeric (cond) && ! islogical (cond)) || ! all (cond(:))) |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
70 if (nargin == 1) |
10549 | 71 ## Say which elements failed? |
72 error ("assert %s failed", in); | |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
73 else |
10549 | 74 error (varargin{:}); |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
75 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11563
diff
changeset
|
76 endif |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
77 else |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
78 if (nargin < 2 || nargin > 3) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
79 print_usage (); |
5589 | 80 endif |
81 | |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
82 expected = varargin{1}; |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
83 if (nargin < 3) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
84 tol = 0; |
5589 | 85 else |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
86 tol = varargin{2}; |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
87 endif |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
88 |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
89 if (exist ("argn") == 0) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
90 argn = " "; |
5589 | 91 endif |
92 | |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
93 coda = ""; |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
94 iserror = 0; |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
95 |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
96 |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
97 if (ischar (expected)) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
98 iserror = (! ischar (cond) || ! strcmp (cond, expected)); |
5589 | 99 |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
100 elseif (iscell (expected)) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
101 if (! iscell (cond) || any (size (cond) != size (expected))) |
10549 | 102 iserror = 1; |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
103 else |
10549 | 104 try |
105 for i = 1:length (expected(:)) | |
106 assert (cond{i}, expected{i}, tol); | |
107 endfor | |
108 catch | |
109 iserror = 1; | |
110 end_try_catch | |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
111 endif |
5589 | 112 |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
113 elseif (isstruct (expected)) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
114 if (! isstruct (cond) || any (size (cond) != size (expected)) |
10549 | 115 || rows (fieldnames (cond)) != rows (fieldnames (expected))) |
116 iserror = 1; | |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
117 else |
10549 | 118 try |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
119 #empty = numel (cond) == 0; |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
120 empty = isempty (cond); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
121 normal = (numel (cond) == 1); |
10549 | 122 for [v, k] = cond |
123 if (! isfield (expected, k)) | |
124 error (); | |
125 endif | |
126 if (empty) | |
12882
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
127 v = {}; |
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
128 elseif (normal) |
10549 | 129 v = {v}; |
130 else | |
131 v = v(:)'; | |
132 endif | |
133 assert (v, {expected.(k)}, tol); | |
134 endfor | |
135 catch | |
136 iserror = 1; | |
137 end_try_catch | |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
138 endif |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
139 |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
140 elseif (ndims (cond) != ndims (expected) |
10549 | 141 || any (size (cond) != size (expected))) |
5589 | 142 iserror = 1; |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
143 coda = "Dimensions don't match"; |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
144 |
9447
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
145 else |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
146 if (nargin < 3) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
147 ## Without explicit tolerance, be more strict. |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
148 if (! strcmp (class (cond), class (expected))) |
9447
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
149 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
150 coda = cstrcat ("Class ", class (cond), " != ", class (expected)); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
151 elseif (isnumeric (cond)) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
152 if (issparse (cond) != issparse (expected)) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
153 if (issparse (cond)) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
154 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
155 coda = "sparse != non-sparse"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
156 else |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
157 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
158 coda = "non-sparse != sparse"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
159 endif |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
160 elseif (iscomplex (cond) != iscomplex (expected)) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
161 if (iscomplex (cond)) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
162 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
163 coda = "complex != real"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
164 else |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
165 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
166 coda = "real != complex"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
167 endif |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
168 endif |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
169 endif |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
170 endif |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
171 |
9447
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
172 if (! iserror) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
173 ## Numeric. |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
174 A = cond(:); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
175 B = expected(:); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
176 ## Check exceptional values. |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
177 if (any (isna (A) != isna (B))) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
178 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
179 coda = "NAs don't match"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
180 elseif (any (isnan (A) != isnan (B))) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
181 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
182 coda = "NaNs don't match"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
183 ## Try to avoid problems comparing strange values like Inf+NaNi. |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
184 elseif (any (isinf (A) != isinf (B)) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
185 || any (A(isinf (A) & ! isnan (A)) != B(isinf (B) & ! isnan (B)))) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
186 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
187 coda = "Infs don't match"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
188 else |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
189 ## Check normal values. |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
190 A = A(isfinite (A)); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
191 B = B(isfinite (B)); |
9447
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
192 if (tol == 0) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
193 err = any (A != B); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
194 errtype = "values do not match"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
195 elseif (tol >= 0) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
196 err = max (abs (A - B)); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
197 errtype = "maximum absolute error %g exceeds tolerance %g"; |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11563
diff
changeset
|
198 else |
9447
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
199 abserr = max (abs (A(B == 0))); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
200 A = A(B != 0); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
201 B = B(B != 0); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
202 relerr = max (abs (A - B) ./ abs (B)); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
203 err = max ([abserr; relerr]); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
204 errtype = "maximum relative error %g exceeds tolerance %g"; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
205 endif |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
206 if (err > abs (tol)) |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
207 iserror = 1; |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
208 coda = sprintf (errtype, err, abs (tol)); |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
209 endif |
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
210 endif |
5589 | 211 endif |
9447
bb2ae2210e37
relax assert for exact matches
Jaroslav Hajek <highegg@gmail.com>
parents:
9313
diff
changeset
|
212 |
5589 | 213 endif |
214 | |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
215 if (! iserror) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
216 return; |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
217 endif |
5589 | 218 |
8506 | 219 ## Pretty print the "expected but got" info, trimming leading and |
220 ## trailing "\n". | |
7770
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
221 str = disp (expected); |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
222 idx = find (str != "\n"); |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
223 if (! isempty (idx)) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
224 str = str(idx(1):idx(end)); |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
225 endif |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
226 str2 = disp (cond); |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
227 idx = find (str2 != "\n"); |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
228 if (! isempty (idx)) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
229 str2 = str2 (idx(1):idx(end)); |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
230 endif |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
231 msg = cstrcat ("assert ", in, " expected\n", str, "\nbut got\n", str2); |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
232 if (! isempty (coda)) |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
233 msg = cstrcat (msg, "\n", coda); |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
234 endif |
c6a1a217ac3c
Compatibility fix for assert
David Bateman <dbateman@free.fr>
parents:
7703
diff
changeset
|
235 error ("%s", msg); |
5589 | 236 endif |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
237 |
5589 | 238 endfunction |
239 | |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
240 |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
241 ## empty input |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
242 %!assert ([]) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
243 %!assert (zeros (3,0), zeros (3,0)) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
244 %!error assert (zeros (3,0), zeros (0,2)) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
245 %!error assert (zeros (3,0), []) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
246 %!error <Dimensions don't match> assert (zeros (2,0,2), zeros (2,0)) |
5589 | 247 |
248 ## conditions | |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
249 %!assert (isempty ([])) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
250 %!assert (1) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
251 %!error assert (0) |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
252 %!assert (ones (3,1)) |
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
253 %!assert (ones (1,3)) |
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
254 %!assert (ones (3,4)) |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
255 %!error assert ([1,0,1]) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
256 %!error assert ([1;1;0]) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
257 %!error assert ([1,0;1,1]) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
258 |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
259 ## scalars |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
260 %!error assert (3, [3,3; 3,3]) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
261 %!error assert ([3,3; 3,3], 3) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
262 %!assert (3, 3) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
263 %!assert (3+eps, 3, eps) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
264 %!assert (3, 3+eps, eps) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
265 %!error assert (3+2*eps, 3, eps) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
266 %!error assert (3, 3+2*eps, eps) |
5589 | 267 |
268 ## vectors | |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
269 %!assert ([1,2,3],[1,2,3]); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
270 %!assert ([1;2;3],[1;2;3]); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
271 %!error assert ([2;2;3],[1;2;3]); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
272 %!error assert ([1,2,3],[1;2;3]); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
273 %!error assert ([1,2],[1,2,3]); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
274 %!error assert ([1;2;3],[1;2]); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
275 %!assert ([1,2;3,4],[1,2;3,4]); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
276 %!error assert ([1,4;3,4],[1,2;3,4]) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
277 %!error assert ([1,3;2,4;3,5],[1,2;3,4]) |
5589 | 278 |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
279 ## must give a small tolerance for floating point errors on relative |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
280 %!assert (100+100*eps, 100, -2*eps) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
281 %!assert (100, 100+100*eps, -2*eps) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
282 %!error assert (100+300*eps, 100, -2*eps) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
283 %!error assert (100, 100+300*eps, -2*eps) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
284 %!error assert (3, [3,3]) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
285 %!error assert (3, 4) |
5589 | 286 |
7027 | 287 ## test relative vs. absolute tolerances |
288 %!test assert (0.1+eps, 0.1, 2*eps); # accept absolute | |
289 %!error assert (0.1+eps, 0.1, -2*eps); # fail relative | |
290 %!test assert (100+100*eps, 100, -2*eps); # accept relative | |
291 %!error assert (100+100*eps, 100, 2*eps); # fail absolute | |
292 | |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
293 ## exceptional values |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
294 %!assert ([NaN, NA, Inf, -Inf, 1+eps, eps], [NaN, NA, Inf, -Inf, 1, 0], eps) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
295 %!error assert (NaN, 1) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
296 %!error assert (NA, 1) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
297 %!error assert (-Inf, Inf) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
298 |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
299 ## strings |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
300 %!assert ("dog", "dog") |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
301 %!error assert ("dog", "cat") |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
302 %!error assert ("dog", 3) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
303 %!error assert (3, "dog") |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
304 |
5589 | 305 ## structures |
306 %!shared x,y | |
307 %! x.a = 1; x.b=[2, 2]; | |
308 %! y.a = 1; y.b=[2, 2]; | |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
309 %!assert (x, y) |
5589 | 310 %!test y.b=3; |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
311 %!error assert (x, y) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
312 %!error assert (3, x) |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
313 %!error assert (x, 3) |
12882
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
314 %!test |
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
315 %! # Empty structures |
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
316 %! x = resize (x, 0, 1); |
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
317 %! y = resize (y, 0, 1); |
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
318 %! assert (x, y); |
5589 | 319 |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
320 ## cell arrays |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
321 %!test |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
322 %! x = {[3], [1,2,3]; 100+100*eps, "dog"}; |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
323 %! y = x; |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
324 %! assert (x, y); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
325 %! y = x; y(1,1) = [2]; |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
326 %! fail ("assert (x, y)"); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
327 %! y = x; y(1,2) = [0, 2, 3]; |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
328 %! fail ("assert (x, y)"); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
329 %! y = x; y(2,1) = 101; |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
330 %! fail ("assert (x, y)"); |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
331 %! y = x; y(2,2) = "cat"; |
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
332 %! fail ("assert (x, y)"); |
12882
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
333 |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
334 %% Test input validation |
12882
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
335 %!error assert |
14070
c2c18e2e7c9c
assert.m: Update documentation string, add %!tests for cell arrays.
Rik <octave@nomad.inbox5.com>
parents:
14038
diff
changeset
|
336 %!error assert (1,2,3,4) |
12882
724bb6b7e3d5
assert.m: Correctly compare empty structures.
Rik <octave@nomad.inbox5.com>
parents:
12632
diff
changeset
|
337 |