Module Hegel_jane

Jane 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.generator

dates ?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.generator

ofdays ?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].

val chars : unit -> (Core.Char.t, Hegel.printable) Hegel.generator

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.generator

times ?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.generator

time_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.generator

hash_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 ... end

Auxiliary submodule for @@deriving hegel_generator for Core generators.