fast-check
Version:
Property based testing framework for JavaScript (like QuickCheck)
22 lines (21 loc) • 594 B
JavaScript
import { Arbitrary } from './definition/Arbitrary.js';
class OneOfArbitrary extends Arbitrary {
constructor(arbs) {
super();
this.arbs = arbs;
}
generate(mrng) {
const id = mrng.nextInt(0, this.arbs.length - 1);
return this.arbs[id].generate(mrng);
}
withBias(freq) {
return new OneOfArbitrary(this.arbs.map((a) => a.withBias(freq)));
}
}
function oneof(...arbs) {
if (arbs.length === 0) {
throw new Error('fc.oneof expects at least one parameter');
}
return new OneOfArbitrary([...arbs]);
}
export { oneof };