Source: octave-statistics
Version: 1.8.1-3
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: [email protected]
Dear maintainer,
octave-statistics fails to build with octave 11:
[inst/grp2idx.m]
>>>>> /build/reproducible-path/octave-statistics-1.8.1/inst/grp2idx.m
***** test
g = grp2idx ([3 2 1 2 3 1]);
assert (g, [3; 2; 1; 2; 3; 1]);
***** test
[g, gn] = grp2idx (['b'; 'a'; 'c'; 'a']);
assert (g, [1; 2; 3; 2]);
assert (gn, {'b'; 'a'; 'c'});
***** test
in = [true, false, false, true];
out = {[2; 1; 1; 2] {'0'; '1'} [false; true]};
assert (nthargout (1:3, @grp2idx, in), out)
assert (nthargout (1:3, @grp2idx, in), nthargout (1:3, @grp2idx, in'))
***** test
assert (nthargout (1:3, @grp2idx, [false, true]),
{[1; 2] {'0'; '1'} [false; true]});
assert (nthargout (1:3, @grp2idx, [true, false]),
{[2; 1] {'0'; '1'} [false; true]});
***** assert (nthargout (1:3, @grp2idx, ['oct'; 'sci'; 'oct'; 'oct'; 'sci']),
{[1; 2; 1; 1; 2] {'oct'; 'sci'} ['oct'; 'sci']})
***** assert (nthargout (1:3, @grp2idx, {'oct'; 'sci'; 'oct'; 'oct'; 'sci'}),
{[1; 2; 1; 1; 2] {'oct'; 'sci'} {'oct'; 'sci'}})
***** assert (nthargout (1:3, @grp2idx, [1, -3, -2, -3, -3, 2, 1, -1, 3,
-3]),
{[4; 1; 2; 1; 1; 5; 4; 3; 6; 1], {"-3"; "-2"; "-1"; "1"; "2"; "3"}, ...
[-3; -2; -1; 1; 2; 3]})
***** test
s = [1e6, 2e6, 1e6, 3e6];
[g, gn, gl] = grp2idx (s);
assert (g, [1; 2; 1; 3]);
assert (gn, {'1000000'; '2000000'; '3000000'});
assert (gl, [1000000; 2000000; 3000000]);
***** test
s = [0.1, 0.2, 0.3, 0.1, 0.2];
[g, gn, gl] = grp2idx (s);
assert (g, [1; 2; 3; 1; 2]);
assert (gn, {'0.1'; '0.2'; '0.3'});
assert (gl, [0.1; 0.2; 0.3]);
***** test
s = [-5 -10 0 5 10 -5];
[g, gn, gl] = grp2idx (s);
assert (g, [2; 1; 3; 4; 5; 2]);
assert (gn, {'-10'; '-5'; '0'; '5'; '10'});
assert (gl, [-10; -5; 0; 5; 10]);
***** assert (nthargout (1:3, @grp2idx, [2, 2, 3, NaN, 2, 3]), ...
{[1; 1; 2; NaN; 1; 2] {'2'; '3'} [2; 3]})
***** assert (nthargout (1:3, @grp2idx, {'et', 'sa', 'sa', '', 'et'}), ...
{[1; 2; 2; NaN; 1] {'et'; 'sa'} {'et'; 'sa'}})
***** assert (nthargout (1:3, @grp2idx, [2, 2, 3, NaN, 2, 4]), ...
{[1; 1; 2; NaN; 1; 3] {'2'; '3'; '4'} [2; 3; 4]})
***** test
s = [NaN, NaN, NaN];
[g, gn, gl] = grp2idx (s);
assert (g, [NaN; NaN; NaN]);
assert (gn, cell (0,1));
assert (gl, zeros (0,1));
***** test
s = single ([NaN, NaN, NaN]);
[g, gn, gl] = grp2idx (s);
assert (g, [NaN; NaN; NaN]);
assert (gn, cell (0,1));
assert (gl, single (zeros(0,1)));
***** test
s = {''; ''; ''; ''};
[g, gn, gl] = grp2idx (s);
assert (g, [NaN; NaN; NaN; NaN]);
assert (gn, cell(0,1));
assert (gl, cell(0,1));
***** test
s = {'a'; ''; 'b'; ''; 'c'};
[g, gn, gl] = grp2idx (s);
assert (g, [1; NaN; 2; NaN; 3]);
assert (gn, {'a'; 'b'; 'c'});
assert (gl, {'a'; 'b'; 'c'});
***** test
s = categorical ({''; ''; ''; ''});
[g, gn, gl] = grp2idx (s);
assert (g, [NaN; NaN; NaN; NaN]);
assert (gn, cell (0,1));
assert (isequaln (gl, categorical (cell (0,1))));
***** test
s = string ({missing, missing, missing});
[g, gn, gl] = grp2idx (s);
assert (g, [NaN; NaN; NaN]);
assert (gn, cell (0,1));
assert (isequal (gl, string (cell (0,1))));
***** test
s = [duration(NaN, 0, 0), duration(NaN, 0, 0), duration(NaN, 0, 0)];
[g, gn, gl] = grp2idx (s);
assert (g, [NaN; NaN; NaN]);
assert (gn, cell (0,1));
assert (isequal (gl, duration (NaN (0,3))));
!!!!! test failed
ASSERT errors for: assert (gn,cell (0, 1))
Location | Observed | Expected | Reason
. O(1x1) E(0x1) Dimensions don't match
***** test assert (nthargout (1:3, @grp2idx, ['sci'; 'oct'; 'sci'; 'oct';
'oct']),
{[1; 2; 1; 2; 2] {'sci'; 'oct'} ['sci'; 'oct']});
***** test assert (nthargout (1:3, @grp2idx, {'sci'; 'oct'; 'sci'; 'oct';
'oct'}),
{[1; 2; 1; 2; 2] {'sci'; 'oct'} {'sci'; 'oct'}});
***** test assert (nthargout (1:3, @grp2idx, {'sa' 'et' 'et' '' 'sa'}),
{[1; 2; 2; NaN; 1] {'sa'; 'et'} {'sa'; 'et'}})
***** test
[g, gn, gl] = grp2idx (categorical ({'low', 'med', 'high', 'low'}));
assert (g, [2; 3; 1; 2]);
assert (gn, {'high'; 'low'; 'med'});
assert (isequal (gl, categorical ({'high'; 'low'; 'med'})));
***** test
[g, gn, gl] = grp2idx (categorical ([10, 20, 10, 30, 20]));
assert (g, [1; 2; 1; 3; 2]);
assert (gn, {'10'; '20'; '30'});
assert (isequal (gl, categorical ([10; 20; 30])));
***** test
cats = categorical ({'high', '<undefined>', 'low', '<undefined>'});
[g, gn, gl] = grp2idx (cats);
assert (g, [2; 1; 3; 1]);
assert (gn, {'<undefined>'; 'high'; 'low'});
assert (isequal (gl, categorical ({'<undefined>'; 'high'; 'low'})));
***** test
s = categorical ({''; ''; ''; ''}, {'1', '2', '3'}, {'1', '2', '3'});
[g, gn, gl] = grp2idx (s);
assert (g, nan (4, 1));
assert (gn, {'1'; '2'; '3'});
assert (iscategorical (gl), true);
assert (cellstr (gl), gn);
***** test
s = categorical ({''; '1'; ''; '2'}, {'1', '2', '3'}, {'1', '2', '3'});
[g, gn, gl] = grp2idx (s);
assert (g, [NaN; 1; NaN; 2]);
assert (gn, {'1'; '2'; '3'});
assert (iscategorical (gl), true);
assert (cellstr (gl), gn);
***** test
s = categorical ({''; '2'; ''; '1'}, {'1', '2', '3'}, {'1', '2', '3'});
[g, gn, gl] = grp2idx (s);
assert (g, [NaN; 2; NaN; 1]);
assert (gn, {'1'; '2'; '3'});
assert (iscategorical (gl), true);
assert (cellstr (gl), gn);
***** test
g = gn = gl = [];
[g, gn, gl] = grp2idx (seconds ([1.234, 1.234, 2.5, 3.000]));
assert (g, [1; 1; 2; 3]);
assert (gn, {'1.234 sec'; '2.5 sec'; '3 sec'});
assert (isequal (gl, seconds ([1.234; 2.5; 3.000])));
!!!!! test failed
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '1.234 sec' Strings don't match
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '2.5 sec' Strings don't match
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '3 sec' Strings don't match
***** test
[g, gn, gl] = grp2idx ([hours(1); hours(2); hours(1); hours(3)]);
assert (g, [1; 2; 1; 3]);
assert (gn, {'1 hr'; '2 hr'; '3 hr'});
assert (isequal (gl, [hours(1); hours(2); hours(3)]));
!!!!! test failed
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '1 hr' Strings don't match
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '2 hr' Strings don't match
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '3 hr' Strings don't match
***** test
in = [duration(1, 30, 0); duration(0, 45, 30); duration(1, 30, 0); duration(2,
15, 15)];
[g, gn, gl] = grp2idx(in);
assert (g, [2; 1; 2; 3]);
assert (gn, {'00:45:30'; '01:30:00'; '02:15:15'});
assert (isequal (gl, [duration(0, 45, 30); duration(1, 30, 0); duration(2, 15,
15)]));
!!!!! test failed
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '00:45:30' Strings don't match
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '01:30:00' Strings don't match
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '02:15:15' Strings don't match
***** test
in = [hours(1); NaN; minutes(30); hours(1); NaN; seconds(90)];
[g, gn, gl] = grp2idx(in);
assert (g, [3; NaN; 2; 3; NaN; 1]);
assert (gn, {'0.025 hr'; '0.5 hr'; '1 hr'});
assert (isequal(gl, [seconds(90); minutes(30); hours(1)]));
!!!!! test failed
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '0.025 hr' Strings don't match
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '0.5 hr' Strings don't match
ASSERT errors for: assert (cond {i},expected {i},tol)
Location | Observed | Expected | Reason
[] '' '1 hr' Strings don't match
***** test
[g, gn, gl] = grp2idx (string ({'123', 'erw', missing, '', '234'}));
assert (g, [1; 2; NaN; NaN; 3]);
assert (gn, {'123'; 'erw'; '234'});
assert (isequal (gl, string ({'123'; 'erw'; '234'})));
***** test
[g, gn, gl] = grp2idx (string ({'medium', 'low', 'high', 'medium', 'medium'}));
assert (g, [1; 2; 3; 1; 1]);
assert (gn, {'medium'; 'low'; 'high'});
assert (isequal (gl, string ({'medium'; 'low'; 'high'})));
***** test
[g, gn, gl] = grp2idx (string ({'', 'high', 'low', ''}));
assert (g, [NaN; 1; 2; NaN]);
assert (gn, {'high'; 'low'});
assert (isequal (gl, string ({'high'; 'low'})));
***** test
[g, gn, gl] = grp2idx (string ({'a', 'a', 'b', 'c'}));
assert (g, [1; 1; 2; 3]);
assert (gn, {'a'; 'b'; 'c'});
assert (isstring (gl), true);
assert (cellstr (gl), gn);
***** error <grp2idx: S must be either a vector or a matrix.> grp2idx (ones (3,
3, 3))
***** error <grp2idx: 'categorical' grouping variable must be a vector.> ...
grp2idx (categorical ([1, 2; 1, 3]))
***** error <grp2idx: 'datetime' grouping variable is not supported yet.> ...
grp2idx (datetime ('now'))
__datetime__: TZDB error: realpath() failed: No such file or directory
Falling back to UTC.
***** error <grp2idx: 'duration' grouping variable must be a vector.> ...
grp2idx (days ([1, 2; 1, 3]))
***** error <grp2idx: 'string' grouping variable must be a vector.> ...
grp2idx (string ({'a', 'a'; 'b', 'c'}))
***** error <grp2idx: unsupported type for input S.> grp2idx ({1})
43 tests, 38 passed, 0 known failure, 0 skipped
See
https://buildd.debian.org/status/fetch.php?pkg=octave-statistics&arch=amd64&ver=1.8.1-3%2Bb1&stamp=1772693511&raw=0
for details.
Cheers
--
Sebastian Ramacher