diff options
| author | ยท๐๐ด๐๐๐ฉ๐ค | 2025-12-10 19:13:33 +0000 |
|---|---|---|
| committer | ยท๐๐ด๐๐๐ฉ๐ค | 2025-12-10 19:13:33 +0000 |
| commit | dac55b99fb5aa7008e2f7f1c981096912b0441aa (patch) | |
| tree | 0b1895980f71d8cfd351660e22ef25d106a98057 /lib/name.ml | |
| parent | aad71a2f2d3fd12e2388bed64ba5284147202f73 (diff) | |
| download | nixtaml-dac55b99fb5aa7008e2f7f1c981096912b0441aa.tar nixtaml-dac55b99fb5aa7008e2f7f1c981096912b0441aa.tar.gz nixtaml-dac55b99fb5aa7008e2f7f1c981096912b0441aa.tar.bz2 nixtaml-dac55b99fb5aa7008e2f7f1c981096912b0441aa.tar.lz nixtaml-dac55b99fb5aa7008e2f7f1c981096912b0441aa.tar.xz nixtaml-dac55b99fb5aa7008e2f7f1c981096912b0441aa.tar.zst nixtaml-dac55b99fb5aa7008e2f7f1c981096912b0441aa.zip | |
set up QCheck
Diffstat (limited to 'lib/name.ml')
| -rw-r--r-- | lib/name.ml | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/name.ml b/lib/name.ml index 4abebfe..dfc338c 100644 --- a/lib/name.ml +++ b/lib/name.ml @@ -6,7 +6,7 @@ module Name = struct type t = Name of string [@@unboxed] - [@@deriving eq] + [@@deriving eq, qcheck] let [@inline]make n = Name n let [@inline]take (Name n) = n @@ -36,8 +36,18 @@ module NameHashtbl : sig end = Hashtbl.Make(struct type t = Name.t + let equal = Name.equal + let hash n = Hashtbl.hash (Name.take n) + + let gen gen_val = + let open QCheck.Gen in + let* n = int_bound 32 in + let* vals = list_size (return n) (pair Name.gen gen_val) in + let htbl = Hashtbl.create n in + List.iter (fun (k, v) -> Hashtbl.add htbl k v) vals; + return htbl end) module NameMap = struct @@ -57,6 +67,12 @@ module NameMap = struct fmt (bindings map) + let gen gen_val = + let open QCheck.Gen in + let* n = int_bound 32 in + let* vals = list_size (return n) (pair Name.gen gen_val) in + return (List.fold_left (fun m (k, v) -> Impl.add k v m) Impl.empty vals) + let jsont ?kind ?doc (type' : 'a Jsont.t) : 'a t Jsont.t = let name_map = let dec_empty () = empty |
