(
bools: Chunk.Chunk<boolean>,
numbers1: Chunk.Chunk<number>,
numbers2: Chunk.Chunk<number>
)
| 22 | it.effect("interleaveWith", () => |
| 23 | Effect.gen(function*() { |
| 24 | const interleave = ( |
| 25 | bools: Chunk.Chunk<boolean>, |
| 26 | numbers1: Chunk.Chunk<number>, |
| 27 | numbers2: Chunk.Chunk<number> |
| 28 | ): Chunk.Chunk<number> => |
| 29 | pipe( |
| 30 | Chunk.head(bools), |
| 31 | Option.map((head) => { |
| 32 | if (head) { |
| 33 | if (Chunk.isNonEmpty(numbers1)) { |
| 34 | const head = pipe(numbers1, Chunk.unsafeGet(0)) |
| 35 | const tail = pipe(numbers1, Chunk.drop(1)) |
| 36 | return pipe( |
| 37 | interleave(pipe(bools, Chunk.drop(1)), tail, numbers2), |
| 38 | Chunk.prepend(head) |
| 39 | ) |
| 40 | } |
| 41 | if (Chunk.isNonEmpty(numbers2)) { |
| 42 | return interleave(pipe(bools, Chunk.drop(1)), Chunk.empty<number>(), numbers2) |
| 43 | } |
| 44 | return Chunk.empty<number>() |
| 45 | } |
| 46 | if (Chunk.isNonEmpty(numbers2)) { |
| 47 | const head = pipe(numbers2, Chunk.unsafeGet(0)) |
| 48 | const tail = pipe(numbers2, Chunk.drop(1)) |
| 49 | return pipe( |
| 50 | interleave(pipe(bools, Chunk.drop(1)), numbers1, tail), |
| 51 | Chunk.prepend(head) |
| 52 | ) |
| 53 | } |
| 54 | if (Chunk.isNonEmpty(numbers1)) { |
| 55 | return interleave(pipe(bools, Chunk.drop(1)), numbers1, Chunk.empty<number>()) |
| 56 | } |
| 57 | return Chunk.empty<number>() |
| 58 | }), |
| 59 | Option.getOrElse(() => Chunk.empty<number>()) |
| 60 | ) |
| 61 | const boolStream = Stream.make(true, true, false, true, false) |
| 62 | const stream1 = Stream.make(1, 2, 3, 4, 5) |
| 63 | const stream2 = Stream.make(4, 5, 6, 7, 8) |
no test coverage detected