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"}|}; () let () = let open Types.Amount in let v = { sign= Some `Plus ; currency= `Eur ; value= Int64.of_int 25 ; fraction= Int64.of_int 678 } in let s = to_string v in let v' = of_string s |> Result.get_ok in assert (v = v'); ()