File size: 1,135 Bytes
96af7c9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AlwaysShrinkableArbitrary = void 0;
const Arbitrary_1 = require("../../check/arbitrary/definition/Arbitrary");
const Stream_1 = require("../../stream/Stream");
const NoUndefinedAsContext_1 = require("./helpers/NoUndefinedAsContext");
class AlwaysShrinkableArbitrary extends Arbitrary_1.Arbitrary {
constructor(arb) {
super();
this.arb = arb;
}
generate(mrng, biasFactor) {
const value = this.arb.generate(mrng, biasFactor);
return (0, NoUndefinedAsContext_1.noUndefinedAsContext)(value);
}
canShrinkWithoutContext(value) {
return true;
}
shrink(value, context) {
if (context === undefined && !this.arb.canShrinkWithoutContext(value)) {
return Stream_1.Stream.nil();
}
const safeContext = context !== NoUndefinedAsContext_1.UndefinedContextPlaceholder ? context : undefined;
return this.arb.shrink(value, safeContext).map(NoUndefinedAsContext_1.noUndefinedAsContext);
}
}
exports.AlwaysShrinkableArbitrary = AlwaysShrinkableArbitrary;
|