Mercurial > octave-nkf
comparison src/strfns.cc @ 14429:eff4a5933e28
Update %!tests in src/ directory with Octave coding conventions.
* data.cc, defaults.cc, dirfns.cc, file-io.cc, graphics.cc, mappers.cc,
oct-map.cc, octave.cc, ov-base.cc, ov-bool-mat.cc, ov-cell.cc,
ov-fcn-handle.cc, ov-fcn-inline.cc, ov-flt-re-mat.cc, ov-int16.cc, ov-int32.cc,
ov-int64.cc, ov-int8.cc, ov-null-mat.cc, ov-oncleanup.cc, ov-range.cc,
ov-re-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc, ov-uint32.cc,
ov-uint64.cc, ov-uint8.cc, ov.cc, pr-output.cc, pt-binop.cc, pt-eval.cc,
pt-idx.cc, pt-mat.cc, sighandlers.cc, strfns.cc, symtab.cc, syscalls.cc,
sysdep.cc, toplev.cc, utils.cc, variables.cc: Update %!tests in src/ directory
with Octave coding conventions.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Sun, 04 Mar 2012 12:21:10 -0800 |
parents | 97883071e8e4 |
children | afa5e1d20671 |
comparison
equal
deleted
inserted
replaced
14428:099bd779466c | 14429:eff4a5933e28 |
---|---|
150 return retval; | 150 return retval; |
151 } | 151 } |
152 | 152 |
153 /* | 153 /* |
154 %!assert (char (), ''); | 154 %!assert (char (), ''); |
155 %!assert (char (100) == "d"); | 155 %!assert (char (100), "d"); |
156 %!assert (all(char (100,100) == ["d";"d"])); | 156 %!assert (char (100,100), ["d";"d"]) |
157 %!assert (all(char ({100,100}) == ["d";"d"])); | 157 %!assert (char ({100,100}), ["d";"d"]) |
158 %!assert (all(char ([100,100]) == ["dd"])); | 158 %!assert (char ([100,100]), ["dd"]) |
159 %!assert (all(char ({100,{100}}) == ["d";"d"])); | 159 %!assert (char ({100,{100}}), ["d";"d"]) |
160 %!assert (all(char (100, [], 100) == ["d";" ";"d"])) | 160 %!assert (char (100, [], 100), ["d";" ";"d"]) |
161 %!assert (all(char ({100, [], 100}) == ["d";" ";"d"])) | 161 %!assert (char ({100, [], 100}), ["d";" ";"d"]) |
162 %!assert (all(char ({100,{100, {""}}}) == ["d";"d";" "])) | 162 %!assert (char ({100,{100, {""}}}), ["d";"d";" "]) |
163 %!assert (all(char (["a";"be"], {"c", 100}) == ["a";"be";"c";"d"])) | 163 %!assert (char (["a";"be"], {"c", 100}), ["a";"be";"c";"d"]) |
164 %!assert(strcmp (char ("a", "bb", "ccc"), ["a "; "bb "; "ccc"])); | 164 %!assert (char ("a", "bb", "ccc"), ["a "; "bb "; "ccc"]) |
165 %!assert(strcmp (char ([65, 83, 67, 73, 73]), "ASCII")); | 165 %!assert (char ([65, 83, 67, 73, 73]), "ASCII") |
166 | 166 |
167 %!test | 167 %!test |
168 %! x = char ("foo", "bar", "foobar"); | 168 %! x = char ("foo", "bar", "foobar"); |
169 %! assert((strcmp (x(1,:), "foo ") | 169 %! assert (x(1,:), "foo "); |
170 %! && strcmp (x(2,:), "bar ") | 170 %! assert (x(2,:), "bar "); |
171 %! && strcmp (x(3,:), "foobar"))); | 171 %! assert (x(3,:), "foobar"); |
172 */ | 172 */ |
173 | 173 |
174 DEFUN (strvcat, args, , | 174 DEFUN (strvcat, args, , |
175 "-*- texinfo -*-\n\ | 175 "-*- texinfo -*-\n\ |
176 @deftypefn {Built-in Function} {} strvcat (@var{x})\n\ | 176 @deftypefn {Built-in Function} {} strvcat (@var{x})\n\ |
284 | 284 |
285 return retval; | 285 return retval; |
286 } | 286 } |
287 | 287 |
288 /* | 288 /* |
289 %!error <Invalid call to strvcat> strvcat() | |
290 %!assert (strvcat (""), ""); | 289 %!assert (strvcat (""), ""); |
291 %!assert (strvcat (100) == "d"); | 290 %!assert (strvcat (100) == "d"); |
292 %!assert (all(strvcat (100,100) == ["d";"d"])); | 291 %!assert (strvcat (100,100), ["d";"d"]) |
293 %!assert (all(strvcat ({100,100}) == ["d";"d"])); | 292 %!assert (strvcat ({100,100}), ["d";"d"]) |
294 %!assert (all(strvcat ([100,100]) == ["dd"])); | 293 %!assert (strvcat ([100,100]), ["dd"]) |
295 %!assert (all(strvcat ({100,{100}}) == ["d";"d"])); | 294 %!assert (strvcat ({100,{100}}), ["d";"d"]) |
296 %!assert (all(strvcat (100, [], 100) == ["d";"d"])) | 295 %!assert (strvcat (100, [], 100), ["d";"d"]) |
297 %!assert (all(strvcat ({100, [], 100}) == ["d";"d"])) | 296 %!assert (strvcat ({100, [], 100}), ["d";"d"]) |
298 %!assert (all(strvcat ({100,{100, {""}}}) == ["d";"d"])) | 297 %!assert (strvcat ({100,{100, {""}}}), ["d";"d"]) |
299 %!assert (all(strvcat (["a";"be"], {"c", 100}) == ["a";"be";"c";"d"])) | 298 %!assert (strvcat (["a";"be"], {"c", 100}), ["a";"be";"c";"d"]) |
300 %!assert(strcmp (strvcat ("a", "bb", "ccc"), ["a "; "bb "; "ccc"])); | 299 %!assert (strvcat ("a", "bb", "ccc"), ["a "; "bb "; "ccc"]) |
300 | |
301 %!error strvcat () | |
301 */ | 302 */ |
302 | 303 |
303 | 304 |
304 DEFUN (ischar, args, , | 305 DEFUN (ischar, args, , |
305 "-*- texinfo -*-\n\ | 306 "-*- texinfo -*-\n\ |
319 | 320 |
320 return retval; | 321 return retval; |
321 } | 322 } |
322 | 323 |
323 /* | 324 /* |
324 %!assert (ischar ("a"), logical (1)); | 325 %!assert (ischar ("a"), true) |
325 %!assert (ischar (["ab";"cd"]), logical (1)); | 326 %!assert (ischar (["ab";"cd"]), true) |
326 %!assert (ischar ({"ab"}), logical (0)); | 327 %!assert (ischar ({"ab"}), false) |
327 %!assert (ischar (1), logical (0)); | 328 %!assert (ischar (1), false) |
328 %!assert(ischar ([1, 2]), logical (0)); | 329 %!assert (ischar ([1, 2]), false) |
329 %!assert(ischar ([]), logical (0)); | 330 %!assert (ischar ([]), false) |
330 %!assert(ischar ([1, 2; 3, 4]), logical (0)); | 331 %!assert (ischar ([1, 2; 3, 4]), false) |
331 %!assert(ischar (""), logical (1)); | 332 %!assert (ischar (""), true) |
332 %!assert(ischar ("test"), logical (1)); | 333 %!assert (ischar ("test"), true) |
333 %!assert(ischar (["test"; "ing"]), logical (1)); | 334 %!assert (ischar (["test"; "ing"]), true) |
334 %!assert(ischar (struct ("foo", "bar")), logical (0)); | 335 %!assert (ischar (struct ("foo", "bar")), false) |
335 %!error <Invalid call to ischar> ischar (); | 336 |
336 %!error <Invalid call to ischar> ischar ("test", 1); | 337 %!error ischar () |
338 %!error ischar ("test", 1) | |
337 */ | 339 */ |
338 | 340 |
339 static octave_value | 341 static octave_value |
340 do_strcmp_fun (const octave_value& arg0, const octave_value& arg1, | 342 do_strcmp_fun (const octave_value& arg0, const octave_value& arg1, |
341 octave_idx_type n, const char *fcn_name, | 343 octave_idx_type n, const char *fcn_name, |
587 | 589 |
588 return retval; | 590 return retval; |
589 } | 591 } |
590 | 592 |
591 /* | 593 /* |
592 %!error <Invalid call to strcmp> strcmp (); | |
593 %!error <Invalid call to strcmp> strcmp ("foo", "bar", 3); | |
594 %! | |
595 %!shared x | 594 %!shared x |
596 %! x = char (zeros (0, 2)); | 595 %! x = char (zeros (0, 2)); |
597 %!assert (strcmp ('', x) == false); | 596 %!assert (strcmp ("", x), false) |
598 %!assert (strcmp (x, '') == false); | 597 %!assert (strcmp (x, ""), false) |
599 %!assert (strcmp (x, x) == true); | 598 %!assert (strcmp (x, x), true) |
600 ## %!assert (strcmp ({''}, x) == true); | 599 ## %!assert (strcmp ({""}, x), true) |
601 ## %!assert (strcmp ({x}, '') == false); | 600 ## %!assert (strcmp ({x}, ""), false) |
602 ## %!assert (strcmp ({x}, x) == true); | 601 ## %!assert (strcmp ({x}, x), true) |
603 ## %!assert (strcmp ('', {x}) == false); | 602 ## %!assert (strcmp ("", {x}), false) |
604 ## %!assert (strcmp (x, {''}) == false); | 603 ## %!assert (strcmp (x, {""}), false) |
605 ## %!assert (strcmp (x, {x}) == true); | 604 ## %!assert (strcmp (x, {x}), true) |
606 ## %!assert (all (strcmp ({x; x}, '') == [false; false])); | 605 ## %!assert (strcmp ({x; x}, ""), [false; false]) |
607 ## %!assert (all (strcmp ({x; x}, {''}) == [false; false])); | 606 ## %!assert (strcmp ({x; x}, {""}), [false; false]) |
608 ## %!assert (all (strcmp ('', {x; x}) == [false; false])); | 607 ## %!assert (strcmp ("", {x; x}), [false; false]) |
609 ## %!assert (all (strcmp ({''}, {x; x}) == [false; false])); | 608 ## %!assert (strcmp ({""}, {x; x}), [false; false]) |
610 %!assert (strcmp ({'foo'}, x) == false); | 609 %!assert (strcmp ({"foo"}, x), false) |
611 %!assert (strcmp ({'foo'}, 'foo') == true); | 610 %!assert (strcmp ({"foo"}, "foo"), true) |
612 %!assert (strcmp ({'foo'}, x) == false); | 611 %!assert (strcmp ({"foo"}, x), false) |
613 %!assert (strcmp (x, {'foo'}) == false); | 612 %!assert (strcmp (x, {"foo"}), false) |
614 %!assert (strcmp ('foo', {'foo'}) == true); | 613 %!assert (strcmp ("foo", {"foo"}), true) |
615 %!assert (strcmp (x, {'foo'}) == false); | 614 %!assert (strcmp (x, {"foo"}), false) |
616 %!shared y | 615 %!shared y |
617 %! y = char (zeros (2, 0)); | 616 %! y = char (zeros (2, 0)); |
618 %!assert (strcmp ('', y) == false); | 617 %!assert (strcmp ("", y), false) |
619 %!assert (strcmp (y, '') == false); | 618 %!assert (strcmp (y, ""), false) |
620 %!assert (strcmp (y, y) == true); | 619 %!assert (strcmp (y, y), true) |
621 %!assert (all (strcmp ({''}, y) == [true; true])); | 620 %!assert (strcmp ({""}, y), [true; true]) |
622 %!assert (strcmp ({y}, '') == true); | 621 %!assert (strcmp ({y}, ""), true) |
623 %!assert (all (strcmp ({y}, y) == [true; true])); | 622 %!assert (strcmp ({y}, y), [true; true]) |
624 %!assert (all (strcmp ('', {y}) == [true; true])); | 623 %!assert (strcmp ("", {y}), true) |
625 %!assert (all (strcmp (y, {''}) == [true; true])); | 624 %!assert (strcmp (y, {""}), [true; true]) |
626 %!assert (all (strcmp (y, {y}) == [true; true])); | 625 %!assert (strcmp (y, {y}), [true; true]) |
627 %!assert (all (strcmp ({y; y}, '') == [true; true])); | 626 %!assert (strcmp ({y; y}, ""), [true; true]) |
628 %!assert (all (strcmp ({y; y}, {''}) == [true; true])); | 627 %!assert (strcmp ({y; y}, {""}), [true; true]) |
629 %!assert (all (strcmp ('', {y; y}) == [true; true])); | 628 %!assert (strcmp ("", {y; y}), [true; true]) |
630 %!assert (all (strcmp ({''}, {y; y}) == [true; true])); | 629 %!assert (strcmp ({""}, {y; y}), [true; true]) |
631 %!assert (all (strcmp ({'foo'}, y) == [false; false])); | 630 %!assert (strcmp ({"foo"}, y), [false; false]) |
632 %!assert (all (strcmp ({'foo'}, y) == [false; false])); | 631 %!assert (strcmp ({"foo"}, y), [false; false]) |
633 %!assert (all (strcmp (y, {'foo'}) == [false; false])); | 632 %!assert (strcmp (y, {"foo"}), [false; false]) |
634 %!assert (all (strcmp (y, {'foo'}) == [false; false])); | 633 %!assert (strcmp (y, {"foo"}), [false; false]) |
635 %!assert (strcmp ("foobar", "foobar"), true); | 634 %!assert (strcmp ("foobar", "foobar"), true) |
636 %!assert (strcmp ("fooba", "foobar"), false); | 635 %!assert (strcmp ("fooba", "foobar"), false) |
636 | |
637 %!error strcmp () | |
638 %!error strcmp ("foo", "bar", 3) | |
637 */ | 639 */ |
638 | 640 |
639 // Apparently, Matlab ignores the dims with strncmp. It also | 641 // Apparently, Matlab ignores the dims with strncmp. It also |
640 static bool | 642 static bool |
641 strncmp_array_op (const charNDArray& s1, const charNDArray& s2, octave_idx_type n) | 643 strncmp_array_op (const charNDArray& s1, const charNDArray& s2, octave_idx_type n) |
710 | 712 |
711 return retval; | 713 return retval; |
712 } | 714 } |
713 | 715 |
714 /* | 716 /* |
715 %!error <Invalid call to strncmp> strncmp (); | 717 %!assert (strncmp ("abce", "abc", 3), true) |
716 %!error <Invalid call to strncmp> strncmp ("abc", "def"); | 718 %!assert (strncmp (100, 100, 1), false) |
717 %!assert (strncmp ("abce", "abc", 3) == 1) | 719 %!assert (strncmp ("abce", {"abcd", "bca", "abc"}, 3), logical ([1, 0, 1])) |
718 %!assert (strncmp (100, 100, 1) == 0) | 720 %!assert (strncmp ("abc", {"abcd", "bca", "abc"}, 4), logical ([0, 0, 0])) |
719 %!assert (all (strncmp ("abce", {"abcd", "bca", "abc"}, 3) == [1, 0, 1])) | 721 %!assert (strncmp ({"abcd", "bca", "abc"},"abce", 3), logical ([1, 0, 1])) |
720 %!assert (all (strncmp ("abc", {"abcd", "bca", "abc"}, 4) == [0, 0, 0])) | 722 %!assert (strncmp ({"abcd", "bca", "abc"},{"abcd", "bca", "abe"}, 3), logical ([1, 1, 0])) |
721 %!assert (all (strncmp ({"abcd", "bca", "abc"},"abce", 3) == [1, 0, 1])) | 723 %!assert (strncmp ("abc", {"abcd", 10}, 2), logical ([1, 0])) |
722 %!assert (all (strncmp ({"abcd", "bca", "abc"},{"abcd", "bca", "abe"}, 3) == [1, 1, 0])) | 724 |
723 %!assert (all (strncmp("abc", {"abcd", 10}, 2) == [1, 0])) | 725 %!error strncmp () |
726 %!error strncmp ("abc", "def") | |
724 */ | 727 */ |
725 | 728 |
726 // case-insensitive character equality functor | 729 // case-insensitive character equality functor |
727 struct icmp_char_eq : public std::binary_function<char, char, bool> | 730 struct icmp_char_eq : public std::binary_function<char, char, bool> |
728 { | 731 { |
781 | 784 |
782 return retval; | 785 return retval; |
783 } | 786 } |
784 | 787 |
785 /* | 788 /* |
786 %!assert (strcmpi("abc123", "ABC123"), logical(1)); | 789 %!assert (strcmpi ("abc123", "ABC123"), true) |
787 */ | 790 */ |
788 | 791 |
789 // Like strncmp. | 792 // Like strncmp. |
790 static bool | 793 static bool |
791 strncmpi_array_op (const charNDArray& s1, const charNDArray& s2, octave_idx_type n) | 794 strncmpi_array_op (const charNDArray& s1, const charNDArray& s2, octave_idx_type n) |
848 | 851 |
849 return retval; | 852 return retval; |
850 } | 853 } |
851 | 854 |
852 /* | 855 /* |
853 %!assert (strncmpi("abc123", "ABC456", 3), logical(1)); | 856 %!assert (strncmpi ("abc123", "ABC456", 3), true) |
854 */ | 857 */ |
855 | 858 |
856 DEFUN (list_in_columns, args, , | 859 DEFUN (list_in_columns, args, , |
857 "-*- texinfo -*-\n\ | 860 "-*- texinfo -*-\n\ |
858 @deftypefn {Built-in Function} {} list_in_columns (@var{arg}, @var{width})\n\ | 861 @deftypefn {Built-in Function} {} list_in_columns (@var{arg}, @var{width})\n\ |
921 | 924 |
922 return retval; | 925 return retval; |
923 } | 926 } |
924 | 927 |
925 /* | 928 /* |
926 %!error <Invalid call to list_in_columns> list_in_columns (); | |
927 %!error <Invalid call to list_in_columns> list_in_columns (["abc", "def"], 20, 2); | |
928 %!error <invalid conversion from string to real scalar> list_in_columns (["abc", "def"], "a"); | |
929 %!test | 929 %!test |
930 %! input = {"abc", "def", "ghijkl", "mnop", "qrs", "tuv"}; | 930 %! input = {"abc", "def", "ghijkl", "mnop", "qrs", "tuv"}; |
931 %! result = "abc mnop\ndef qrs\nghijkl tuv\n"; | 931 %! result = "abc mnop\ndef qrs\nghijkl tuv\n"; |
932 %! assert (list_in_columns (input, 20) == result); | 932 %! assert (list_in_columns (input, 20), result); |
933 %!test | 933 %!test |
934 %! input = ["abc"; "def"; "ghijkl"; "mnop"; "qrs"; "tuv"]; | 934 %! input = ["abc"; "def"; "ghijkl"; "mnop"; "qrs"; "tuv"]; |
935 %! result = "abc mnop \ndef qrs \nghijkl tuv \n"; | 935 %! result = "abc mnop \ndef qrs \nghijkl tuv \n"; |
936 %! assert (list_in_columns (input, 20) == result); | 936 %! assert (list_in_columns (input, 20), result); |
937 | |
938 %!error list_in_columns () | |
939 %!error list_in_columns (["abc", "def"], 20, 2) | |
940 %!error <invalid conversion from string to real scalar> list_in_columns (["abc", "def"], "a") | |
937 */ | 941 */ |