UNPKG

fast-check

Version:

Property based testing framework for JavaScript (like QuickCheck)

24 lines (23 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildAlphaNumericPercentArb = exports.buildAlphaNumericArb = exports.buildLowerAlphaNumericArb = exports.buildLowerAlphaArb = void 0; const CharacterArbitrary_1 = require("../CharacterArbitrary"); const FrequencyArbitrary_1 = require("../FrequencyArbitrary"); const MapToConstantArbitrary_1 = require("../MapToConstantArbitrary"); const lowerCaseMapper = { num: 26, build: (v) => String.fromCharCode(v + 0x61) }; const upperCaseMapper = { num: 26, build: (v) => String.fromCharCode(v + 0x41) }; const numericMapper = { num: 10, build: (v) => String.fromCharCode(v + 0x30) }; const percentCharArb = CharacterArbitrary_1.fullUnicode().map((c) => { const encoded = encodeURIComponent(c); return c !== encoded ? encoded : `%${c.charCodeAt(0).toString(16)}`; }); exports.buildLowerAlphaArb = (others) => MapToConstantArbitrary_1.mapToConstant(lowerCaseMapper, { num: others.length, build: (v) => others[v] }); exports.buildLowerAlphaNumericArb = (others) => MapToConstantArbitrary_1.mapToConstant(lowerCaseMapper, numericMapper, { num: others.length, build: (v) => others[v] }); exports.buildAlphaNumericArb = (others) => MapToConstantArbitrary_1.mapToConstant(lowerCaseMapper, upperCaseMapper, numericMapper, { num: others.length, build: (v) => others[v] }); exports.buildAlphaNumericPercentArb = (others) => FrequencyArbitrary_1.frequency({ weight: 10, arbitrary: exports.buildAlphaNumericArb(others), }, { weight: 1, arbitrary: percentCharArb, });