UNPKG

fast-check

Version:

Property based testing framework for JavaScript (like QuickCheck)

56 lines (55 loc) 1.12 kB
class Nil { [Symbol.iterator]() { return this; } next(value) { return { value, done: true }; } } Nil.nil = new Nil(); export function nilHelper() { return Nil.nil; } export function* mapHelper(g, f) { for (const v of g) { yield f(v); } } export function* flatMapHelper(g, f) { for (const v of g) { yield* f(v); } } export function* filterHelper(g, f) { for (const v of g) { if (f(v)) { yield v; } } } export function* takeNHelper(g, n) { for (let i = 0; i < n; ++i) { const cur = g.next(); if (cur.done) { break; } yield cur.value; } } export function* takeWhileHelper(g, f) { let cur = g.next(); while (!cur.done && f(cur.value)) { yield cur.value; cur = g.next(); } } export function* joinHelper(g, others) { for (let cur = g.next(); !cur.done; cur = g.next()) { yield cur.value; } for (const s of others) { for (let cur = s.next(); !cur.done; cur = s.next()) { yield cur.value; } } }