changeset 31307:94dc0f5ba8a3

var.m: Add two-output tests for Inf and NaN inputs (bug #63203) * var.m: Convert BISTs for Inf and NaN input values from one line tests for variance to tests that check both variance and the optional median output.
author Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
date Sat, 15 Oct 2022 09:41:44 -0400
parents ef3cd4d7691f
children 2ec8fbbcd053
files scripts/statistics/var.m
diffstat 1 files changed, 104 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/statistics/var.m	Sat Oct 15 09:30:55 2022 -0400
+++ b/scripts/statistics/var.m	Sat Oct 15 09:41:44 2022 -0400
@@ -312,32 +312,110 @@
 %! assert (m, NaN(1,1,0,2));
 
 ## Test Inf and NaN inputs
-%!assert <*63203> (var (Inf), NaN)
-%!assert <*63203> (var (NaN), NaN)
-%!assert <*63203> (var ([1, Inf, 3]), NaN)
-%!assert <*63203> (var ([1, Inf, 3]'), NaN)
-%!assert <*63203> (var ([1, NaN, 3]), NaN)
-%!assert <*63203> (var ([1, NaN, 3]'), NaN)
-%!assert <*63203> (var ([1, Inf, 3], [], 1), [0, NaN, 0])
-%!assert <*63203> (var ([1, Inf, 3], [], 2), NaN)
-%!assert <*63203> (var ([1, Inf, 3], [], 3), [0, NaN, 0])
-%!assert <*63203> (var ([1, NaN, 3], [], 1), [0, NaN, 0])
-%!assert <*63203> (var ([1, NaN, 3], [], 2), NaN)
-%!assert <*63203> (var ([1, NaN, 3], [], 3), [0, NaN, 0])
-%!assert <*63203> (var ([1, 2, 3; 3, Inf, 5]), [2, NaN, 2])
-%!assert <*63203> (var ([1, Inf, 3; 3, Inf, 5]), [2, NaN, 2])
-%!assert <*63203> (var ([1, 2, 3; 3, NaN, 5]), [2, NaN, 2])
-%!assert <*63203> (var ([1, NaN, 3; 3, NaN, 5]), [2, NaN, 2])
-%!assert <*63203> (var ([Inf, 2, NaN]), NaN)
-%!assert <*63203> (var ([Inf, 2, NaN]'), NaN)
-%!assert <*63203> (var ([NaN, 2, Inf]), NaN)
-%!assert <*63203> (var ([NaN, 2, Inf]'), NaN)
-%!assert <*63203> (var ([Inf, 2, NaN], [], 1), [NaN, 0, NaN])
-%!assert <*63203> (var ([Inf, 2, NaN], [], 2), NaN)
-%!assert <*63203> (var ([NaN, 2, Inf], [], 1), [NaN, 0, NaN])
-%!assert <*63203> (var ([NaN, 2, Inf], [], 2), NaN)
-%!assert <*63203> (var ([1, 3, NaN; 3, 5, Inf]), [2, 2, NaN])
-%!assert <*63203> (var ([1, 3, Inf; 3, 5, NaN]), [2, 2, NaN]);
+%!test <*63203>
+%! [v, m] = var (Inf);
+%! assert (v, NaN);
+%! assert (m, Inf);
+%!test <*63203>
+%! [v, m] = var (NaN);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3]);
+%! assert (v, NaN);
+%! assert (m, Inf);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3]');
+%! assert (v, NaN);
+%! assert (m, Inf);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3]);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3]');
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3], [], 1);
+%! assert (v, [0, NaN, 0]);
+%! assert (m, [1, Inf, 3]);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3], [], 2);
+%! assert (v, NaN);
+%! assert (m, Inf);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3], [], 3);
+%! assert (v, [0, NaN, 0]);
+%! assert (m, [1, Inf, 3]);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3], [], 1);
+%! assert (v, [0, NaN, 0]);
+%! assert (m, [1, NaN, 3]);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3], [], 2);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3], [], 3);
+%! assert (v, [0, NaN, 0]);
+%! assert (m, [1, NaN, 3]);
+%!test <*63203>
+%! [v, m] = var ([1, 2, 3; 3, Inf, 5]);
+%! assert (v, [2, NaN, 2]);
+%! assert (m, [2, Inf, 4]);
+%!test <*63203>
+%! [v, m] = var ([1, Inf, 3; 3, Inf, 5]);
+%! assert (v, [2, NaN, 2]);
+%! assert (m, [2, Inf, 4]);
+%!test <*63203>
+%! [v, m] = var ([1, 2, 3; 3, NaN, 5]);
+%! assert (v, [2, NaN, 2]);
+%! assert (m, [2, NaN, 4]);
+%!test <*63203>
+%! [v, m] = var ([1, NaN, 3; 3, NaN, 5]);
+%! assert (v, [2, NaN, 2]);
+%! assert (m, [2, NaN, 4]);
+%!test <*63203>
+%! [v, m] = var ([Inf, 2, NaN]);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([Inf, 2, NaN]');
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([NaN, 2, Inf]);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([NaN, 2, Inf]');
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([Inf, 2, NaN], [], 1);
+%! assert (v, [NaN, 0, NaN]);
+%! assert (m, [Inf, 2, NaN]);
+%!test <*63203>
+%! [v, m] = var ([Inf, 2, NaN], [], 2);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([NaN, 2, Inf], [], 1);
+%! assert (v, [NaN, 0, NaN]);
+%! assert (m, [NaN, 2, Inf]);
+%!test <*63203>
+%! [v, m] = var ([NaN, 2, Inf], [], 2);
+%! assert (v, NaN);
+%! assert (m, NaN);
+%!test <*63203>
+%! [v, m] = var ([1, 3, NaN; 3, 5, Inf]);
+%! assert (v, [2, 2, NaN]);
+%! assert (m, [2, 4, NaN]);
+%!test <*63203>
+%! [v, m] = var ([1, 3, Inf; 3, 5, NaN]);
+%! assert (v, [2, 2, NaN]);
+%! assert (m, [2, 4, NaN]);
 
 ## Test input validation
 %!error <Invalid call> var ()