Mercurial > octave
changeset 24535:22a2bc91cc7f
Add more BIST tests for linspace.
* data.cc (Flinspace): Change error message to refer to variables START,END
which are used in documentation. Add BIST test for the spacing between
values created by linspace. Add test for corner case of START=-0, END=0.
Add variable names to expected message for %!error tests.
author | Rik <rik@octave.org> |
---|---|
date | Sat, 06 Jan 2018 11:43:16 -0800 |
parents | 194eb4bd202b |
children | bcaeb5439707 |
files | libinterp/corefcn/data.cc |
diffstat | 1 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/data.cc Sat Jan 06 07:57:19 2018 -0800 +++ b/libinterp/corefcn/data.cc Sat Jan 06 11:43:16 2018 -0800 @@ -5114,7 +5114,7 @@ bool isvector2 = sz2.ndims () == 2 && (sz2(0) == 1 || sz2(1) == 1); if (! isvector1 || ! isvector2) - error ("linspace: A, B must be scalars or vectors"); + error ("linspace: START, END must be scalars or vectors"); octave_value retval; @@ -5142,8 +5142,11 @@ %! x2 = linspace (1, 2, 10); %! x3 = linspace (1, -2, 10); %! assert (size (x1) == [1, 100] && x1(1) == 1 && x1(100) == 2); +%! assert (x(2) - x(1), (2 - 1)/ (100 - 1)); %! assert (size (x2) == [1, 10] && x2(1) == 1 && x2(10) == 2); +%! assert (x(2) - x(1), (2 - 1)/ (10 - 1)); %! assert (size (x3) == [1, 10] && x3(1) == 1 && x3(10) == -2); +%! assert (x(2) - x(1), (1 - -2)/ (10 - 1)); ## Test complex values %!test @@ -5151,7 +5154,7 @@ %! obs = linspace (1, 5-5i, 5); %! assert (obs, exp); -## Test support for vectors in BASE and LIMIT +## Test support for vectors in START and END %!assert (linspace ([1 2 3], [7 8 9]), %! [linspace(1, 7); linspace(2, 8); linspace(3, 9)], 10*eps) %!assert (linspace ([1 2 3]', [7 8 9]'), @@ -5180,13 +5183,14 @@ %!assert (numel (linspace (0, 1, 2-eps)), 1) %!assert (linspace (10, 20, 2.1), [10 20]) %!assert (linspace (10, 20, 2.9), [10 20]) +%!assert (1 ./ linspace (-0, 0, 4), [-Inf, Inf, Inf, Inf]) %!error linspace () %!error linspace (1, 2, 3, 4) %!error <N must be a scalar> linspace (1, 2, [3, 4]) -%!error <must be scalars or vectors> linspace (ones (2,2), 2, 3) -%!error <must be scalars or vectors> linspace (2, ones (2,2), 3) -%!error <must be scalars or vectors> linspace (1, [], 3) +%!error <START, END must be scalars or vectors> linspace (ones (2,2), 2, 3) +%!error <START, END must be scalars or vectors> linspace (2, ones (2,2), 3) +%!error <START, END must be scalars or vectors> linspace (1, [], 3) */ // FIXME: should accept dimensions as separate args for N-D