diff --git a/src/data/CCTrie.ml b/src/data/CCTrie.ml index 422e7352..7527083b 100644 --- a/src/data/CCTrie.ml +++ b/src/data/CCTrie.ml @@ -559,6 +559,19 @@ module Make(W : WORD) = struct let t = S.of_list l in \ S.check_invariants t) *) + + (*$Q & ~small:List.length ~count:30 + Q.(list_of_size Gen.(1 -- 20) (pair printable_string small_int)) \ + (fun l -> let t = String.of_list l in \ + List.for_all (fun (k,_) -> \ + String.above k t |> Sequence.for_all (fun (k',v) -> k' >= k)) \ + l) + Q.(list_of_size Gen.(1 -- 20) (pair printable_string small_int)) \ + (fun l -> let t = String.of_list l in \ + List.for_all (fun (k,_) -> \ + String.below k t |> Sequence.for_all (fun (k',v) -> k' <= k)) \ + l) + *) end module type ORDERED = sig diff --git a/src/sexp/CCSexpM.ml b/src/sexp/CCSexpM.ml index 52d0eb40..2dd9e49c 100644 --- a/src/sexp/CCSexpM.ml +++ b/src/sexp/CCSexpM.ml @@ -335,7 +335,7 @@ let parse_string s : t or_error = (*$inject let sexp_gen = let mkatom a = `Atom a and mklist l = `List l in - let atom = Q.Gen.(map mkatom (string_size (int_range 1 30))) in + let atom = Q.Gen.(map mkatom (string_size ~gen:printable (1 -- 30))) in let gen = Q.Gen.( sized (fix (fun self n st -> match n with @@ -343,7 +343,7 @@ let parse_string s : t or_error = | _ -> frequency [ 1, atom - ; 2, map mklist (list_size (int_bound 10) (self (n/10))) + ; 2, map mklist (list_size (0 -- 10) (self (n/10))) ] st ) )) in @@ -365,7 +365,7 @@ let parse_string s : t or_error = | `List l -> List.for_all sexp_valid l *) -(*$Q & ~count:30 +(*$Q & ~count:100 sexp_gen (fun s -> sexp_valid s ==> (to_string s |> parse_string = `Ok s)) *)