# HG changeset patch # User John W. Eaton # Date 1394133925 18000 # Node ID 06970f4625b8ec9ea8359e4f8f44dc4d28767ca1 # Parent 9472e3c8f43e53fd5ebe1ff89e06a7706a6eb271 assert.m: allow assertions for function handles * assert.m: Allow expected value to be a function handle. New tests. diff -r 9472e3c8f43e -r 06970f4625b8 scripts/testfun/assert.m --- a/scripts/testfun/assert.m Wed Mar 05 00:34:44 2014 -0500 +++ b/scripts/testfun/assert.m Thu Mar 06 14:25:25 2014 -0500 @@ -141,6 +141,19 @@ end_try_catch endif + elseif (is_function_handle (expected)) + if (! is_function_handle (cond)) + err.index{end+1} = "@"; + err.observed{end+1} = "O"; + err.expected{end+1} = "E"; + err.reason{end+1} = ["Expected function handle, but observed " class(cond)]; + elseif (! isequal (cond, expected)) + err.index{end+1} = "@"; + err.observed{end+1} = "O"; + err.expected{end+1} = "E"; + err.reason{end+1} = "Function handles don't match"; + endif + elseif (isstruct (expected)) if (! isstruct (cond)) err.index{end+1} = "."; @@ -534,6 +547,12 @@ %! y{1}{1}{1} = 3; %! fail ("assert (x,y)", "Abs err 2 exceeds tol 0"); +## function handles +%!assert (@sin, @sin) +%!error assert (@sin, @cos) +%!error assert (pi, @cos) +%!error assert (@sin, pi) + %!test %! x = {[3], [1,2,3]; 100+100*eps, "dog"}; %! y = x;