mte/test/test.ml

40 lines
1 KiB
OCaml
Raw Normal View History

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
()