%---------------------------------------------------------------------------% % vim: ft=mercury ts=4 sw=4 et wm=0 tw=0 %---------------------------------------------------------------------------% % Test conversion of ints to signed 64-bit integers. % The .exp file is for systems where int is 64-bit. % The .exp2 file is for systems where int is 32-bit. :- module from_int_int64. :- interface. :- import_module io. :- pred main(io::di, io::uo) is det. %---------------------------------------------------------------------------% %---------------------------------------------------------------------------% :- implementation. :- import_module int64. :- import_module list. :- import_module string. %---------------------------------------------------------------------------% main(!IO) :- list.foldl(do_test, numbers, !IO). :- pred do_test(string::in, io::di, io::uo) is det. do_test(IntStr, !IO) :- io.format("from_int(%s) = ", [s(IntStr)], !IO), ( if string.to_int(IntStr, Int) then Int64 = int64.from_int(Int), io.format("%d\n", [i64(Int64)], !IO) else io.write_string("<>\n", !IO) ). :- func numbers = list(string). numbers = [ "-9223372036854775808", "-2147483648", "-32768", "-128", "0", "1", "2", "8", "10", "16", "127", "32767", "2147483647", "9223372036854775807" ]. %---------------------------------------------------------------------------% :- end_module from_int_int64. %---------------------------------------------------------------------------%