add json.ml; add test.ml; timestamp jsont

This commit is contained in:
Swrup 2025-10-03 18:14:17 +02:00
parent 04bb29b30c
commit 724a3d2b68
8 changed files with 89 additions and 22 deletions

4
test/dune Normal file
View file

@ -0,0 +1,4 @@
(test
(name test)
(modules test)
(libraries types json))

20
test/test.ml Normal file
View file

@ -0,0 +1,20 @@
let () =
let open Json in
let check jsont s =
let encode v = encode jsont v |> Result.get_ok in
let decode v = decode jsont v |> Result.get_ok in
let ts = decode s in
let s' = encode ts in
let ts' = decode s' in
let s'' = encode ts' in
assert (String.equal s' s'')
in
let check_bad jsont s =
let decode = decode jsont in
assert (Result.is_error (decode s))
in
check Timestamp.jsont {|{"t_s": 123456780}|};
check Timestamp.jsont {|{"t_s": "never"}|};
check_bad Timestamp.jsont {|{"t_s": "123456780"}|};
check_bad Timestamp.jsont {|{"t_s": "agagou"}|};
()