changeset 24267:ba51a6fd6a18

scripts/specfun/perms.m: add tests for non numeric data (bug #52431)
author Carnë Draug <carandraug@octave.org>
date Fri, 17 Nov 2017 16:01:59 +0000
parents c372b091f622
children 94c4ebecca6e
files scripts/specfun/perms.m
diffstat 1 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/specfun/perms.m	Thu Nov 16 18:12:23 2017 -0800
+++ b/scripts/specfun/perms.m	Fri Nov 17 16:01:59 2017 +0000
@@ -119,4 +119,23 @@
 
 %!error perms ()
 %!error perms (1, 2)
-%!error <V must be a numeric> perms ({1})
+
+## Should work for any array type, such as cells and structs, and not
+## only for numeric data.
+%!test <52431>
+%! assert (perms ({1}), {1})
+%! assert (perms ({}), cell (1, 0))
+%! assert (perms ({0.1, "foo"}),
+%!         {"foo", 0.1; 0.1, "foo"})
+%! assert (perms ({"foo", 0.1}),
+%!         {0.1, "foo"; "foo", 0.1})
+%! assert (perms ({"foo"; 0.1}),
+%!         {0.1, "foo"; "foo", 0.1})
+%! assert (perms ({0.1; "foo"}),
+%!         {"foo", 0.1; 0.1, "foo"})
+%!
+%! assert (perms (struct ()), struct ())
+%! assert (perms (struct ("foo", {1, 2})),
+%!         struct ("foo", {2, 1; 1, 2}))
+%! assert (perms (struct ("foo", {1, 2}, "bar", {3, 4})),
+%!         struct ("foo", {2, 1; 1, 2}, "bar", {4, 3; 3, 4}))