From 9c6849a3729dc4ca1301dd23403df9c09bc177c3 Mon Sep 17 00:00:00 2001 From: Sonu0305 Date: Mon, 14 Sep 2026 15:21:20 +0400 Subject: [PATCH 1/4] Fix empty array edge cases in mvregress --- inst/Regression/mvregress.m | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/inst/Regression/mvregress.m b/inst/Regression/mvregress.m index 7e55d7525..a73c5bf90 100644 --- a/inst/Regression/mvregress.m +++ b/inst/Regression/mvregress.m @@ -75,6 +75,9 @@ error ("mvregress: Y must be a real numeric matrix."); endif [n, d] = size (Y); + if (n == 0 || d == 0) + error ("mvregress: Y array is empty - cannot continue."); + endif ## --- normalise the design to per-observation d-by-K matrices --- is_numeric = ! iscell (X); @@ -431,5 +434,12 @@ %!error mvregress (1) %!error mvregress (ones (3), {1}) %!error mvregress (ones (2, 2), ones (3, 2)) + +%!test +%! ## Edge cases with empty arrays +%!fail ("mvregress ([], [])", ... +%! "mvregress: Y array is empty - cannot continue.") +%!fail ("mvregress (zeros(0,3), zeros(0,1))", ... +%! "mvregress: Y array is empty - cannot continue.") %!error mvregress (ones (3, 2), ones (3, 2), "algorithm", "xxx") %!error mvregress (ones (3, 2), ones (3, 2), "bogus", 1) From 0704dca8a9882c34848109a86b0b334733376150 Mon Sep 17 00:00:00 2001 From: Sonu0305 Date: Mon, 14 Sep 2026 15:56:17 +0400 Subject: [PATCH 2/4] Refactor tests to use %!error instead of %!fail --- inst/Regression/mvregress.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inst/Regression/mvregress.m b/inst/Regression/mvregress.m index a73c5bf90..d051486fb 100644 --- a/inst/Regression/mvregress.m +++ b/inst/Regression/mvregress.m @@ -437,9 +437,9 @@ %!test %! ## Edge cases with empty arrays -%!fail ("mvregress ([], [])", ... -%! "mvregress: Y array is empty - cannot continue.") -%!fail ("mvregress (zeros(0,3), zeros(0,1))", ... -%! "mvregress: Y array is empty - cannot continue.") +%!error ... +%! mvregress ([], []) +%!error ... +%! mvregress (zeros(0,3), zeros(0,1)) %!error mvregress (ones (3, 2), ones (3, 2), "algorithm", "xxx") %!error mvregress (ones (3, 2), ones (3, 2), "bogus", 1) From 521ba2c1ee9a80b9fb83280b3b5c4a7e571bfc2a Mon Sep 17 00:00:00 2001 From: Sonu0305 Date: Tue, 15 Sep 2026 20:57:50 +0400 Subject: [PATCH 3/4] Update empty array error message for mvregress --- inst/Regression/mvregress.m | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/inst/Regression/mvregress.m b/inst/Regression/mvregress.m index d051486fb..eed454439 100644 --- a/inst/Regression/mvregress.m +++ b/inst/Regression/mvregress.m @@ -76,7 +76,7 @@ endif [n, d] = size (Y); if (n == 0 || d == 0) - error ("mvregress: Y array is empty - cannot continue."); + error ("mvregress: y cannot be an empty array."); endif ## --- normalise the design to per-observation d-by-K matrices --- @@ -434,12 +434,11 @@ %!error mvregress (1) %!error mvregress (ones (3), {1}) %!error mvregress (ones (2, 2), ones (3, 2)) - -%!test -%! ## Edge cases with empty arrays -%!error ... +%!error ... %! mvregress ([], []) -%!error ... +%!error ... %! mvregress (zeros(0,3), zeros(0,1)) -%!error mvregress (ones (3, 2), ones (3, 2), "algorithm", "xxx") -%!error mvregress (ones (3, 2), ones (3, 2), "bogus", 1) +%!error ... +%! mvregress (ones (3, 2), ones (3, 2), "algorithm", "xxx") +%!error ... +%! mvregress (ones (3, 2), ones (3, 2), "bogus", 1) From 4b1adbbe79d21c9bbfcbf7524b15124c3bfddcb0 Mon Sep 17 00:00:00 2001 From: Sonu0305 Date: Wed, 16 Sep 2026 06:24:44 +0400 Subject: [PATCH 4/4] Fix case in mvregress error and restore test formatting --- inst/Regression/mvregress.m | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/inst/Regression/mvregress.m b/inst/Regression/mvregress.m index eed454439..f13467c53 100644 --- a/inst/Regression/mvregress.m +++ b/inst/Regression/mvregress.m @@ -75,8 +75,8 @@ error ("mvregress: Y must be a real numeric matrix."); endif [n, d] = size (Y); - if (n == 0 || d == 0) - error ("mvregress: y cannot be an empty array."); + if (isempty (Y)) + error ("mvregress: Y cannot be an empty array."); endif ## --- normalise the design to per-observation d-by-K matrices --- @@ -434,11 +434,9 @@ %!error mvregress (1) %!error mvregress (ones (3), {1}) %!error mvregress (ones (2, 2), ones (3, 2)) -%!error ... +%!error ... %! mvregress ([], []) -%!error ... -%! mvregress (zeros(0,3), zeros(0,1)) -%!error ... -%! mvregress (ones (3, 2), ones (3, 2), "algorithm", "xxx") -%!error ... -%! mvregress (ones (3, 2), ones (3, 2), "bogus", 1) +%!error ... +%! mvregress (zeros (0, 3), zeros (0, 1)) +%!error mvregress (ones (3, 2), ones (3, 2), "algorithm", "xxx") +%!error mvregress (ones (3, 2), ones (3, 2), "bogus", 1)