mllib: Add Common_utils.string_suffix function and extend test coverage.

This commit is contained in:
Richard W.M. Jones
2014-12-04 22:00:35 +00:00
parent 39d64121ec
commit c712f880db
3 changed files with 27 additions and 0 deletions

View File

@@ -98,6 +98,11 @@ let string_prefix str prefix =
let n = String.length prefix in
String.length str >= n && String.sub str 0 n = prefix
let string_suffix str suffix =
let sufflen = String.length suffix
and len = String.length str in
len >= sufflen && String.sub str (len - sufflen) sufflen = suffix
let rec string_find s sub =
let len = String.length s in
let sublen = String.length sub in

View File

@@ -39,6 +39,7 @@ val output_spaces : out_channel -> int -> unit
(** Write [n] spaces to [out_channel]. *)
val string_prefix : string -> string -> bool
val string_suffix : string -> string -> bool
val string_find : string -> string -> int
val replace_str : string -> string -> string -> string
val string_nsplit : string -> string -> string list

View File

@@ -78,3 +78,24 @@ let () =
assert (human_size (-1363149_L) = "-1.3M");
assert (human_size 3650722201_L = "3.4G");
assert (human_size (-3650722201_L) = "-3.4G")
(* Test Common_utils.string_prefix, string_suffix, string_find. *)
let () =
assert (string_prefix "" "");
assert (string_prefix "foo" "");
assert (string_prefix "foo" "foo");
assert (string_prefix "foo123" "foo");
assert (not (string_prefix "" "foo"));
assert (string_suffix "" "");
assert (string_suffix "foo" "");
assert (string_suffix "foo" "foo");
assert (string_suffix "123foo" "foo");
assert (not (string_suffix "" "foo"));
assert (string_find "" "" = 0);
assert (string_find "foo" "" = 0);
assert (string_find "foo" "o" = 1);
assert (string_find "foobar" "bar" = 3);
assert (string_find "" "baz" = -1);
assert (string_find "foobar" "baz" = -1)