view test/bug-45972.tst @ 31623:59422a6fbd91 stable

mean.m: Accept large DIM inputs and calculate Matlab-compatible output (bug #63411) * mean.m: Accept large DIM inputs by removing any dimensions larger than the dimensions of the input array. Use vectorized operations, rather than for loop, for this input validation. Pre-declare output array before for loop for performance. Use ipermute() after calculations to return correctly-dimensioned result (checked with Matlab). Change BIST tests results to match correct behavior.
author Rik <rik@octave.org>
date Fri, 02 Dec 2022 21:34:15 -0800
parents 9080316864bf
children
line wrap: on
line source

%!test <*45972>
%! ascii_filename = tempname ();
%! binary_filename = tempname ();
%! f = @ (x, y, varargin) x + y + varargin{1};
%! unwind_protect
%!   save ("-text", ascii_filename, "f");
%!   save ("-binary", binary_filename, "f");
%!   ascii = load (ascii_filename);
%!   binary = load (binary_filename);
%!   assert (f (1, 2, 3), ascii.f (1, 2, 3));
%!   assert (f (1, 2, 3), binary.f (1, 2, 3));
%! unwind_protect_cleanup
%!   unlink (ascii_filename);
%!   unlink (binary_filename);
%! end_unwind_protect

%!testif HAVE_HDF5 <*45972>
%! hdf5_filename = tempname ();
%! f = @ (x, y, varargin) x + y + varargin{1};
%! unwind_protect
%!   save ("-hdf5", hdf5_filename, "f");
%!   hdf5 = load (hdf5_filename);
%!   assert (f (1, 2, 3), hdf5.f (1, 2, 3));
%! unwind_protect_cleanup
%!   unlink (hdf5_filename);
%! end_unwind_protect