Mercurial > hg > octave-shane
changeset 13140:98d23b0f16e1
maint: move test_string.m tests to source files
* utils.cc (Fdo_string_escapes, Fundo_string_escapes):
New tests from test_string.m.
* strfns.cc (Fchar, Fischar, Fstrcmp): New tests from test_string.m.
(Fischar): New tests from test_string.m.
* mappers.cc (Ftoascii, Ftolower, Ftoupper, Fisalnum, Fisalpha,
Fisascii, Fiscntrl, Fisdigit, Fisgraph, Fislower, Fisprint, Fispunct,
Fisspace, Fisupper, Fisxdigit): New tests from test_string.m.
* pt-mat.cc: Move string concatenation tests here from test_string.m.
* test_string.m: Delete.
* test/Makefile.am (FCN_FILES): Remove test_string.m from the list.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 15 Sep 2011 12:02:54 -0400 |
parents | aa4a23337a0f |
children | e81ddf9cacd5 |
files | src/mappers.cc src/pt-mat.cc src/strfns.cc src/utils.cc test/Makefile.am test/test_string.m |
diffstat | 6 files changed, 213 insertions(+), 551 deletions(-) [+] |
line wrap: on
line diff
--- a/src/mappers.cc +++ b/src/mappers.cc @@ -67,7 +67,6 @@ } /* - %!assert(abs (1), 1); %!assert(abs (-3.5), 3.5); %!assert(abs (3+4i), 5); @@ -82,8 +81,7 @@ %!error abs (); %!error abs (1, 2); - - */ +*/ DEFUN (acos, args, , "-*- texinfo -*-\n\ @@ -102,7 +100,6 @@ } /* - %!test %! rt2 = sqrt (2); %! rt3 = sqrt (3); @@ -119,7 +116,6 @@ %!error acos (); %!error acos (1, 2); - */ DEFUN (acosh, args, , @@ -139,7 +135,6 @@ } /* - %!test %! v = [0, pi/2*i, pi*i, pi/2*i]; %! x = [1, 0, -1, 0]; @@ -152,7 +147,6 @@ %!error acosh (); %!error acosh (1, 2); - */ DEFUN (angle, args, , @@ -203,7 +197,6 @@ } /* - %!assert(arg (1), 0); %!assert(arg (i), pi/2); %!assert(arg (-1), pi); @@ -224,7 +217,6 @@ %!error arg (); %!error arg (1, 2); - */ DEFUN (asin, args, , @@ -271,7 +263,6 @@ } /* - %!test %! v = [0, pi/2*i, 0, -pi/2*i]; %! x = [0, i, 0, -i]; @@ -284,7 +275,6 @@ %!error asinh (); %!error asinh (1, 2); - */ DEFUN (atan, args, , @@ -304,7 +294,6 @@ } /* - %!test %! rt2 = sqrt (2); %! rt3 = sqrt (3); @@ -321,8 +310,7 @@ %!error atan (); %!error atan (1, 2); - - */ +*/ DEFUN (atanh, args, , "-*- texinfo -*-\n\ @@ -341,7 +329,6 @@ } /* - %!test %! v = [0, 0]; %! x = [0, 0]; @@ -354,7 +341,6 @@ %!error atanh (); %!error atanh (1, 2); - */ DEFUN (cbrt, args, , @@ -376,7 +362,6 @@ } /* - %!assert (cbrt (64), 4) %!assert (cbrt (-125), -5) %!assert (cbrt (0), 0) @@ -385,7 +370,6 @@ %!assert (cbrt (NaN), NaN) %!assert (cbrt (2^300), 2^100) %!assert (cbrt (125*2^300), 5*2^100) - */ DEFUN (ceil, args, , @@ -414,7 +398,6 @@ } /* - %% double precision %!assert(ceil ([2, 1.1, -1.1, -1]), [2, 2, -1, -1]); @@ -429,7 +412,6 @@ %!error ceil (); %!error ceil (1, 2); - */ DEFUN (conj, args, , @@ -455,7 +437,6 @@ } /* - %!assert(conj (1), 1); %!assert(conj (i), -i) %!assert(conj (1+i), 1-i) @@ -470,7 +451,6 @@ %!error conj (); %!error conj (1, 2); - */ DEFUN (cos, args, , @@ -490,7 +470,6 @@ } /* - %!test %! rt2 = sqrt (2); %! rt3 = sqrt (3); @@ -507,8 +486,7 @@ %!error cos (); %!error cos (1, 2); - - */ +*/ DEFUN (cosh, args, , "-*- texinfo -*-\n\ @@ -527,7 +505,6 @@ } /* - %!test %! x = [0, pi/2*i, pi*i, 3*pi/2*i]; %! v = [1, 0, -1, 0]; @@ -540,7 +517,6 @@ %!error cosh (); %!error cosh (1, 2); - */ DEFUN (erf, args, , @@ -579,7 +555,6 @@ } /* - %!test %! a = -1i*sqrt(-1/(6.4187*6.4187)); %! assert (erf(a), erf(real(a))); @@ -603,9 +578,6 @@ %% test/octave.test/arith/erf-3.m %!error erf(1,2); - - - */ DEFUN (erfinv, args, , @@ -666,11 +638,9 @@ } /* - %!test %! a = -1i*sqrt(-1/(6.4187*6.4187)); %! assert (erfc(a), erfc(real(a))); - */ DEFUN (erfcx, args, , @@ -701,10 +671,6 @@ return retval; } -/* - -*/ - DEFUN (exp, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} exp (@var{x})\n\ @@ -730,7 +696,6 @@ } /* - %!assert(exp ([0, 1, -1, -1000]), [1, e, 1/e, 0], sqrt (eps)); %!assert(exp (1+i), e * (cos (1) + sin (1) * i), sqrt (eps)); %!assert(exp (single([0, 1, -1, -1000])), single([1, e, 1/e, 0]), sqrt (eps('single'))); @@ -741,7 +706,6 @@ %!assert(exp (Inf) == Inf && exp (-Inf) == 0 && isnan (exp (NaN))); %!assert(exp (Inf ('single')) == Inf('single') && exp (-Inf('single')) == 0 && isnan (exp (NaN('single')))); - */ DEFUN (expm1, args, , @@ -794,7 +758,6 @@ } /* - %!assert(!(finite (Inf))); %!assert(!(finite (NaN))); %!assert(finite (rand(1,10))); @@ -802,8 +765,7 @@ %!assert(!(finite (single(Inf)))); %!assert(!(finite (single(NaN)))); %!assert(finite (single(rand(1,10)))); - - */ +*/ DEFUN (fix, args, , "-*- texinfo -*-\n\ @@ -831,7 +793,6 @@ } /* - %!assert(fix ([1.1, 1, -1.1, -1]), [1, 1, -1, -1]); %!assert(fix ([1.1+1.1i, 1+i, -1.1-1.1i, -1-i]), [1+i, 1+i, -1-i, -1-i]); %!assert(fix (single([1.1, 1, -1.1, -1])), single([1, 1, -1, -1])); @@ -839,7 +800,6 @@ %!error fix (); %!error fix (1, 2); - */ DEFUN (floor, args, , @@ -868,7 +828,6 @@ } /* - %!assert(floor ([2, 1.1, -1.1, -1]), [2, 1, -2, -1]); %!assert(floor ([2+2i, 1.1+1.1i, -1.1-1.1i, -1-i]), [2+2i, 1+i, -2-2i, -1-i]); %!assert(floor (single ([2, 1.1, -1.1, -1])), single ([2, 1, -2, -1])); @@ -876,7 +835,6 @@ %!error floor (); %!error floor (1, 2); - */ DEFUN (gamma, args, , @@ -915,7 +873,6 @@ } /* - %!test %! a = -1i*sqrt(-1/(6.4187*6.4187)); %! assert (gamma(a), gamma(real(a))); @@ -942,7 +899,6 @@ %!error gamma(); %!error gamma(1,2); - */ DEFUN (imag, args, , @@ -962,7 +918,6 @@ } /* - %!assert(imag (1), 0); %!assert(imag (i), 1); %!assert(imag (1+i), 1); @@ -975,8 +930,7 @@ %!error imag (); %!error imag (1, 2); - - */ +*/ DEFUNX ("isalnum", Fisalnum, args, , "-*- texinfo -*-\n\ @@ -996,6 +950,19 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result ((toascii("A"):toascii("Z"))+1) = 1; +%! result ((toascii("0"):toascii("9"))+1) = 1; +%! result ((toascii("a"):toascii("z"))+1) = 1; +%! assert(all (isalnum (charset) == result)); + +%!error isalnum (1, 2); +%!error isalnum (); +*/ + DEFUNX ("isalpha", Fisalpha, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isalpha (@var{s})\n\ @@ -1014,6 +981,18 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result ((toascii("A"):toascii("Z"))+1) = 1; +%! result ((toascii("a"):toascii("z"))+1) = 1; +%! assert(all (isalpha (charset) == result)); + +%!error isalpha (1, 2); +%!error isalpha (); +*/ + DEFUNX ("isascii", Fisascii, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isascii (@var{s})\n\ @@ -1031,6 +1010,16 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = ones (1, 128); +%! assert(all (isascii (charset) == result)); + +%!error isascii (1, 2); +%!error isascii (); +*/ + DEFUNX ("iscntrl", Fiscntrl, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} iscntrl (@var{s})\n\ @@ -1048,6 +1037,19 @@ return retval; } +/* +%% test/octave.test/string/iscntrl-1.m +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result (1:32) = 1; +%! result (128) = 1; +%! assert(all (iscntrl (charset) == result)); + +%!error iscntrl (1, 2); +%!error iscntrl (); +*/ + DEFUNX ("isdigit", Fisdigit, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isdigit (@var{s})\n\ @@ -1065,6 +1067,17 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result ((toascii("0"):toascii("9"))+1) = 1; +%! assert(all (isdigit (charset) == result)); + +%!error isdigit (1, 2); +%!error isdigit (); +*/ + DEFUN (isinf, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isinf (@var{x})\n\ @@ -1091,7 +1104,6 @@ } /* - %!assert(isinf (Inf)); %!assert(!isinf (NaN)); %!assert(!(isinf (NA))); @@ -1103,8 +1115,7 @@ %!assert(!(isinf (single(NA)))); %!assert(isinf (single(rand(1,10))), false(1,10)); %!assert(isinf(single([NaN -Inf -1 0 1 Inf NA])), [false, true, false, false, false, true, false]); - - */ +*/ DEFUNX ("isgraph", Fisgraph, args, , "-*- texinfo -*-\n\ @@ -1124,6 +1135,17 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result (34:127) = 1; +%! assert(all (isgraph (charset) == result)); + +%!error isgraph (1, 2); +%!error isgraph (); +*/ + DEFUNX ("islower", Fislower, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} islower (@var{s})\n\ @@ -1141,6 +1163,17 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result ((toascii("a"):toascii("z"))+1) = 1; +%! assert(all (islower (charset) == result)); + +%!error islower (1, 2); +%!error islower (); +*/ + DEFUN (isna, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isna (@var{x})\n\ @@ -1167,7 +1200,6 @@ } /* - %!assert(!(isna (Inf))); %!assert(!isna (NaN)); %!assert(isna (NA)); @@ -1179,8 +1211,7 @@ %!assert(isna (single(NA))); %!assert(isna (single(rand(1,10))), false(1,10)); %!assert(isna(single([NaN -Inf -1 0 1 Inf NA])), [false, false, false, false, false, false, true]); - - */ +*/ DEFUN (isnan, args, , "-*- texinfo -*-\n\ @@ -1208,7 +1239,6 @@ } /* - %!assert(!(isnan (Inf))); %!assert(isnan (NaN)); %!assert(isnan (NA)); @@ -1220,8 +1250,7 @@ %!assert(isnan (single(NA))); %!assert(isnan (single(rand(1,10))), false(1,10)); %!assert(isnan(single([NaN -Inf -1 0 1 Inf NA])), [true, false, false, false, false, false, true]); - - */ +*/ DEFUNX ("isprint", Fisprint, args, , "-*- texinfo -*-\n\ @@ -1241,6 +1270,20 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result (33:127) = 1; +%! if (ispc () && ! isunix ()) +%! result(10) = 1; +%! endif +%! assert(all (isprint (charset) == result)); + +%!error isprint (1, 2); +%!error isprint (); +*/ + DEFUNX ("ispunct", Fispunct, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} ispunct (@var{s})\n\ @@ -1258,6 +1301,20 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result (34:48) = 1; +%! result (59:65) = 1; +%! result (92:97) = 1; +%! result (124:127) = 1; +%! assert(all (ispunct (charset) == result)); + +%!error ispunct (1, 2); +%!error ispunct (); +*/ + DEFUNX ("isspace", Fisspace, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isspace (@var{s})\n\ @@ -1276,6 +1333,17 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result (toascii (" \f\n\r\t\v")+1) = 1; +%! assert(all (isspace (charset) == result)); + +%!error isspace (1, 2); +%!error isspace (); +*/ + DEFUNX ("isupper", Fisupper, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isupper (@var{s})\n\ @@ -1293,6 +1361,17 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result ((toascii("A"):toascii("Z"))+1) = 1; +%! assert(all (isupper (charset) == result)); + +%!error isupper (1, 2); +%!error isupper (); +*/ + DEFUNX ("isxdigit", Fisxdigit, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} isxdigit (@var{s})\n\ @@ -1310,6 +1389,19 @@ return retval; } +/* +%!test +%! charset = setstr (0:127); +%! result = zeros (1, 128); +%! result ((toascii("A"):toascii("F"))+1) = 1; +%! result ((toascii("0"):toascii("9"))+1) = 1; +%! result ((toascii("a"):toascii("f"))+1) = 1; +%! assert(all (isxdigit (charset) == result)); + +%!error isxdigit (1, 2); +%!error isxdigit (); +*/ + DEFUN (lgamma, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} lgamma (@var{x})\n\ @@ -1328,7 +1420,6 @@ } /* - %!test %! a = -1i*sqrt(-1/(6.4187*6.4187)); %! assert (lgamma(a), lgamma(real(a))); @@ -1355,7 +1446,6 @@ %!error lgamma(); %!error lgamma(1,2); - */ DEFUN (log, args, , @@ -1383,7 +1473,6 @@ } /* - %!assert(log ([1, e, e^2]), [0, 1, 2], sqrt (eps)); %!assert(log ([-0.5, -1.5, -2.5]), log([0.5, 1.5, 2.5]) + pi*1i, sqrt (eps)); @@ -1392,8 +1481,7 @@ %!error log (); %!error log (1, 2); - - */ +*/ DEFUN (log10, args, , "-*- texinfo -*-\n\ @@ -1412,13 +1500,11 @@ } /* - %!assert(log10 ([0.01, 0.1, 1, 10, 100]), [-2, -1, 0, 1, 2], sqrt (eps)); %!assert(log10 (single([0.01, 0.1, 1, 10, 100])), single([-2, -1, 0, 1, 2]), sqrt (eps ('single'))); %!error log10 (); %!error log10 (1, 2); - */ DEFUN (log1p, args, , @@ -1461,7 +1547,6 @@ } /* - %!assert(real (1), 1); %!assert(real (i), 0); %!assert(real (1+i), 1); @@ -1474,7 +1559,6 @@ %!error real (); %!error real (1, 2); - */ DEFUN (round, args, , @@ -1502,7 +1586,6 @@ } /* - %!assert(round (1), 1); %!assert(round (1.1), 1); %!assert(round (5.5), 6); @@ -1521,7 +1604,6 @@ %!error round (); %!error round (1, 2); - */ DEFUN (roundb, args, , @@ -1576,7 +1658,6 @@ } /* - %!assert(sign (-2) , -1); %!assert(sign (3), 1); %!assert(sign (0), 0); @@ -1589,7 +1670,6 @@ %!error sign (); %!error sign (1, 2); - */ DEFUN (sin, args, , @@ -1609,7 +1689,6 @@ } /* - %!test %! rt2 = sqrt (2); %! rt3 = sqrt (3); @@ -1626,7 +1705,6 @@ %!error sin (); %!error sin (1, 2); - */ DEFUN (sinh, args, , @@ -1646,7 +1724,6 @@ } /* - %!test %! x = [0, pi/2*i, pi*i, 3*pi/2*i]; %! v = [0, i, 0, -i]; @@ -1659,8 +1736,7 @@ %!error sinh (); %!error sinh (1, 2); - - */ +*/ DEFUN (sqrt, args, , "-*- texinfo -*-\n\ @@ -1681,7 +1757,6 @@ } /* - %!assert(sqrt (4), 2) %!assert(sqrt (-1), i) %!assert(sqrt (1+i), exp (0.5 * log (1+i)), sqrt (eps)); @@ -1694,7 +1769,6 @@ %!error sqrt (); %!error sqrt (1, 2); - */ DEFUN (tan, args, , @@ -1714,7 +1788,6 @@ } /* - %!test %! rt2 = sqrt (2); %! rt3 = sqrt (3); @@ -1731,7 +1804,6 @@ %!error tan (); %!error tan (1, 2); - */ DEFUN (tanh, args, , @@ -1751,7 +1823,6 @@ } /* - %!test %! x = [0, pi*i]; %! v = [0, 0]; @@ -1764,7 +1835,6 @@ %!error tanh (); %!error tanh (1, 2); - */ DEFUNX ("toascii", Ftoascii, args, , @@ -1791,6 +1861,17 @@ return retval; } +/* +%!assert(toascii (char (0:127)), 0:127); +%!assert(toascii (" ":"@"), 32:64); +%!assert(toascii ("A":"Z"), 65:90); +%!assert(toascii ("[":"`"), 91:96); +%!assert(toascii ("a":"z"), 97:122); +%!assert(toascii ("{":"~"), 123:126); +%!error toascii (1, 2); +%!error toascii (1, 2); +*/ + DEFUNX ("tolower", Ftolower, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} tolower (@var{s})\n\ @@ -1820,9 +1901,9 @@ DEFALIAS (lower, tolower); /* - %!error <Invalid call to tolower.*> tolower(); %!error <Invalid call to tolower.*> lower(); +%!error tolower (1, 2); %!assert(tolower("OCTAVE"), "octave"); %!assert(tolower("123OCTave!_&"), "123octave!_&"); %!assert(tolower({"ABC", "DEF", {"GHI", {"JKL"}}}), {"abc", "def", {"ghi", {"jkl"}}}); @@ -1834,9 +1915,14 @@ %! a(3,3,3,3) = "D"; %! assert(tolower(a)(3,3,3,3), "d"); +%!test +%! charset = setstr (0:127); +%! result = charset; +%! result ((toascii("A"):toascii("Z"))+1) \ +%! = result ((toascii("a"):toascii("z"))+1); +%! assert(all (tolower (charset) == result)); */ - DEFUNX ("toupper", Ftoupper, args, , "-*- texinfo -*-\n\ @deftypefn {Mapping Function} {} toupper (@var{s})\n\ @@ -1866,9 +1952,9 @@ DEFALIAS (upper, toupper); /* - %!error <Invalid call to toupper.*> toupper(); %!error <Invalid call to toupper.*> upper(); +%!error toupper (1, 2); %!assert(toupper("octave"), "OCTAVE"); %!assert(toupper("123OCTave!_&"), "123OCTAVE!_&"); %!assert(toupper({"abc", "def", {"ghi", {"jkl"}}}), {"ABC", "DEF", {"GHI", {"JKL"}}}); @@ -1879,7 +1965,12 @@ %!test %! a(3,3,3,3) = "d"; %! assert(toupper(a)(3,3,3,3), "D"); - +%!test +%! charset = setstr (0:127); +%! result = charset; +%! result ((toascii("a"):toascii("z"))+1) \ +%! = result ((toascii("A"):toascii("Z"))+1); +%! assert(all (toupper (charset) == result)); */ DEFALIAS (gammaln, lgamma);
--- a/src/pt-mat.cc +++ b/src/pt-mat.cc @@ -1125,6 +1125,12 @@ tw.visit_matrix (*this); } +/* +%% test concatenation with all zero matrices +%!assert([ '' 65*ones(1,10) ], 'AAAAAAAAAA'); +%!assert([ 65*ones(1,10) '' ], 'AAAAAAAAAA'); +*/ + DEFUN (string_fill_char, args, nargout, "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {@var{val} =} string_fill_char ()\n\
--- a/src/strfns.cc +++ b/src/strfns.cc @@ -162,6 +162,13 @@ %!assert (all(char ({100,{100, {""}}}) == ["d";"d";" "])) %!assert (all(char (["a";"be"], {"c", 100}) == ["a";"be";"c";"d"])) %!assert(strcmp (char ("a", "bb", "ccc"), ["a "; "bb "; "ccc"])); +%!assert(strcmp (char ([65, 83, 67, 73, 73]), "ASCII")); + +%!test +%! x = char ("foo", "bar", "foobar"); +%! assert((strcmp (x(1,:), "foo ") +%! && strcmp (x(2,:), "bar ") +%! && strcmp (x(3,:), "foobar"))); */ DEFUN (strvcat, args, , @@ -314,14 +321,20 @@ } /* - %!assert (ischar ("a"), logical (1)); %!assert (ischar (["ab";"cd"]), logical (1)); %!assert (ischar ({"ab"}), logical (0)); %!assert (ischar (1), logical (0)); +%!assert(ischar ([1, 2]), logical (0)); +%!assert(ischar ([]), logical (0)); +%!assert(ischar ([1, 2; 3, 4]), logical (0)); +%!assert(ischar (""), logical (1)); +%!assert(ischar ("test"), logical (1)); +%!assert(ischar (["test"; "ing"]), logical (1)); +%!assert(ischar (struct ("foo", "bar")), logical (0)); %!error <Invalid call to ischar.*> ischar (); - - */ +%!error <Invalid call to ischar.*> ischar ("test", 1); +*/ static octave_value do_strcmp_fun (const octave_value& arg0, const octave_value& arg1, @@ -576,12 +589,15 @@ } /* +%!error <Invalid call to strcmp.*> strcmp (); +%!error <Invalid call to strcmp.*> strcmp ("foo", "bar", 3); +%! %!shared x %! x = char (zeros (0, 2)); %!assert (strcmp ('', x) == false); %!assert (strcmp (x, '') == false); %!assert (strcmp (x, x) == true); -## %!assert (strcmp ({''}, x) == false); +## %!assert (strcmp ({''}, x) == true); ## %!assert (strcmp ({x}, '') == false); ## %!assert (strcmp ({x}, x) == true); ## %!assert (strcmp ('', {x}) == false); @@ -608,14 +624,16 @@ %!assert (all (strcmp ('', {y}) == [true; true])); %!assert (all (strcmp (y, {''}) == [true; true])); %!assert (all (strcmp (y, {y}) == [true; true])); -## %!assert (all (strcmp ({y; y}, '') == [false; false])); -## %!assert (all (strcmp ({y; y}, {''}) == [false; false])); -## %!assert (all (strcmp ('', {y; y}) == [false; false])); -## %!assert (all (strcmp ({''}, {y; y}) == [false; false])); +%!assert (all (strcmp ({y; y}, '') == [true; true])); +%!assert (all (strcmp ({y; y}, {''}) == [true; true])); +%!assert (all (strcmp ('', {y; y}) == [true; true])); +%!assert (all (strcmp ({''}, {y; y}) == [true; true])); %!assert (all (strcmp ({'foo'}, y) == [false; false])); %!assert (all (strcmp ({'foo'}, y) == [false; false])); %!assert (all (strcmp (y, {'foo'}) == [false; false])); %!assert (all (strcmp (y, {'foo'}) == [false; false])); +%!assert (strcmp ("foobar", "foobar"), true); +%!assert (strcmp ("fooba", "foobar"), false); */ // Apparently, Matlab ignores the dims with strncmp. It also
--- a/src/utils.cc +++ b/src/utils.cc @@ -678,11 +678,13 @@ %!assert (do_string_escapes ('foo\nbar'), "foo\nbar"); %!assert (do_string_escapes ("foo\\nbar"), "foo\nbar"); %!assert (do_string_escapes ("foo\\nbar"), ["foo", char(10), "bar"]); +%!assert ("foo\nbar", ["foo", char(10), "bar"]); %!assert (do_string_escapes ('\a\b\f\n\r\t\v'), "\a\b\f\n\r\t\v"); %!assert (do_string_escapes ("\\a\\b\\f\\n\\r\\t\\v"), "\a\b\f\n\r\t\v"); %!assert (do_string_escapes ("\\a\\b\\f\\n\\r\\t\\v"), %! char ([7, 8, 12, 10, 13, 9, 11])); +%!assert ("\a\b\f\n\r\t\v", char ([7, 8, 12, 10, 13, 9, 11])); */ const char *
--- a/test/Makefile.am +++ b/test/Makefile.am @@ -44,7 +44,6 @@ test_recursion.m \ test_return.m \ test_slice.m \ - test_string.m \ test_struct.m \ test_switch.m \ test_system.m \
deleted file mode 100644 --- a/test/test_string.m +++ /dev/null @@ -1,454 +0,0 @@ -## Copyright (C) 2006-2011 John W. Eaton -## -## This file is part of Octave. -## -## Octave is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or (at -## your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <http://www.gnu.org/licenses/>. - -%% test/octave.test/string/str-esc-1.m -%!test -%! x = 7; -%! if (strcmp ("\a", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-2.m -%!test -%! x = 8; -%! if (strcmp ("\b", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-3.m -%!test -%! x = 12; -%! if (strcmp ("\f", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-4.m -%!test -%! x = 10; -%! if (strcmp ("\n", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-5.m -%!test -%! x = 13; -%! if (strcmp ("\r", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-6.m -%!test -%! x = 9; -%! if (strcmp ("\t", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-7.m -%!test -%! x = 11; -%! if (strcmp ("\v", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-8.m -%!test -%! x = 92; -%! if (strcmp ("\\", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-9.m -%!test -%! x = 39; -%! if (strcmp ("\'", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-10.m -%!test -%! x = 34; -%! if (strcmp ("\"", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% test/octave.test/string/str-esc-11.m -%!test -%! x = 120; -%! fail('strcmp ("\x", setstr (x))',"warning",".*unrecognized escape sequence.*"); - -%% test/octave.test/string/str-esc-12.m -%!test -%! x = [7, 8, 12, 10, 13, 9, 11, 92, 39, 34]; -%! if (strcmp ("\a\b\f\n\r\t\v\\\'\"", setstr (x))) -%! printf_assert ("ok\n"); -%! endif -%! assert(prog_output_assert("ok")); - -%% FIXME -%% Why do the next two tests fail? -%% test/octave.test/string/string_fill_char-1.m -%!#test -%! sfc = string_fill_char; -%! string_fill_char = "X"; -%! str = ["these"; "are"; "strings"]; -%! assert(str,["theseXX"; "areXXXX"; "strings"]); -%! string_fill_char = sfc; - -%% test/octave.test/string/string_fill_char-2.m -%!#test -%! sfc = string_fill_char; -%! string_fill_char = " "; -%! str = ["these"; "are"; "strings"]; -%! assert(str,["these "; "are "; "strings"]); -%! string_fill_char = sfc; - -%% test/octave.test/string/ischar-1.m -%!assert(!(ischar (1))); - -%% test/octave.test/string/ischar-2.m -%!assert(!(ischar ([1, 2]))); - -%% test/octave.test/string/ischar-3.m -%!assert(!(ischar ([]))); - -%% test/octave.test/string/ischar-4.m -%!assert(!(ischar ([1, 2; 3, 4]))); - -%% test/octave.test/string/ischar-5.m -%!assert(ischar ("")); - -%% test/octave.test/string/ischar-6.m -%!assert(ischar ("t")); - -%% test/octave.test/string/ischar-7.m -%!assert(ischar ("test")); - -%% test/octave.test/string/ischar-8.m -%!assert(ischar (["test"; "ing"])); - -%% test/octave.test/string/ischar-9.m -%!test -%! s.a = "test"; -%! assert(!(ischar (s))); - -%% test/octave.test/string/ischar-10.m -%!error <Invalid call to ischar.*> ischar (); - -%% test/octave.test/string/ischar-11.m -%!error <Invalid call to ischar.*> ischar ("test", 1); - - -%% test/octave.test/string/char-1.m -%!assert(strcmp (char ([65, 83, 67, 73, 73]), "ASCII")); - -%% test/octave.test/string/char-2.m -%!error <Invalid call to char.*> char (); - -%% test/octave.test/string/char-3.m -%!test -%! x = char ("foo", "bar", "foobar"); -%! assert((strcmp (x(1,:), "foo ") -%! && strcmp (x(2,:), "bar ") -%! && strcmp (x(3,:), "foobar"))); - - -%% test/octave.test/string/strcmp-1.m -%!assert(strcmp ("foobar", "foobar") && strcmp ("fooba", "foobar") == 0); - -%% test/octave.test/string/strcmp-2.m -%!error <Invalid call to strcmp.*> strcmp (); - -%% test/octave.test/string/strcmp-3.m -%!error <Invalid call to strcmp.*> strcmp ("foo", "bar", 3); - - - -%% test/octave.test/string/undo_string_escapes-1.m -%!assert(strcmp (undo_string_escapes ("abc\a\b\n\r\t\v\f123"), -%! "abc\\a\\b\\n\\r\\t\\v\\f123")); - -%% test/octave.test/string/undo_string_escapes-2.m -%!error <Invalid call to undo_string_escapes.*> undo_string_escapes (); - -%% test/octave.test/string/undo_string_escapes-3.m -%!error <Invalid call to undo_string_escapes.*> undo_string_escapes ("string", 2); - -%% test/octave.test/string/toascii-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = 0:127; -%! -%! assert(all (toascii (charset) == result)); - -%% test/octave.test/string/toascii-3.m -%!error toascii (1, 2); - -%% test/octave.test/string/toascii-3.m -%!error toascii (1, 2); - -%% test/octave.test/string/tolower-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = charset; -%! -%! result ((toascii("A"):toascii("Z"))+1) \ -%! = result ((toascii("a"):toascii("z"))+1); -%! -%! assert(all (tolower (charset) == result)); - -%% test/octave.test/string/tolower-3.m -%!error tolower (1, 2); - -%% test/octave.test/string/tolower-3.m -%!error tolower (1, 2); - -%% test/octave.test/string/toupper-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = charset; -%! -%! result ((toascii("a"):toascii("z"))+1) \ -%! = result ((toascii("A"):toascii("Z"))+1); -%! -%! assert(all (toupper (charset) == result)); - -%% test/octave.test/string/toupper-3.m -%!error toupper (1, 2); - -%% test/octave.test/string/toupper-3.m -%!error toupper (1, 2); - -%% test/octave.test/string/isalnum-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result ((toascii("A"):toascii("Z"))+1) = 1; -%! result ((toascii("0"):toascii("9"))+1) = 1; -%! result ((toascii("a"):toascii("z"))+1) = 1; -%! -%! assert(all (isalnum (charset) == result)); - -%% test/octave.test/string/isalnum-2.m -%!error isalnum (1, 2); - -%% test/octave.test/string/isalnum-3.m -%!error isalnum (); - -%% test/octave.test/string/isalpha-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result ((toascii("A"):toascii("Z"))+1) = 1; -%! result ((toascii("a"):toascii("z"))+1) = 1; -%! -%! assert(all (isalpha (charset) == result)); - -%% test/octave.test/string/isalpha-2.m -%!error isalpha (1, 2); - -%% test/octave.test/string/isalpha-3.m -%!error isalpha (); - -%% test/octave.test/string/isascii-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = ones (1, 128); -%! -%! assert(all (isascii (charset) == result)); - -%% test/octave.test/string/isascii-2.m -%!error isascii (1, 2); - -%% test/octave.test/string/isascii-3.m -%!error isascii (); - -%% test/octave.test/string/iscntrl-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result (1:32) = 1; -%! result (128) = 1; -%! -%! assert(all (iscntrl (charset) == result)); - -%% test/octave.test/string/iscntrl-2.m -%!error iscntrl (1, 2); - -%% test/octave.test/string/iscntrl-3.m -%!error iscntrl (); - -%% test/octave.test/string/isdigit-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result ((toascii("0"):toascii("9"))+1) = 1; -%! -%! assert(all (isdigit (charset) == result)); - -%% test/octave.test/string/isdigit-2.m -%!error isdigit (1, 2); - -%% test/octave.test/string/isdigit-3.m -%!error isdigit (); - -%% test/octave.test/string/isgraph-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result (34:127) = 1; -%! -%! assert(all (isgraph (charset) == result)); - -%% test/octave.test/string/isgraph-2.m -%!error isgraph (1, 2); - -%% test/octave.test/string/isgraph-3.m -%!error isgraph (); - -%% test/octave.test/string/islower-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result ((toascii("a"):toascii("z"))+1) = 1; -%! -%! assert(all (islower (charset) == result)); - -%% test/octave.test/string/islower-2.m -%!error islower (1, 2); - -%% test/octave.test/string/islower-3.m -%!error islower (); - -%% test/octave.test/string/isprint-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result (33:127) = 1; -%! if (ispc () && ! isunix ()) -%! result(10) = 1; -%! endif -%! -%! assert(all (isprint (charset) == result)); - -%% test/octave.test/string/isprint-2.m -%!error isprint (1, 2); - -%% test/octave.test/string/isprint-3.m -%!error isprint (); - -%% test/octave.test/string/ispunct-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result (34:48) = 1; -%! result (59:65) = 1; -%! result (92:97) = 1; -%! result (124:127) = 1; -%! -%! assert(all (ispunct (charset) == result)); - -%% test/octave.test/string/ispunct-2.m -%!error ispunct (1, 2); - -%% test/octave.test/string/ispunct-3.m -%!error ispunct (); - -%% test/octave.test/string/isspace-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result (toascii (" \f\n\r\t\v")+1) = 1; -%! -%! assert(all (isspace (charset) == result)); - -%% test/octave.test/string/isspace-2.m -%!error isspace (1, 2); - -%% test/octave.test/string/isspace-3.m -%!error isspace (); - -%% test/octave.test/string/isupper-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result ((toascii("A"):toascii("Z"))+1) = 1; -%! -%! assert(all (isupper (charset) == result)); - -%% test/octave.test/string/isupper-2.m -%!error isupper (1, 2); - -%% test/octave.test/string/isupper-3.m -%!error isupper (); - -%% test/octave.test/string/isxdigit-1.m -%!test -%! charset = setstr (0:127); -%! -%! result = zeros (1, 128); -%! -%! result ((toascii("A"):toascii("F"))+1) = 1; -%! result ((toascii("0"):toascii("9"))+1) = 1; -%! result ((toascii("a"):toascii("f"))+1) = 1; -%! -%! assert(all (isxdigit (charset) == result)); - -%% test/octave.test/string/isxdigit-2.m -%!error isxdigit (1, 2); - -%% test/octave.test/string/isxdigit-3.m -%!error isxdigit (); - -%% test concatenation with all zero matrices -%!assert([ '' 65*ones(1,10) ], 'AAAAAAAAAA'); -%!assert([ 65*ones(1,10) '' ], 'AAAAAAAAAA'); -