Mercurial > octave-nkf
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 (); |