From 56bc62c333138094e94f582b863b0a203e25196c Mon Sep 17 00:00:00 2001 From: Pat Garrity Date: Sat, 13 Sep 2025 02:21:11 +0000 Subject: [PATCH] (patch) Add the satisfy function. (#9) Reviewed-on: https://git.garrity.co/garrity-software/gs-datagen/pulls/9 --- .../core/src/main/scala/gs/datagen/v0/Datagen.scala | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/core/src/main/scala/gs/datagen/v0/Datagen.scala b/modules/core/src/main/scala/gs/datagen/v0/Datagen.scala index ac38ac7..ea3254b 100644 --- a/modules/core/src/main/scala/gs/datagen/v0/Datagen.scala +++ b/modules/core/src/main/scala/gs/datagen/v0/Datagen.scala @@ -52,6 +52,16 @@ object Datagen: */ def gen(): A = generate(()) + /** Satisfy the target generator (that requires input) using this generator + * to provide that input. + * + * @param target + * The target generator. + * @return + * The new input-satisfied generator. + */ + def satisfy[B](target: Datagen[B, A]): Gen[B] = target.toGen(gen()) + def flatMap[B](f: A => NoInput[B]): NoInput[B] = new NoInput.Defer[B](() => f(generate(())).generate(()))