2025-10-03 18:14:17 +02:00
|
|
|
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"}|};
|
|
|
|
|
()
|
2025-10-03 19:54:18 +02:00
|
|
|
|
|
|
|
|
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');
|
2025-10-03 22:42:16 +02:00
|
|
|
let r = of_string {|~EUR:4.9|} in
|
|
|
|
|
assert (Result.is_error r);
|
|
|
|
|
let r = of_string {|+EUR:4.99999999999999999999999|} in
|
|
|
|
|
assert (Result.is_error r);
|
2025-10-03 19:54:18 +02:00
|
|
|
()
|