Files
mercury/tests/general/string_test.m
Fergus Henderson 8f8b0a3e69 Add test of string__to_int (0.4 had a bug in string__to_int).
tests/general/string_test.m:
	Add test of string__to_int (0.4 had a bug in string__to_int).
1995-09-19 13:20:23 +00:00

61 lines
1.7 KiB
Mathematica

:- module string_test.
:- import_module io.
:- interface.
:- pred main(io__state, io__state).
:- mode main(di, uo) is det.
:- implementation.
:- import_module string, list, require.
main -->
test("foo", "bar").
:- pred test(string, string, io__state, io__state).
:- mode test(in, in, di, uo) is det.
test(X, Y) -->
write_message("X: ", X),
write_message("Y: ", Y),
{ string__append(X, Y, Z) },
write_message("X append Y: ", Z),
{ string__capitalize_first(X, CapX) },
write_message("capitalize_first X: ", CapX),
{ string__uncapitalize_first(CapX, UnCapX) },
write_message("uncapitalize_first CapX: ", UnCapX),
{ string__int_to_string(1234, Num) },
write_message("int_to_string 1234: ", Num),
{ string__int_to_base_string(1234, 8, Num8) },
write_message("octal 1234: ", Num8),
{ string__int_to_base_string(1234, 16, Num16) },
write_message("hexadecimal 1234: ", Num16),
{ string__duplicate_char('f', 5, FiveFs) },
( { string__to_int("5678", Num5678) } ->
io__write_string("string_to_int 5678: "),
io__write_int(Num5678),
io__write_string("\n")
;
{ error("string__to_int(""5678"", _) failed") }
),
{ string__to_int("asdf", _) ->
error("string__to_int(""asdf"", _) succeeded")
;
true
},
write_message("Five f's: ", FiveFs),
{ string__pad_right(FiveFs, '.', 10, FsAndDots) },
write_message("Five f's and five dots: ", FsAndDots),
{ string__pad_left(FsAndDots, '-', 15, DashesFsAndDots) },
write_message("Five dashes, five f's and five dots: ", DashesFsAndDots),
[].
:- pred write_message(string, string, io__state, io__state).
:- mode write_message(in, in, di, uo) is det.
write_message(Message, String) -->
io__write_string(Message),
io__write_string(String),
io__write_string("\n").