Hegel_janeJane Street Core companion library for Hegel (hegel.jane).
It requires the core opam package. Each typed generator draws through the corresponding hegel generator and converts the result.
To use hegel.jane, add hegel.jane and core to your dune libraries:
test
(name my_tests)
(libraries hegel hegel.jane core alcotest)
(preprocess (pps ppx_hegel_test))Then draw Core values directly:
open Hegel
let%hegel_test dates_are_in_range tc =
let d = draw tc (Hegel_jane.dates ()) in
assert (Core.Date.year d >= 1 && Core.Date.year d <= 9999)
;;val dates :
?min_date:Core.Date.t ->
?max_date:Core.Date.t ->
unit ->
(Core.Date.t, Hegel.printable) Hegel.generatordates ?min_date ?max_date () creates a generator for Core.Date.t values in [min_date, max_date]. The default range is [0001-01-01, 9999-12-31].
val ofdays :
?min_ofday:Core.Time_ns.Ofday.t ->
?max_ofday:Core.Time_ns.Ofday.t ->
unit ->
(Core.Time_ns.Ofday.t, Hegel.printable) Hegel.generatorofdays ?min_ofday ?max_ofday () creates a generator for Core.Time_ns.Ofday.t values in [min_ofday, max_ofday]. The default range is [00:00:00.000000000, 24:00:00.000000000].
chars () creates a generator for single characters (codepoints 0-255, i.e. Latin-1) as Core.Char.t values.
val times :
?min_time:Core.Time_ns.t ->
?max_time:Core.Time_ns.t ->
unit ->
(Core.Time_ns.t, Hegel.printable) Hegel.generatortimes ?min_time ?max_time () creates a generator for Core.Time_ns.t values in [min_time, max_time]. The default range is the full representable range: [1823-11-12T00:06:21.572612096Z, 2116-02-20T23:53:38.427387903Z].
val time_spans :
?min_span:Core.Time_ns.Span.t ->
?max_span:Core.Time_ns.Span.t ->
unit ->
(Core.Time_ns.Span.t, Hegel.printable) Hegel.generatortime_spans ?min_span ?max_span () creates a generator for Core.Time_ns.Span.t values in [min_span, max_span]. The default range is the full representable range: [-53375d23h53m38.427387904s, 53375d23h53m38.427387903s].
val hash_tables :
('a, Hegel.printable) Hegel.generator ->
('b, Hegel.printable) Hegel.generator ->
?min_size:int ->
?max_size:int ->
unit ->
(('a, 'b) Core.Hashtbl.Poly.t, Hegel.printable) Hegel.generatorhash_tables keys values ?min_size ?max_size () creates a generator for polymorphic Core.Hashtbl.t tables over printable keys and values. Hegel.make_hash_tables closed over Core.Hashtbl.
module Derive : sig ... endAuxiliary submodule for @@deriving hegel_generator for Core generators.