Aktueller Stand
This commit is contained in:
41
backend/node_modules/fast-check/lib/arbitrary/_internals/AdapterArbitrary.js
generated
vendored
Normal file
41
backend/node_modules/fast-check/lib/arbitrary/_internals/AdapterArbitrary.js
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.adapter = adapter;
|
||||
const Arbitrary_1 = require("../../check/arbitrary/definition/Arbitrary");
|
||||
const Value_1 = require("../../check/arbitrary/definition/Value");
|
||||
const Stream_1 = require("../../stream/Stream");
|
||||
const AdaptedValue = Symbol('adapted-value');
|
||||
function toAdapterValue(rawValue, adapter) {
|
||||
const adapted = adapter(rawValue.value_);
|
||||
if (!adapted.adapted) {
|
||||
return rawValue;
|
||||
}
|
||||
return new Value_1.Value(adapted.value, AdaptedValue);
|
||||
}
|
||||
class AdapterArbitrary extends Arbitrary_1.Arbitrary {
|
||||
constructor(sourceArb, adapter) {
|
||||
super();
|
||||
this.sourceArb = sourceArb;
|
||||
this.adapter = adapter;
|
||||
this.adaptValue = (rawValue) => toAdapterValue(rawValue, adapter);
|
||||
}
|
||||
generate(mrng, biasFactor) {
|
||||
const rawValue = this.sourceArb.generate(mrng, biasFactor);
|
||||
return this.adaptValue(rawValue);
|
||||
}
|
||||
canShrinkWithoutContext(value) {
|
||||
return this.sourceArb.canShrinkWithoutContext(value) && !this.adapter(value).adapted;
|
||||
}
|
||||
shrink(value, context) {
|
||||
if (context === AdaptedValue) {
|
||||
if (!this.sourceArb.canShrinkWithoutContext(value)) {
|
||||
return Stream_1.Stream.nil();
|
||||
}
|
||||
return this.sourceArb.shrink(value, undefined).map(this.adaptValue);
|
||||
}
|
||||
return this.sourceArb.shrink(value, context).map(this.adaptValue);
|
||||
}
|
||||
}
|
||||
function adapter(sourceArb, adapter) {
|
||||
return new AdapterArbitrary(sourceArb, adapter);
|
||||
}
|
||||
Reference in New Issue
Block a user