| 1 | import * as Arbitrary from "effect/Arbitrary" |
| 2 | import * as Result from "effect/Result" |
| 3 | import * as Schema from "effect/Schema" |
| 4 | |
| 5 | const integers = Arbitrary.schema(Schema.Int) |
| 6 | |
| 7 | export const arbitrary = Arbitrary.all([ |
| 8 | integers.pipe(Arbitrary.map((value) => value + 1)), |
| 9 | integers.pipe(Arbitrary.flatMap((left) => integers.pipe(Arbitrary.map((right) => [left, right] as const)))), |
| 10 | integers.pipe(Arbitrary.filter((value) => value >= 0)), |
| 11 | integers.pipe(Arbitrary.filterMap((value) => value === 0 ? Result.fail(value) : Result.succeed(value))) |
| 12 | ]) |