21 lines
610 B
OCaml
21 lines
610 B
OCaml
|
|
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"}|};
|
||
|
|
()
|