From: <par...@us...> - 2010-08-31 15:21:38
|
Revision: 7615 http://octave.svn.sourceforge.net/octave/?rev=7615&view=rev Author: paramaniac Date: 2010-08-31 14:51:02 +0000 (Tue, 31 Aug 2010) Log Message: ----------- control: exterminate nasty bugs, add tests just to be on the safe side Modified Paths: -------------- trunk/octave-forge/main/control/inst/issample.m trunk/octave-forge/main/control/inst/test_control.m Modified: trunk/octave-forge/main/control/inst/issample.m =================================================================== --- trunk/octave-forge/main/control/inst/issample.m 2010-08-31 13:06:08 UTC (rev 7614) +++ trunk/octave-forge/main/control/inst/issample.m 2010-08-31 14:51:02 UTC (rev 7615) @@ -16,10 +16,10 @@ ## -*- texinfo -*- ## @deftypefn {Function File} {} issample (@var{ts}) -## @deftypefnx {Function File} {} issample (@var{ts}, @var{-1}) +## @deftypefnx {Function File} {} issample (@var{ts}, @var{flg}) ## Return true if @var{ts} is a valid sampling time ## (real, scalar, > 0). If a second argument != 0 -## is passed, -1 becomes a valid sample time as well. +## is passed, -1 and 0 become valid sample times as well. ## @end deftypefn ## Author: A. S. Hodel <a.s...@en...> @@ -35,10 +35,33 @@ print_usage (); endif - if (flg) - bool = (isnumeric (tsam) && isscalar (tsam) && (tsam >= 0 || tsam == -1)); - else - bool = (isnumeric (tsam) && isscalar (tsam) && (tsam == abs (tsam)) && (tsam != 0)); + if (flg == 0) # allow -1 and 0 + bool = (isnumeric (tsam) && isscalar (tsam) && \ + (! iscomplex (tsam)) && (tsam > 0)); + else # refuse -1 and 0 + bool = (isnumeric (tsam) && isscalar (tsam) && \ + (! iscomplex (tsam)) && (tsam >= 0 || tsam == -1)); endif endfunction + + +## flg == 0 +%!assert (issample (1), true) +%!assert (issample (pi), true) +%!assert (issample (0), false) +%!assert (issample (-1), false) +%!assert (issample (-1, 0), false) +%!assert (issample ("a"), false) +%!assert (issample (eye (2)), false) +%!assert (issample (2+2i), false) + +## flg != 0 +%!assert (issample (-1, 1), true) +%!assert (issample (-1, -1), true) +%!assert (issample (pi, 1), true) +%!assert (issample (0, 1), true) +%!assert (issample ("b", 1), false) +%!assert (issample (-1, "ab"), true) +%!assert (issample (rand (3,2), 1), false) +%!assert (issample (2+2i, 1), false) Modified: trunk/octave-forge/main/control/inst/test_control.m =================================================================== --- trunk/octave-forge/main/control/inst/test_control.m 2010-08-31 13:06:08 UTC (rev 7614) +++ trunk/octave-forge/main/control/inst/test_control.m 2010-08-31 14:51:02 UTC (rev 7615) @@ -51,4 +51,5 @@ test sigma test initial test ctrb -test obsv \ No newline at end of file +test obsv +test issample \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |