view test/bug-45969.tst @ 30902:972959edc3ff

Allow sub2ind() to accept indices outside the size of the input subscripts (bug #62184) * NEWS.8.md: Announce change in Matlab Compatibility section. * sub2ind.cc: Add '#include "utility"' for access to std::swap. * sub2ind.cc (Fsub2ind): Check nargout to figure out ndims of output. For special case of vector (1-dimension), put in code to guarantee a row vector output. Add BIST tests for bug #62184. Remove input validation BIST which no longer applies. * Array-util.cc (ind2sub): Remove input validation requiring index to be within range of subscript size. Adjust code to put all remaining elements in the final output dimension.
author John W. Eaton <jwe@octave.org>
date Tue, 05 Apr 2022 15:12:34 -0700
parents 9080316864bf
children
line wrap: on
line source

%!test <*45969>
%! text_filename = tempname ();
%! binary_filename = tempname ();
%! a = 2;
%! b = 10;
%! c = 20;
%! f1 = @ (f, x) f (x) + a;
%! f2 = @ (y) f1 (@ (z) z^2 + b * y, y) + c;
%! f2_arg = 5;
%! save_default_options ("-text", "local");
%! unwind_protect
%!   save (text_filename, "f2");
%!   save ("-binary", binary_filename, "f2");
%!   text = load (text_filename);
%!   binary = load (binary_filename);
%!   assert (f2 (f2_arg), text.f2 (f2_arg));
%!   assert (f2 (f2_arg), binary.f2 (f2_arg));
%! unwind_protect_cleanup
%!   unlink (text_filename);
%!   unlink (binary_filename);
%! end_unwind_protect

%!testif HAVE_HDF5 <*45969>
%! hdf5_filename = tempname ();
%! a = 2;
%! b = 10;
%! c = 20;
%! f1 = @ (f, x) f (x) + a;
%! f2 = @ (y) f1 (@ (z) z^2 + b * y, y) + c;
%! f2_arg = 5;
%! save_default_options ("-text", "local");
%! unwind_protect
%!   save ("-hdf5", hdf5_filename, "f2");
%!   hdf5 = load (hdf5_filename);
%!   assert (f2 (f2_arg), hdf5.f2 (f2_arg));
%! unwind_protect_cleanup
%!   unlink (hdf5_filename);
%! end_unwind_protect