Compare commits

..

No commits in common. "3b49ad2a4e8cfe366d0588e1940d626f0e1b8a2d" and "99dba20fa6ba0f2db4b9b9ae2acbf4185fa502f4" have entirely different histories.

View file

@ -99,28 +99,12 @@ let rec shrink (c : Cbor.t) : Cbor.t Q.Iter.t =
let+ s = Q.Shrink.string s in let+ s = Q.Shrink.string s in
`Bytes s `Bytes s
let arb = Q.make ~shrink ~print:Cbor.to_string_diagnostic gen_c let arb = Q.make ~shrink ~print:Cbor.to_string_diagnostic gen_c;;
let rec eq_c c c' =
match c, c' with
| `Null, `Null | `Undefined, `Undefined -> true
| `Simple i, `Simple i' -> Int.equal i i'
| `Bool b, `Bool b' -> Bool.equal b b'
| `Int i, `Int i' -> Int64.equal i i'
| `Float f, `Float f' -> Float.equal f f'
| `Bytes s, `Bytes s' -> String.equal s s'
| `Text t, `Text t' -> String.equal t t'
| `Array a, `Array a' -> CCList.equal eq_c a a'
| `Map m, `Map m' ->
CCList.equal (fun (t0, t1) (t0', t1') -> eq_c t0 t0' && eq_c t1 t1') m m'
| `Tag (i, t), `Tag (i', t') -> Int.equal i i' && eq_c t t'
| _ -> false
;;
q ~count:1_000 ~long_factor:10 arb @@ fun c -> q ~count:1_000 ~long_factor:10 arb @@ fun c ->
let s = Cbor.encode c in let s = Cbor.encode c in
let c' = Cbor.decode_exn s in let c' = Cbor.decode_exn s in
if not (eq_c c c') then if not (c = c') then
Q.Test.fail_reportf "@[<hv2>roundtrip failed:@ from %a@ to %a@]" Q.Test.fail_reportf "@[<hv2>roundtrip failed:@ from %a@ to %a@]"
Cbor.pp_diagnostic c Cbor.pp_diagnostic c'; Cbor.pp_diagnostic c Cbor.pp_diagnostic c';
true true