comparison scripts/statistics/base/median.m @ 14440:3d4bea9accd7 stable

Fix segfault on multidimensional median call (bug #35679). * Array.c (Array::nth_elemnt): Readjust dim after chopping singletons. * median.m: Add tests.
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 07 Mar 2012 00:02:41 -0500
parents 4d917a6a858b
children 12ccdce2c216
comparison
equal deleted inserted replaced
14433:ec660526ae50 14440:3d4bea9accd7
97 %! assert(median (x) == median (x2) && median (x) == 3.5); 97 %! assert(median (x) == median (x2) && median (x) == 3.5);
98 %! assert(median (y) == median (y2) && median (y) == 4); 98 %! assert(median (y) == median (y2) && median (y) == 4);
99 %! assert(median ([x2, 2*x2]) == [3.5, 7]); 99 %! assert(median ([x2, 2*x2]) == [3.5, 7]);
100 %! assert(median ([y2, 3*y2]) == [4, 12]); 100 %! assert(median ([y2, 3*y2]) == [4, 12]);
101 101
102 %% Test multidimensional arrays (bug #35679)
103 %!shared a, b, x, y
104 %! rand ("seed", 2);
105 %! a = rand (2,3,4,5);
106 %! b = rand (3,4,6,5);
107 %! x = sort (a, 4);
108 %! y = sort (b, 3);
109 %!assert (median (a, 4), x(:, :, :, 3));
110 %!assert (median (b, 3), (y(:, :, 3, :) + y(:, :, 4, :))/2);
111
102 %!assert(median (single([1,2,3])), single(2)); 112 %!assert(median (single([1,2,3])), single(2));
103 %!assert(median ([1,2,NaN;4,5,6;NaN,8,9]), [NaN, 5, NaN]); 113 %!assert(median ([1,2,NaN;4,5,6;NaN,8,9]), [NaN, 5, NaN]);
104 114
105 %% Test input validation 115 %% Test input validation
106 %!error median (); 116 %!error median ();