mte/unikernel/duniverse/base/test/test_pp.ml
2025-11-11 02:07:51 +01:00

52 lines
968 B
OCaml

open! Import
let to_string pp v =
pp Stdlib.Format.str_formatter v;
Stdlib.Format.flush_str_formatter ()
;;
let print pp v = Stdlib.Printf.printf "%s\n" (to_string pp v)
let print_all pp vs = List.iter ~f:(print pp) vs
let%expect_test "pretty-printers" =
print_all Char.pp [ '\000'; '\r'; 'a' ];
[%expect {|
'\000'
'\r'
'a'
|}];
print_all String.pp [ ""; "foo"; "abc\tdef" ];
[%expect {|
""
"foo"
"abc\tdef"
|}];
print_all Sign.pp Sign.all;
[%expect {|
Neg
Zero
Pos
|}];
print_all Bool.pp Bool.all;
[%expect {|
false
true
|}];
print_all Unit.pp Unit.all;
[%expect {| () |}];
print_all Nothing.pp Nothing.all;
[%expect {| |}];
print_all Float.pp [ 0.; 3.14; 1.0 /. 0.0 ];
[%expect {|
0.
3.14
inf
|}];
print_all Int.pp [ 0; 1 ];
[%expect {|
0
1
|}];
print Info.pp (Info.create_s [%sexp "hello", "world"]);
[%expect {| (hello world) |}]
;;