Initial commit
This commit is contained in:
commit
b3a51a4115
10336 changed files with 2381973 additions and 0 deletions
39
node_modules/fast-check/lib/esm/arbitrary/_internals/WithShrinkFromOtherArbitrary.js
generated
vendored
Normal file
39
node_modules/fast-check/lib/esm/arbitrary/_internals/WithShrinkFromOtherArbitrary.js
generated
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import { Arbitrary } from '../../check/arbitrary/definition/Arbitrary.js';
|
||||
import { Value } from '../../check/arbitrary/definition/Value.js';
|
||||
function isSafeContext(context) {
|
||||
return context !== undefined;
|
||||
}
|
||||
function toGeneratorValue(value) {
|
||||
if (value.hasToBeCloned) {
|
||||
return new Value(value.value_, { generatorContext: value.context }, () => value.value);
|
||||
}
|
||||
return new Value(value.value_, { generatorContext: value.context });
|
||||
}
|
||||
function toShrinkerValue(value) {
|
||||
if (value.hasToBeCloned) {
|
||||
return new Value(value.value_, { shrinkerContext: value.context }, () => value.value);
|
||||
}
|
||||
return new Value(value.value_, { shrinkerContext: value.context });
|
||||
}
|
||||
export class WithShrinkFromOtherArbitrary extends Arbitrary {
|
||||
constructor(generatorArbitrary, shrinkerArbitrary) {
|
||||
super();
|
||||
this.generatorArbitrary = generatorArbitrary;
|
||||
this.shrinkerArbitrary = shrinkerArbitrary;
|
||||
}
|
||||
generate(mrng, biasFactor) {
|
||||
return toGeneratorValue(this.generatorArbitrary.generate(mrng, biasFactor));
|
||||
}
|
||||
canShrinkWithoutContext(value) {
|
||||
return this.shrinkerArbitrary.canShrinkWithoutContext(value);
|
||||
}
|
||||
shrink(value, context) {
|
||||
if (!isSafeContext(context)) {
|
||||
return this.shrinkerArbitrary.shrink(value, undefined).map(toShrinkerValue);
|
||||
}
|
||||
if ('generatorContext' in context) {
|
||||
return this.generatorArbitrary.shrink(value, context.generatorContext).map(toGeneratorValue);
|
||||
}
|
||||
return this.shrinkerArbitrary.shrink(value, context.shrinkerContext).map(toShrinkerValue);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue