|
177 | 177 |
|
178 | 178 | ## Calculate differences between X and Y vectors: remove equal values of NaNs |
179 | 179 | XY_diff = x(:) - my(:); |
180 | | - NO_diff = (XY_diff == 0); |
181 | | - XY_diff(NO_diff | isnan (NO_diff)) = []; |
| 180 | + XY_diff(XY_diff == 0 | isnan (XY_diff)) = []; |
182 | 181 |
|
183 | 182 | ## Recalculate remaining length of X vector (after equal or NaNs removal) |
184 | 183 | n = length (XY_diff); |
|
236 | 235 |
|
237 | 236 | endswitch |
238 | 237 | stats.sign = pos_n; |
239 | | - h = double (p < alpha); |
| 238 | + h = double (p <= alpha); |
240 | 239 | endfunction |
241 | 240 |
|
242 | 241 | ## Test output |
|
257 | 256 | %! assert (h, 0); |
258 | 257 | %! assert (stats.zval, 0.4082482904638631, 1e-14); |
259 | 258 | %! assert (stats.sign, 4); |
| 259 | +%!test |
| 260 | +%! x = [1, 2, 3, 4, NaN, NaN, NaN]; |
| 261 | +%! [pval, h] = signtest (x); |
| 262 | +%! assert (pval, 0.1250, 1e-4); |
| 263 | +%! assert (h, 0); |
| 264 | +%!test |
| 265 | +%! x = [1, 2, 3, 4, 5]; |
| 266 | +%! y = [1, 1, NaN, 5, 4]; |
| 267 | +%! [pval, h] = signtest (x, y); |
| 268 | +%! assert (pval, 1.0, 1e-4); |
| 269 | +%! assert (h, 0); |
| 270 | +%!test |
| 271 | +%! x = [1, 2, 3, 4, 5, -1]; |
| 272 | +%! [p_val, ~] = signtest (x); |
| 273 | +%! [p, h, stats] = signtest (x, 0, "alpha", p_val); |
| 274 | +%! assert (h, 1); |
260 | 275 |
|
261 | 276 | ## Test input validation |
262 | 277 | %!error <signtest: X must be a vector.> signtest (ones (2)) |
|
0 commit comments