Possibly of interest since it seems vaguely similar: I wrote my own property-testing framework for TypeScript that allows you to write arbitrary code provided that it's deterministic, so you don't need to mess with combinators as much. (Somewhat inspired by how React does it.)
Example:
const point = arb.from((pick) => {
const x = pick(arb.int(0, 100));
const y = pick(arb.int(0, 100));
return { x, y };
});
It also lets you parse objects instead of generating them if you define a Domain instead of an Arbitrary, which I haven't actually needed much, but seems neat.
It does some shrinking without having to implement anything extra, but I haven't done anything with code coverage-guided generation. I'd like to try that sometime.
alpaylan 22 hours ago [-]
Author here! Let me know if I can contribute to the discussion.
Example:
https://github.com/skybrian/repeat-test/blob/0567a73f07ada6e...It also lets you parse objects instead of generating them if you define a Domain instead of an Arbitrary, which I haven't actually needed much, but seems neat.
It does some shrinking without having to implement anything extra, but I haven't done anything with code coverage-guided generation. I'd like to try that sometime.