generator: function() { switch (jsv.random(0, 2)) { case 0: return 'foo'; case 1: return 'bar'; case 2: return 'quux'; } },
const generator = jsc.generator.bless(size => { const n = jsc.random(1, Math.max(1, size)); const v = new Array(n); for (let i = 0; i < n; ++i) v[i] = digits.generator(); return v.join(''); });
function makeSkipListOps(size) { const numOps = jsc.random(0, Math.round(Math.log(size + 1) / Math.log(2))) const ops = new Array(numOps), ids = [] for (let i = 0; i < numOps; i++) { if (ids.length === 0 || jsc.random(0, 1) === 0) { const index = jsc.random(0, ids.length) ops[i] = { id: i.toString(), insertAfter: (index === ids.length) ? null : ids[index], level: jsc.random(1, 7) } ids.push(i.toString()) } else { const index = jsc.random(0, ids.length - 1) ops[i] = {remove: ids[index]} ids.splice(index, 1) } } return ops }
const generator = jsc.generator.bless(size => { const n = jsc.random(1, Math.max(1, Math.floor(Math.sqrt(size)))); const A = new Array(n + 1); for (let i = 0; i < n + 1; ++i) { const row = A[i] = new Array(n); for (let j = 0; j < n; ++j) { row[j] = arb.generator(size); } } return [A.slice(0, n), A[n].map(x => [x])]; });