如何在 GNU Octave 断言测试方法中测试多个 return 值?

How to test multiple return values in GNU Octave assert test method?

这是一个简单的例子:

function [s, d] = sumdiff(a,b)    
s = a+b;
d = a-b;
%!test
%! a = [10]; b = [1];
%! assert (sumdiff (a, b), 11);

它只检查第一个返回值。如何检查第二个?

通常,这样做是这样的:

%!test
%! a = [10]; b = [1];
%! [s, d] = sumdiff (a, b);
%! assert (s, 11)
%! assert (d, 9)

但如果你坚持要单线,你可以使用不太清晰的 nthargout:

%!test
%! a = [10]; b = [1];
%! assert (nthargout ([1 2], @sumdiff, a, b), {11, 9})