aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorST-DDT <[email protected]>2022-11-21 17:55:32 +0100
committerGitHub <[email protected]>2022-11-21 17:55:32 +0100
commit9cd716e891d3bb8d9a8f9d43899d0dcd161e1832 (patch)
treeb8e24d4d9d9c6372e3b687e64600de0f825a33bc
parent7cbeda6eeab94eef6e8f56f9e31cc57c4072f3b2 (diff)
downloadfaker-9cd716e891d3bb8d9a8f9d43899d0dcd161e1832.tar.xz
faker-9cd716e891d3bb8d9a8f9d43899d0dcd161e1832.zip
feat(helpers): add rangeToNumber method and add range parameters (#1486)
-rw-r--r--src/modules/helpers/index.ts20
-rw-r--r--src/modules/lorem/index.ts117
-rw-r--r--src/modules/string/index.ts56
-rw-r--r--src/modules/system/index.ts11
-rw-r--r--src/modules/word/index.ts16
-rw-r--r--test/__snapshots__/helpers.spec.ts.snap12
-rw-r--r--test/__snapshots__/lorem.spec.ts.snap248
-rw-r--r--test/__snapshots__/string.spec.ts.snap30
-rw-r--r--test/__snapshots__/system.spec.ts.snap6
-rw-r--r--test/__snapshots__/word.spec.ts.snap18
-rw-r--r--test/helpers.spec.ts16
-rw-r--r--test/lorem.spec.ts80
-rw-r--r--test/string.spec.ts78
-rw-r--r--test/system.spec.ts22
-rw-r--r--test/word.spec.ts7
15 files changed, 609 insertions, 128 deletions
diff --git a/src/modules/helpers/index.ts b/src/modules/helpers/index.ts
index 7da4fbc8..406f7f19 100644
--- a/src/modules/helpers/index.ts
+++ b/src/modules/helpers/index.ts
@@ -628,6 +628,26 @@ export class HelpersModule {
}
/**
+ * Helper method that converts the given number or range to a number.
+ *
+ * @param numberOrRange The number or range to convert.
+ * @param numberOrRange.min The minimum value for the range.
+ * @param numberOrRange.max The maximum value for the range.
+ *
+ * @example
+ * faker.helpers.rangeToNumber(1) // 1
+ * faker.helpers.rangeToNumber({ min: 1, max: 10 }) // 5
+ *
+ * @since 8.0.0
+ */
+ rangeToNumber(numberOrRange: number | { min: number; max: number }): number {
+ if (typeof numberOrRange === 'number') {
+ return numberOrRange;
+ }
+ return this.faker.datatype.number(numberOrRange);
+ }
+
+ /**
* Generates a unique result using the results of the given method.
* Used unique entries will be stored internally and filtered from subsequent calls.
*
diff --git a/src/modules/lorem/index.ts b/src/modules/lorem/index.ts
index ac1ba756..c73a92c8 100644
--- a/src/modules/lorem/index.ts
+++ b/src/modules/lorem/index.ts
@@ -36,7 +36,7 @@ export class LoremModule {
* faker.lorem.word() // 'temporibus'
* faker.lorem.word(5) // 'velit'
* faker.lorem.word({ strategy: 'shortest' }) // 'a'
- * faker.lorem.word({ length: { min: 5, max: 7 }, strategy: "fail" }) // 'quaerat'
+ * faker.lorem.word({ length: { min: 5, max: 7 }, strategy: 'fail' }) // 'quaerat'
*
* @since 3.1.0
*/
@@ -60,55 +60,62 @@ export class LoremModule {
/**
* Generates a space separated list of words.
*
- * @param num The number of words to generate. Defaults to `3`.
+ * @param wordCount The number of words to generate. Defaults to `3`.
+ * @param wordCount.min The minimum number of words to generate.
+ * @param wordCount.max The maximum number of words to generate.
*
* @example
* faker.lorem.words() // 'qui praesentium pariatur'
* faker.lorem.words(10) // 'debitis consectetur voluptatem non doloremque ipsum autem totam eum ratione'
+ * faker.lorem.words({ min: 1, max: 3 }) // 'tenetur error cum'
*
* @since 2.0.1
*/
- words(num: number = 3): string {
- const words: string[] = [];
- for (let i = 0; i < num; i++) {
- words.push(this.word());
- }
- return words.join(' ');
+ words(wordCount: number | { min: number; max: number } = 3): string {
+ wordCount = this.faker.helpers.rangeToNumber(wordCount);
+
+ return Array.from({ length: wordCount })
+ .map(() => this.word())
+ .join(' ');
}
/**
- * Generates a space separated list of words beginning a capital letter and ending with a dot.
+ * Generates a space separated list of words beginning with a capital letter and ending with a period.
*
* @param wordCount The number of words, that should be in the sentence. Defaults to a random number between `3` and `10`.
+ * @param wordCount.min The minimum number of words to generate. Defaults to `3`.
+ * @param wordCount.max The maximum number of words to generate. Defaults to `10`.
*
* @example
* faker.lorem.sentence() // 'Voluptatum cupiditate suscipit autem eveniet aut dolorem aut officiis distinctio.'
* faker.lorem.sentence(5) // 'Laborum voluptatem officiis est et.'
+ * faker.lorem.sentence({ min: 3, max: 5 }) // 'Fugiat repellendus nisi.'
*
* @since 2.0.1
*/
- sentence(wordCount?: number): string {
- if (wordCount == null) {
- wordCount = this.faker.datatype.number({ min: 3, max: 10 });
- }
-
+ sentence(
+ wordCount: number | { min: number; max: number } = { min: 3, max: 10 }
+ ): string {
const sentence = this.words(wordCount);
- return `${sentence.charAt(0).toUpperCase() + sentence.slice(1)}.`;
+ return `${sentence.charAt(0).toUpperCase() + sentence.substring(1)}.`;
}
/**
* Generates a slugified text consisting of the given number of hyphen separated words.
*
* @param wordCount The number of words to generate. Defaults to `3`.
+ * @param wordCount.min The minimum number of words to generate.
+ * @param wordCount.max The maximum number of words to generate.
*
* @example
* faker.lorem.slug() // 'dolores-illo-est'
+ * faker.lorem.slug(5) // 'delectus-totam-iusto-itaque-placeat'
+ * faker.lorem.slug({ min: 1, max: 3 }) // 'illo-ratione'
*
* @since 4.0.0
*/
- slug(wordCount?: number): string {
+ slug(wordCount: number | { min: number; max: number } = 3): string {
const words = this.words(wordCount);
-
return this.faker.helpers.slugify(words);
}
@@ -116,6 +123,8 @@ export class LoremModule {
* Generates the given number of sentences.
*
* @param sentenceCount The number of sentences to generate. Defaults to a random number between `2` and `6`.
+ * @param sentenceCount.min The minimum number of sentences to generate. Defaults to `2`.
+ * @param sentenceCount.max The maximum number of sentences to generate. Defaults to `6`.
* @param separator The separator to add between sentences. Defaults to `' '`.
*
* @example
@@ -124,39 +133,45 @@ export class LoremModule {
* faker.lorem.sentences(2, '\n')
* // 'Et rerum a unde tempora magnam sit nisi.
* // Et perspiciatis ipsam omnis.'
+ * faker.lorem.sentences({ min: 1, max: 3 }) // 'Placeat ex natus tenetur repellendus repellendus iste. Optio nostrum veritatis.'
*
* @since 2.0.1
*/
- sentences(sentenceCount?: number, separator: string = ' '): string {
- if (sentenceCount == null) {
- sentenceCount = this.faker.datatype.number({ min: 2, max: 6 });
- }
- const sentences: string[] = [];
- for (sentenceCount; sentenceCount > 0; sentenceCount--) {
- sentences.push(this.sentence());
- }
- return sentences.join(separator);
+ sentences(
+ sentenceCount: number | { min: number; max: number } = { min: 2, max: 6 },
+ separator: string = ' '
+ ): string {
+ sentenceCount = this.faker.helpers.rangeToNumber(sentenceCount);
+
+ return Array.from({ length: sentenceCount })
+ .map(() => this.sentence())
+ .join(separator);
}
/**
- * Generates a paragraph with at least the given number of sentences.
+ * Generates a paragraph with the given number of sentences.
*
- * @param sentenceCount The minim number of sentences to generate. Defaults to `3`.
+ * @param sentenceCount The number of sentences to generate. Defaults to `3`.
+ * @param sentenceCount.min The minimum number of sentences to generate.
+ * @param sentenceCount.max The maximum number of sentences to generate.
*
* @example
* faker.lorem.paragraph() // 'Non architecto nam unde sint. Ex tenetur dolor facere optio aut consequatur. Ea laudantium reiciendis repellendus.'
- * faker.lorem.paragraph() // 'Animi possimus nemo consequuntur ut ea et tempore unde qui. Quis corporis esse occaecati.'
+ * faker.lorem.paragraph(2) // 'Animi possimus nemo consequuntur ut ea et tempore unde qui. Quis corporis esse occaecati.'
+ * faker.lorem.paragraph({ min: 1, max: 3 }) // 'Quis doloribus necessitatibus sint. Rerum accusamus impedit corporis porro.'
*
* @since 2.0.1
*/
- paragraph(sentenceCount: number = 3): string {
- return this.sentences(sentenceCount + this.faker.datatype.number(3));
+ paragraph(sentenceCount: number | { min: number; max: number } = 3): string {
+ return this.sentences(sentenceCount);
}
/**
* Generates the given number of paragraphs.
*
* @param paragraphCount The number of paragraphs to generate. Defaults to `3`.
+ * @param paragraphCount.min The minimum number of paragraphs to generate.
+ * @param paragraphCount.max The maximum number of paragraphs to generate.
* @param separator The separator to use. Defaults to `'\n'`.
*
* @example
@@ -176,14 +191,22 @@ export class LoremModule {
* // 'Eos magnam aut qui accusamus. Sapiente quas culpa totam excepturi. Blanditiis totam distinctio occaecati dignissimos cumque atque qui officiis.<br/>
* // Nihil quis vel consequatur. Blanditiis commodi deserunt sunt animi dolorum. A optio porro hic dolorum fugit aut et sint voluptas. Minima ad sed ipsa est non dolores.'
*
+ * faker.lorem.paragraphs({ min: 1, max: 3 })
+ * // 'Eum nam fugiat laudantium.
+ * // Dignissimos tempore porro necessitatibus commodi nam.
+ * // Veniam at commodi iste perferendis totam dolorum corporis ipsam.'
+ *
* @since 2.0.1
*/
- paragraphs(paragraphCount: number = 3, separator: string = '\n'): string {
- const paragraphs: string[] = [];
- for (paragraphCount; paragraphCount > 0; paragraphCount--) {
- paragraphs.push(this.paragraph());
- }
- return paragraphs.join(separator);
+ paragraphs(
+ paragraphCount: number | { min: number; max: number } = 3,
+ separator: string = '\n'
+ ): string {
+ paragraphCount = this.faker.helpers.rangeToNumber(paragraphCount);
+
+ return Array.from({ length: paragraphCount })
+ .map(() => this.paragraph())
+ .join(separator);
}
/**
@@ -202,8 +225,6 @@ export class LoremModule {
*/
text(): string {
const methods: Array<keyof LoremModule> = [
- 'word',
- 'words',
'sentence',
'sentences',
'paragraph',
@@ -220,6 +241,8 @@ export class LoremModule {
* Generates the given number lines of lorem separated by `'\n'`.
*
* @param lineCount The number of lines to generate. Defaults to a random number between `1` and `5`.
+ * @param lineCount.min The minimum number of lines to generate. Defaults to `1`.
+ * @param lineCount.max The maximum number of lines to generate. Defaults to `5`.
*
* @example
* faker.lorem.lines()
@@ -232,12 +255,20 @@ export class LoremModule {
* // 'Soluta deserunt eos quam reiciendis libero autem enim nam ut.
* // Voluptate aut aut.'
*
+ * faker.lorem.lines(2)
+ * // 'Quod quas nam quis impedit aut consequuntur.
+ * // Animi dolores aspernatur.'
+ *
+ * faker.lorem.lines({ min: 1, max: 3 })
+ * // 'Error dolorem natus quos eum consequatur necessitatibus.'
+ *
* @since 3.1.0
*/
- lines(lineCount?: number): string {
- if (lineCount == null) {
- lineCount = this.faker.datatype.number({ min: 1, max: 5 });
- }
+ lines(
+ lineCount: number | { min: number; max: number } = { min: 1, max: 5 }
+ ): string {
+ lineCount = this.faker.helpers.rangeToNumber(lineCount);
+
return this.sentences(lineCount, '\n');
}
}
diff --git a/src/modules/string/index.ts b/src/modules/string/index.ts
index 22cb39d5..f1a13c1d 100644
--- a/src/modules/string/index.ts
+++ b/src/modules/string/index.ts
@@ -98,14 +98,15 @@ export class StringModule {
/**
* Generating a string consisting of letters in the English alphabet.
*
- * @param options Either the number of characters or an options instance. Defaults to `{ length: 1, casing: 'mixed', exclude: [] }`.
- * @param options.length The number of characters to generate. Defaults to `1`.
+ * @param options Either the number of characters or an options instance.
+ * @param options.length The number or range of characters to generate. Defaults to `1`.
* @param options.casing The casing of the characters. Defaults to `'mixed'`.
* @param options.exclude An array with characters which should be excluded in the generated string. Defaults to `[]`.
*
* @example
* faker.string.alpha() // 'b'
* faker.string.alpha(10) // 'fEcAaCVbaR'
+ * faker.string.alpha({ length: { min: 5, max: 10 } }) // 'HcVrCf'
* faker.string.alpha({ casing: 'lower' }) // 'r'
* faker.string.alpha({ exclude: ['W'] }) // 'Z'
* faker.string.alpha({ length: 5, casing: 'upper', exclude: ['A'] }) // 'DTCIC'
@@ -116,7 +117,7 @@ export class StringModule {
options:
| number
| {
- length?: number;
+ length?: number | { min: number; max: number };
casing?: Casing;
exclude?: readonly LiteralUnion<AlphaChar>[] | string;
} = {}
@@ -127,17 +128,18 @@ export class StringModule {
};
}
- const { length = 1, casing = 'mixed' } = options;
+ const length = this.faker.helpers.rangeToNumber(options.length ?? 1);
+ if (length <= 0) {
+ return '';
+ }
+
+ const { casing = 'mixed' } = options;
let { exclude = [] } = options;
if (typeof exclude === 'string') {
exclude = exclude.split('');
}
- if (length <= 0) {
- return '';
- }
-
let charsArray: string[];
switch (casing) {
case 'upper':
@@ -168,14 +170,15 @@ export class StringModule {
/**
* Generating a string consisting of alpha characters and digits.
*
- * @param options Either the number of characters or an options instance. Defaults to `{ length: 1, casing: 'mixed', exclude: [] }`.
- * @param options.length The number of characters and digits to generate. Defaults to `1`.
+ * @param options Either the number of characters or an options instance.
+ * @param options.length The number or range of characters and digits to generate. Defaults to `1`.
* @param options.casing The casing of the characters. Defaults to `'mixed'`.
* @param options.exclude An array of characters and digits which should be excluded in the generated string. Defaults to `[]`.
*
* @example
* faker.string.alphanumeric() // '2'
* faker.string.alphanumeric(5) // '3e5V7'
+ * faker.string.alphanumeric({ length: { min: 5, max: 10 } }) // 'muaApG'
* faker.string.alphanumeric({ casing: 'upper' }) // 'A'
* faker.string.alphanumeric({ exclude: ['W'] }) // 'r'
* faker.string.alphanumeric({ length: 5, exclude: ["a"] }) // 'x1Z7f'
@@ -186,7 +189,7 @@ export class StringModule {
options:
| number
| {
- length?: number;
+ length?: number | { min: number; max: number };
casing?: Casing;
exclude?: readonly LiteralUnion<AlphaNumericChar>[] | string;
} = {}
@@ -197,12 +200,12 @@ export class StringModule {
};
}
- const { length = 1, casing = 'mixed' } = options;
-
+ const length = this.faker.helpers.rangeToNumber(options.length ?? 1);
if (length <= 0) {
return '';
}
+ const { casing = 'mixed' } = options;
let { exclude = [] } = options;
if (typeof exclude === 'string') {
@@ -241,13 +244,14 @@ export class StringModule {
* Returns a [hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal) string.
*
* @param options The optional options object.
- * @param options.length Length of the generated number. Defaults to `1`.
+ * @param options.length The number or range of characters to generate after the prefix. Defaults to `1`.
* @param options.casing Casing of the generated number. Defaults to `'mixed'`.
* @param options.prefix Prefix for the generated number. Defaults to `'0x'`.
*
* @example
* faker.string.hexadecimal() // '0xB'
* faker.string.hexadecimal({ length: 10 }) // '0xaE13d044cB'
+ * faker.string.hexadecimal({ length: { min: 5, max: 10 } }) // '0x7dEf7FCD'
* faker.string.hexadecimal({ prefix: '0x' }) // '0xE'
* faker.string.hexadecimal({ casing: 'lower' }) // '0xf'
* faker.string.hexadecimal({ length: 10, prefix: '#' }) // '#f12a974eB1'
@@ -259,12 +263,16 @@ export class StringModule {
*/
hexadecimal(
options: {
- length?: number;
+ length?: number | { min: number; max: number };
casing?: Casing;
prefix?: string;
} = {}
): string {
- const { length = 1, casing = 'mixed', prefix = '0x' } = options;
+ const { casing = 'mixed', prefix = '0x' } = options;
+ const length = this.faker.helpers.rangeToNumber(options.length ?? 1);
+ if (length <= 0) {
+ return prefix;
+ }
let wholeString = '';
@@ -307,8 +315,8 @@ export class StringModule {
/**
* Generates a given length string of digits.
*
- * @param options Either the number of characters or the options to use. Defaults to `{ length: 1, allowLeadingZeros = false, exclude = [] }`.
- * @param options.length The number of digits to generate. Defaults to `1`.
+ * @param options Either the number of characters or the options to use.
+ * @param options.length The number or range of digits to generate. Defaults to `1`.
* @param options.allowLeadingZeros If true, leading zeros will be allowed. Defaults to `false`.
* @param options.exclude An array of digits which should be excluded in the generated string. Defaults to `[]`.
*
@@ -316,6 +324,7 @@ export class StringModule {
* faker.string.numeric() // '2'
* faker.string.numeric(5) // '31507'
* faker.string.numeric(42) // '56434563150765416546479875435481513188548'
+ * faker.string.numeric({ length: { min: 5, max: 10 } }) // '197089478'
* faker.string.numeric({ length: 42, allowLeadingZeros: true }) // '00564846278453876543517840713421451546115'
* faker.string.numeric({ length: 6, exclude: ['0'] }) // '943228'
*
@@ -325,7 +334,7 @@ export class StringModule {
options:
| number
| {
- length?: number;
+ length?: number | { min: number; max: number };
allowLeadingZeros?: boolean;
exclude?: readonly LiteralUnion<NumericChar>[] | string;
} = {}
@@ -336,11 +345,12 @@ export class StringModule {
};
}
- const { length = 1, allowLeadingZeros = false } = options;
+ const length = this.faker.helpers.rangeToNumber(options.length ?? 1);
if (length <= 0) {
return '';
}
+ const { allowLeadingZeros = false } = options;
let { exclude = [] } = options;
if (typeof exclude === 'string') {
@@ -381,14 +391,18 @@ export class StringModule {
* Returns a string containing UTF-16 chars between 33 and 125 (`!` to `}`).
*
* @param length Length of the generated string. Max length is `2^20`. Defaults to `10`.
+ * @param length.min The minimum number of characters to generate.
+ * @param length.max The maximum number of characters to generate.
*
* @example
* faker.string.sample() // 'Zo!.:*e>wR'
* faker.string.sample(5) // '6Bye8'
+ * faker.string.sample({ min: 5, max: 10 }) // 'FeKunG'
*
* @since 8.0.0
*/
- sample(length = 10): string {
+ sample(length: number | { min: number; max: number } = 10): string {
+ length = this.faker.helpers.rangeToNumber(length);
if (length >= SAMPLE_MAX_LENGTH) {
length = SAMPLE_MAX_LENGTH;
}
diff --git a/src/modules/system/index.ts b/src/modules/system/index.ts
index 8c935c88..12bb25ba 100644
--- a/src/modules/system/index.ts
+++ b/src/modules/system/index.ts
@@ -50,23 +50,26 @@ export class SystemModule {
* Returns a random file name with extension.
*
* @param options An options object.
- * @param options.extensionCount Define how many extensions the file name should have. A negative number will be treated as `0`. Defaults to `1`.
+ * @param options.extensionCount Define how many extensions the file name should have. Defaults to `1`.
*
* @example
* faker.system.fileName() // 'faithfully_calculating.u8mdn'
* faker.system.fileName({ extensionCount: 2 }) // 'times_after.swf.ntf'
+ * faker.system.fileName({ extensionCount: { min: 1, max: 2 } }) // 'jaywalk_like_ill.osfpvg'
*
* @since 3.1.0
*/
fileName(
options: {
/**
- * Define how many extensions the file name should have. A negative number will be treated as `0`. Defaults to `1`.
+ * Define how many extensions the file name should have. Defaults to `1`.
*/
- extensionCount?: number;
+ extensionCount?: number | { min: number; max: number };
} = {}
): string {
- const { extensionCount = 1 } = options;
+ const extensionCount = this.faker.helpers.rangeToNumber(
+ options.extensionCount ?? 1
+ );
const baseName = this.faker.word.words().toLowerCase().replace(/\W/g, '_');
diff --git a/src/modules/word/index.ts b/src/modules/word/index.ts
index 89795919..d326cd70 100644
--- a/src/modules/word/index.ts
+++ b/src/modules/word/index.ts
@@ -375,18 +375,26 @@ export class WordModule {
/**
* Returns a string containing a number of space separated random words.
*
- * @param count Number of words. Defaults to a random value between `1` and `3`.
+ * @param options The optional options object or the number of words to return.
+ * @param options.count The number of words to return. Defaults to a random value between `1` and `3`.
*
* @example
* faker.word.words() // 'almost'
* faker.word.words(5) // 'before hourly patiently dribble equal'
+ * faker.word.words({ count: 5 }) // 'whoever edible um kissingly faraway'
+ * faker.word.words({ count: { min: 5, max: 10 } }) // 'vice buoyant through apropos poised total wary boohoo'
*
* @since 8.0.0
*/
- words(count?: number): string {
- if (count == null) {
- count = this.faker.datatype.number({ min: 1, max: 3 });
+ words(
+ options: number | { count?: number | { min: number; max: number } } = {}
+ ): string {
+ if (typeof options === 'number') {
+ options = { count: options };
}
+ const count = this.faker.helpers.rangeToNumber(
+ options.count ?? { min: 1, max: 3 }
+ );
return Array.from({ length: count }, () => this.sample()).join(' ');
}
diff --git a/test/__snapshots__/helpers.spec.ts.snap b/test/__snapshots__/helpers.spec.ts.snap
index 6c6c31bd..3dc76f89 100644
--- a/test/__snapshots__/helpers.spec.ts.snap
+++ b/test/__snapshots__/helpers.spec.ts.snap
@@ -45,6 +45,10 @@ exports[`helpers > 42 > objectKey > simple 1`] = `"b"`;
exports[`helpers > 42 > objectValue > simple 1`] = `2`;
+exports[`helpers > 42 > rangeToNumber > with number 1`] = `5`;
+
+exports[`helpers > 42 > rangeToNumber > with range 1`] = `4`;
+
exports[`helpers > 42 > regexpStyleStringParse > noArgs 1`] = `""`;
exports[`helpers > 42 > regexpStyleStringParse > only symbols 1`] = `"###test2"`;
@@ -193,6 +197,10 @@ exports[`helpers > 1211 > objectKey > simple 1`] = `"c"`;
exports[`helpers > 1211 > objectValue > simple 1`] = `3`;
+exports[`helpers > 1211 > rangeToNumber > with number 1`] = `5`;
+
+exports[`helpers > 1211 > rangeToNumber > with range 1`] = `10`;
+
exports[`helpers > 1211 > regexpStyleStringParse > noArgs 1`] = `""`;
exports[`helpers > 1211 > regexpStyleStringParse > only symbols 1`] = `"###test5"`;
@@ -331,6 +339,10 @@ exports[`helpers > 1337 > objectKey > simple 1`] = `"a"`;
exports[`helpers > 1337 > objectValue > simple 1`] = `1`;
+exports[`helpers > 1337 > rangeToNumber > with number 1`] = `5`;
+
+exports[`helpers > 1337 > rangeToNumber > with range 1`] = `3`;
+
exports[`helpers > 1337 > regexpStyleStringParse > noArgs 1`] = `""`;
exports[`helpers > 1337 > regexpStyleStringParse > only symbols 1`] = `"###test2"`;
diff --git a/test/__snapshots__/lorem.spec.ts.snap b/test/__snapshots__/lorem.spec.ts.snap
index 9d167ea1..c30488a9 100644
--- a/test/__snapshots__/lorem.spec.ts.snap
+++ b/test/__snapshots__/lorem.spec.ts.snap
@@ -18,44 +18,88 @@ Aperiam nulla omnis dolorum dolores in.
Aut tenetur hic."
`;
-exports[`lorem > 42 > paragraph > noArgs 1`] = `"A qui tempore quo perspiciatis perspiciatis quia in quia. Ipsa esse pariatur. Unde fugit facilis mollitia perferendis. Reiciendis nam repellendus."`;
+exports[`lorem > 42 > lines > with length range 1`] = `
+"A qui tempore quo perspiciatis perspiciatis quia in quia.
+Ipsa esse pariatur.
+Unde fugit facilis mollitia perferendis.
+Reiciendis nam repellendus.
+Dolorem alias qui asperiores qui natus aliquam iste rem consequatur.
+Sit dolore rem iste aliquid odit.
+Dolore voluptatibus nemo.
+Esse et porro natus.
+Suscipit laudantium maiores provident.
+Aperiam nulla omnis dolorum dolores in.
+Aut tenetur hic.
+Molestias placeat laboriosam aliquam aut quasi consectetur fuga adipisci reprehenderit.
+Sunt iste ducimus repellendus accusantium dolores eveniet nisi.
+Qui id eligendi quaerat vel."
+`;
+
+exports[`lorem > 42 > paragraph > noArgs 1`] = `"Minus a qui tempore quo. Perspiciatis quia in quia architecto ipsa esse. Veniam unde fugit facilis mollitia perferendis ipsa reiciendis nam."`;
-exports[`lorem > 42 > paragraph > with length 1`] = `"A qui tempore quo perspiciatis perspiciatis quia in quia. Ipsa esse pariatur. Unde fugit facilis mollitia perferendis. Reiciendis nam repellendus. Dolorem alias qui asperiores qui natus aliquam iste rem consequatur. Sit dolore rem iste aliquid odit. Dolore voluptatibus nemo. Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in. Aut tenetur hic."`;
+exports[`lorem > 42 > paragraph > with length 1`] = `"Minus a qui tempore quo. Perspiciatis quia in quia architecto ipsa esse. Veniam unde fugit facilis mollitia perferendis ipsa reiciendis nam. Earum dolorem alias qui asperiores qui natus aliquam iste. Consequatur eum sit dolore rem iste aliquid. Aperiam dolore voluptatibus nemo. Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in. Aut tenetur hic."`;
+
+exports[`lorem > 42 > paragraph > with length range 1`] = `"A qui tempore quo perspiciatis perspiciatis quia in quia. Ipsa esse pariatur. Unde fugit facilis mollitia perferendis. Reiciendis nam repellendus. Dolorem alias qui asperiores qui natus aliquam iste rem consequatur. Sit dolore rem iste aliquid odit. Dolore voluptatibus nemo. Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in. Aut tenetur hic. Molestias placeat laboriosam aliquam aut quasi consectetur fuga adipisci reprehenderit. Sunt iste ducimus repellendus accusantium dolores eveniet nisi. Qui id eligendi quaerat vel."`;
exports[`lorem > 42 > paragraphs > noArgs 1`] = `
-"A qui tempore quo perspiciatis perspiciatis quia in quia. Ipsa esse pariatur. Unde fugit facilis mollitia perferendis. Reiciendis nam repellendus.
-Alias qui asperiores qui. Aliquam iste rem consequatur eum sit dolore. Iste aliquid odit aperiam dolore voluptatibus nemo. Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in.
-Tenetur hic delectus. Placeat laboriosam aliquam aut quasi consectetur fuga. Reprehenderit fuga sunt iste."
+"Minus a qui tempore quo. Perspiciatis quia in quia architecto ipsa esse. Veniam unde fugit facilis mollitia perferendis ipsa reiciendis nam.
+Earum dolorem alias qui asperiores qui natus aliquam iste. Consequatur eum sit dolore rem iste aliquid. Aperiam dolore voluptatibus nemo.
+Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in."
`;
exports[`lorem > 42 > paragraphs > with length 1`] = `
-"A qui tempore quo perspiciatis perspiciatis quia in quia. Ipsa esse pariatur. Unde fugit facilis mollitia perferendis. Reiciendis nam repellendus.
-Alias qui asperiores qui. Aliquam iste rem consequatur eum sit dolore. Iste aliquid odit aperiam dolore voluptatibus nemo. Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in.
-Tenetur hic delectus. Placeat laboriosam aliquam aut quasi consectetur fuga. Reprehenderit fuga sunt iste.
-Accusantium dolores eveniet nisi eius qui id eligendi quaerat. Totam neque corrupti excepturi qui voluptatem. Quibusdam quo in earum nisi debitis recusandae perspiciatis libero repudiandae. Et excepturi sequi totam aperiam.
-Quibusdam laboriosam nobis tempora atque. Cupiditate ullam delectus ut omnis atque incidunt odit dolore. Magni illo aut doloribus vel impedit nisi nesciunt dolore. Aut facere nesciunt. Expedita libero quisquam impedit omnis illo recusandae corporis. Dicta voluptates pariatur illum error in veniam quasi.
-Quaerat est minima est libero. Officia tempora officiis molestias nihil suscipit dicta. Expedita illum optio nam molestias consectetur impedit numquam dignissimos doloremque.
-Vel vitae sit iure beatae nesciunt voluptatem necessitatibus. Molestiae enim molestias praesentium quidem eveniet odit non. Ea atque eligendi nesciunt amet hic inventore. Labore quidem consequuntur accusamus itaque error placeat. Culpa beatae at esse maxime.
-Commodi debitis accusamus atque. Maxime sunt necessitatibus ullam enim. Vitae tempora amet deserunt vel alias facere ullam nulla aliquam.
-Praesentium deleniti commodi odio. Quidem dicta tempora quis. Hic magni ad ipsum.
-Rerum ex nemo quae reiciendis numquam delectus. Non quidem ducimus expedita. Fugit ut repellat accusantium modi. Voluptatibus blanditiis ea eaque accusantium incidunt nostrum. Culpa adipisci dolorum fugit voluptatum dignissimos in doloribus quos velit."
+"Minus a qui tempore quo. Perspiciatis quia in quia architecto ipsa esse. Veniam unde fugit facilis mollitia perferendis ipsa reiciendis nam.
+Earum dolorem alias qui asperiores qui natus aliquam iste. Consequatur eum sit dolore rem iste aliquid. Aperiam dolore voluptatibus nemo.
+Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in.
+Aut tenetur hic. Molestias placeat laboriosam aliquam aut quasi consectetur fuga adipisci reprehenderit. Sunt iste ducimus repellendus accusantium dolores eveniet nisi.
+Qui id eligendi quaerat vel. Neque corrupti excepturi qui voluptatem reiciendis quibusdam. In earum nisi debitis recusandae perspiciatis libero repudiandae minima.
+Excepturi sequi totam. Sapiente minima quibusdam. Nobis tempora atque assumenda cupiditate ullam.
+Ut omnis atque incidunt odit dolore quod magni illo aut. Vel impedit nisi nesciunt dolore consequatur aut facere nesciunt facilis. Libero quisquam impedit omnis illo recusandae corporis mollitia.
+Voluptates pariatur illum. In veniam quasi quae ipsam quaerat est. Est libero provident officia tempora.
+Molestias nihil suscipit dicta reiciendis expedita illum optio nam molestias. Impedit numquam dignissimos doloremque. Expedita vel vitae sit iure beatae nesciunt.
+Necessitatibus culpa molestiae. Molestias praesentium quidem eveniet odit. Omnis ea atque eligendi."
+`;
+
+exports[`lorem > 42 > paragraphs > with length range 1`] = `
+"A qui tempore quo perspiciatis perspiciatis quia in quia. Ipsa esse pariatur. Unde fugit facilis mollitia perferendis.
+Reiciendis nam repellendus. Dolorem alias qui asperiores qui natus aliquam iste rem consequatur. Sit dolore rem iste aliquid odit.
+Dolore voluptatibus nemo. Esse et porro natus. Suscipit laudantium maiores provident.
+Aperiam nulla omnis dolorum dolores in. Aut tenetur hic. Molestias placeat laboriosam aliquam aut quasi consectetur fuga adipisci reprehenderit.
+Sunt iste ducimus repellendus accusantium dolores eveniet nisi. Qui id eligendi quaerat vel. Neque corrupti excepturi qui voluptatem reiciendis quibusdam.
+In earum nisi debitis recusandae perspiciatis libero repudiandae minima. Excepturi sequi totam. Sapiente minima quibusdam.
+Nobis tempora atque assumenda cupiditate ullam. Ut omnis atque incidunt odit dolore quod magni illo aut. Vel impedit nisi nesciunt dolore consequatur aut facere nesciunt facilis.
+Libero quisquam impedit omnis illo recusandae corporis mollitia. Voluptates pariatur illum. In veniam quasi quae ipsam quaerat est.
+Est libero provident officia tempora. Molestias nihil suscipit dicta reiciendis expedita illum optio nam molestias. Impedit numquam dignissimos doloremque.
+Expedita vel vitae sit iure beatae nesciunt. Necessitatibus culpa molestiae. Molestias praesentium quidem eveniet odit.
+Omnis ea atque eligendi. Amet hic inventore perspiciatis. Quidem consequuntur accusamus itaque error.
+Dolore culpa beatae at esse maxime ipsum qui commodi. Accusamus atque minima maxime sunt necessitatibus ullam enim eveniet vitae. Amet deserunt vel alias facere.
+Nulla aliquam consequatur consequuntur praesentium. Commodi odio dolor quidem dicta tempora quis. Hic magni ad ipsum.
+Quas rerum ex nemo quae reiciendis numquam. Velit non quidem ducimus expedita magnam fugit ut repellat accusantium. Omnis voluptatibus blanditiis ea eaque."
`;
exports[`lorem > 42 > sentence > noArgs 1`] = `"Minus a qui tempore quo."`;
exports[`lorem > 42 > sentence > with length 1`] = `"Voluptas minus a qui tempore quo perspiciatis perspiciatis quia in."`;
+exports[`lorem > 42 > sentence > with length range 1`] = `"Minus a qui tempore quo perspiciatis perspiciatis quia in quia architecto ipsa esse pariatur."`;
+
exports[`lorem > 42 > sentences > noArgs 1`] = `"A qui tempore quo perspiciatis perspiciatis quia in quia. Ipsa esse pariatur. Unde fugit facilis mollitia perferendis."`;
exports[`lorem > 42 > sentences > with length 1`] = `"Minus a qui tempore quo. Perspiciatis quia in quia architecto ipsa esse. Veniam unde fugit facilis mollitia perferendis ipsa reiciendis nam. Earum dolorem alias qui asperiores qui natus aliquam iste. Consequatur eum sit dolore rem iste aliquid. Aperiam dolore voluptatibus nemo. Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in. Aut tenetur hic."`;
+exports[`lorem > 42 > sentences > with length range 1`] = `"A qui tempore quo perspiciatis perspiciatis quia in quia. Ipsa esse pariatur. Unde fugit facilis mollitia perferendis. Reiciendis nam repellendus. Dolorem alias qui asperiores qui natus aliquam iste rem consequatur. Sit dolore rem iste aliquid odit. Dolore voluptatibus nemo. Esse et porro natus. Suscipit laudantium maiores provident. Aperiam nulla omnis dolorum dolores in. Aut tenetur hic. Molestias placeat laboriosam aliquam aut quasi consectetur fuga adipisci reprehenderit. Sunt iste ducimus repellendus accusantium dolores eveniet nisi. Qui id eligendi quaerat vel."`;
+
exports[`lorem > 42 > slug > noArgs 1`] = `"voluptas-minus-a"`;
exports[`lorem > 42 > slug > with length 1`] = `"voluptas-minus-a-qui-tempore-quo-perspiciatis-perspiciatis-quia-in"`;
-exports[`lorem > 42 > text > noArgs 1`] = `"A qui tempore quo perspiciatis perspiciatis quia in quia."`;
+exports[`lorem > 42 > slug > with length range 1`] = `"minus-a-qui-tempore-quo-perspiciatis-perspiciatis-quia-in-quia-architecto-ipsa-esse-pariatur"`;
+
+exports[`lorem > 42 > text > noArgs 1`] = `"Qui tempore quo perspiciatis perspiciatis quia in quia architecto ipsa. Pariatur veniam unde fugit facilis mollitia. Ipsa reiciendis nam. Earum dolorem alias qui asperiores qui natus aliquam iste. Consequatur eum sit dolore rem iste aliquid."`;
-exports[`lorem > 42 > text > with length 1`] = `"A qui tempore quo perspiciatis perspiciatis quia in quia."`;
+exports[`lorem > 42 > text > with length 1`] = `"Qui tempore quo perspiciatis perspiciatis quia in quia architecto ipsa. Pariatur veniam unde fugit facilis mollitia. Ipsa reiciendis nam. Earum dolorem alias qui asperiores qui natus aliquam iste. Consequatur eum sit dolore rem iste aliquid."`;
+
+exports[`lorem > 42 > text > with length range 1`] = `"Qui tempore quo perspiciatis perspiciatis quia in quia architecto ipsa. Pariatur veniam unde fugit facilis mollitia. Ipsa reiciendis nam. Earum dolorem alias qui asperiores qui natus aliquam iste. Consequatur eum sit dolore rem iste aliquid."`;
exports[`lorem > 42 > word > noArgs 1`] = `"voluptas"`;
@@ -71,6 +115,8 @@ exports[`lorem > 42 > words > noArgs 1`] = `"voluptas minus a"`;
exports[`lorem > 42 > words > with length 1`] = `"voluptas minus a qui tempore quo perspiciatis perspiciatis quia in"`;
+exports[`lorem > 42 > words > with length range 1`] = `"minus a qui tempore quo perspiciatis perspiciatis quia in quia architecto ipsa esse pariatur"`;
+
exports[`lorem > 1211 > lines > noArgs 1`] = `
"Debitis quo amet explicabo repellat accusantium.
Quia fuga dolorem cumque autem ullam consequuntur quidem.
@@ -92,41 +138,95 @@ Eius aliquid quaerat sint dolores inventore quas.
Quidem amet odit doloremque."
`;
-exports[`lorem > 1211 > paragraph > noArgs 1`] = `"Debitis quo amet explicabo repellat accusantium. Quia fuga dolorem cumque autem ullam consequuntur quidem. Placeat aut cumque est animi libero repellendus recusandae. Magnam pariatur doloribus nulla doloribus ipsum. Provident saepe nesciunt sed ipsam error. Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis."`;
+exports[`lorem > 1211 > lines > with length range 1`] = `
+"Debitis quo amet explicabo repellat accusantium.
+Quia fuga dolorem cumque autem ullam consequuntur quidem.
+Placeat aut cumque est animi libero repellendus recusandae.
+Magnam pariatur doloribus nulla doloribus ipsum.
+Provident saepe nesciunt sed ipsam error.
+Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis.
+Dolor occaecati magnam eos.
+Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit.
+Eius aliquid quaerat sint dolores inventore quas.
+Quidem amet odit doloremque.
+Quibusdam dignissimos culpa velit neque ea eum neque.
+Quibusdam commodi sint excepturi iusto inventore accusantium.
+Quidem quos qui error facilis ducimus incidunt sed.
+Est laudantium rerum quam iusto ipsum sed iste corrupti.
+In architecto rem illum quam quam ipsa voluptas cupiditate.
+Expedita sint et placeat officiis corrupti.
+Itaque a reiciendis cum placeat quasi at.
+Ipsum rerum distinctio.
+Repellendus dignissimos quis cupiditate debitis alias perferendis nobis.
+Suscipit optio doloribus nihil modi inventore at."
+`;
+
+exports[`lorem > 1211 > paragraph > noArgs 1`] = `"Esse debitis quo amet explicabo repellat accusantium laborum quia fuga. Cumque autem ullam consequuntur. Nobis placeat aut cumque est animi libero repellendus."`;
+
+exports[`lorem > 1211 > paragraph > with length 1`] = `"Esse debitis quo amet explicabo repellat accusantium laborum quia fuga. Cumque autem ullam consequuntur. Nobis placeat aut cumque est animi libero repellendus. Iure magnam pariatur doloribus nulla doloribus ipsum voluptate provident saepe. Sed ipsam error doloribus. Cumque consequatur aliquid aliquam earum perferendis. Autem reiciendis quia dolor occaecati magnam eos. Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit. Eius aliquid quaerat sint dolores inventore quas. Quidem amet odit doloremque."`;
-exports[`lorem > 1211 > paragraph > with length 1`] = `"Debitis quo amet explicabo repellat accusantium. Quia fuga dolorem cumque autem ullam consequuntur quidem. Placeat aut cumque est animi libero repellendus recusandae. Magnam pariatur doloribus nulla doloribus ipsum. Provident saepe nesciunt sed ipsam error. Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis. Dolor occaecati magnam eos. Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit. Eius aliquid quaerat sint dolores inventore quas. Quidem amet odit doloremque. Quibusdam dignissimos culpa velit neque ea eum neque. Quibusdam commodi sint excepturi iusto inventore accusantium. Quidem quos qui error facilis ducimus incidunt sed."`;
+exports[`lorem > 1211 > paragraph > with length range 1`] = `"Debitis quo amet explicabo repellat accusantium. Quia fuga dolorem cumque autem ullam consequuntur quidem. Placeat aut cumque est animi libero repellendus recusandae. Magnam pariatur doloribus nulla doloribus ipsum. Provident saepe nesciunt sed ipsam error. Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis. Dolor occaecati magnam eos. Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit. Eius aliquid quaerat sint dolores inventore quas. Quidem amet odit doloremque. Quibusdam dignissimos culpa velit neque ea eum neque. Quibusdam commodi sint excepturi iusto inventore accusantium. Quidem quos qui error facilis ducimus incidunt sed. Est laudantium rerum quam iusto ipsum sed iste corrupti. In architecto rem illum quam quam ipsa voluptas cupiditate. Expedita sint et placeat officiis corrupti. Itaque a reiciendis cum placeat quasi at. Ipsum rerum distinctio. Repellendus dignissimos quis cupiditate debitis alias perferendis nobis. Suscipit optio doloribus nihil modi inventore at."`;
exports[`lorem > 1211 > paragraphs > noArgs 1`] = `
-"Debitis quo amet explicabo repellat accusantium. Quia fuga dolorem cumque autem ullam consequuntur quidem. Placeat aut cumque est animi libero repellendus recusandae. Magnam pariatur doloribus nulla doloribus ipsum. Provident saepe nesciunt sed ipsam error. Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis.
-Occaecati magnam eos facilis. Totam voluptates exercitationem doloribus illum quaerat. Provident eius aliquid quaerat sint dolores.
-Adipisci quidem amet odit doloremque rerum quibusdam. Culpa velit neque ea eum neque. Quibusdam commodi sint excepturi iusto inventore accusantium."
+"Esse debitis quo amet explicabo repellat accusantium laborum quia fuga. Cumque autem ullam consequuntur. Nobis placeat aut cumque est animi libero repellendus.
+Iure magnam pariatur doloribus nulla doloribus ipsum voluptate provident saepe. Sed ipsam error doloribus. Cumque consequatur aliquid aliquam earum perferendis.
+Autem reiciendis quia dolor occaecati magnam eos. Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit. Eius aliquid quaerat sint dolores inventore quas."
`;
exports[`lorem > 1211 > paragraphs > with length 1`] = `
-"Debitis quo amet explicabo repellat accusantium. Quia fuga dolorem cumque autem ullam consequuntur quidem. Placeat aut cumque est animi libero repellendus recusandae. Magnam pariatur doloribus nulla doloribus ipsum. Provident saepe nesciunt sed ipsam error. Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis.
-Occaecati magnam eos facilis. Totam voluptates exercitationem doloribus illum quaerat. Provident eius aliquid quaerat sint dolores.
-Adipisci quidem amet odit doloremque rerum quibusdam. Culpa velit neque ea eum neque. Quibusdam commodi sint excepturi iusto inventore accusantium.
-Quos qui error facilis ducimus incidunt sed quo. Laudantium rerum quam iusto ipsum sed iste corrupti. In architecto rem illum quam quam ipsa voluptas cupiditate. Expedita sint et placeat officiis corrupti. Itaque a reiciendis cum placeat quasi at.
-Rerum distinctio id repellendus. Quis cupiditate debitis alias perferendis nobis. Suscipit optio doloribus nihil modi inventore at.
-Aspernatur quas incidunt eveniet dolorem iure eveniet. Repellat velit commodi ipsam ratione voluptate iste neque molestias pariatur. Facere natus nobis placeat natus culpa fugiat. Deserunt nobis reprehenderit quibusdam saepe eveniet hic deleniti est.
-Deleniti dolor in. Exercitationem in repellendus aut sequi ad tenetur doloribus quasi adipisci. Ducimus accusantium minima recusandae. Autem necessitatibus repudiandae delectus perspiciatis non sapiente minus.
-Ullam ex natus nostrum nobis temporibus saepe. Explicabo necessitatibus rem vero harum odit tempore vitae. Corrupti repellendus accusamus itaque iusto. Non facilis harum illo. Iure dignissimos culpa fugiat enim. Sit optio amet facilis amet libero recusandae debitis perspiciatis.
-Nesciunt deleniti amet id impedit perspiciatis minima necessitatibus. In enim nihil repellendus possimus architecto quos est sit dicta. Soluta nihil dolorem reprehenderit deserunt quasi culpa. Distinctio commodi aut sed vel magni reiciendis.
-Repudiandae expedita doloribus consectetur maxime. Porro ea nihil vero esse ad tenetur temporibus accusamus. Officia ad omnis architecto repudiandae. Facere minima illo asperiores. Accusamus voluptate corporis voluptatibus reiciendis temporibus."
+"Esse debitis quo amet explicabo repellat accusantium laborum quia fuga. Cumque autem ullam consequuntur. Nobis placeat aut cumque est animi libero repellendus.
+Iure magnam pariatur doloribus nulla doloribus ipsum voluptate provident saepe. Sed ipsam error doloribus. Cumque consequatur aliquid aliquam earum perferendis.
+Autem reiciendis quia dolor occaecati magnam eos. Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit. Eius aliquid quaerat sint dolores inventore quas.
+Quidem amet odit doloremque. Quibusdam dignissimos culpa velit neque ea eum neque. Quibusdam commodi sint excepturi iusto inventore accusantium.
+Quidem quos qui error facilis ducimus incidunt sed. Est laudantium rerum quam iusto ipsum sed iste corrupti. In architecto rem illum quam quam ipsa voluptas cupiditate.
+Expedita sint et placeat officiis corrupti. Itaque a reiciendis cum placeat quasi at. Ipsum rerum distinctio.
+Repellendus dignissimos quis cupiditate debitis alias perferendis nobis. Suscipit optio doloribus nihil modi inventore at. Provident aspernatur quas incidunt eveniet.
+Iure eveniet debitis repellat. Commodi ipsam ratione voluptate. Neque molestias pariatur occaecati facere natus nobis.
+Natus culpa fugiat assumenda deserunt nobis reprehenderit quibusdam saepe. Hic deleniti est nostrum inventore deleniti dolor in hic exercitationem. Repellendus aut sequi ad tenetur doloribus.
+Adipisci velit ducimus. Minima recusandae expedita. Necessitatibus repudiandae delectus perspiciatis non sapiente."
+`;
+
+exports[`lorem > 1211 > paragraphs > with length range 1`] = `
+"Debitis quo amet explicabo repellat accusantium. Quia fuga dolorem cumque autem ullam consequuntur quidem. Placeat aut cumque est animi libero repellendus recusandae.
+Magnam pariatur doloribus nulla doloribus ipsum. Provident saepe nesciunt sed ipsam error. Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis.
+Dolor occaecati magnam eos. Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit. Eius aliquid quaerat sint dolores inventore quas.
+Quidem amet odit doloremque. Quibusdam dignissimos culpa velit neque ea eum neque. Quibusdam commodi sint excepturi iusto inventore accusantium.
+Quidem quos qui error facilis ducimus incidunt sed. Est laudantium rerum quam iusto ipsum sed iste corrupti. In architecto rem illum quam quam ipsa voluptas cupiditate.
+Expedita sint et placeat officiis corrupti. Itaque a reiciendis cum placeat quasi at. Ipsum rerum distinctio.
+Repellendus dignissimos quis cupiditate debitis alias perferendis nobis. Suscipit optio doloribus nihil modi inventore at. Provident aspernatur quas incidunt eveniet.
+Iure eveniet debitis repellat. Commodi ipsam ratione voluptate. Neque molestias pariatur occaecati facere natus nobis.
+Natus culpa fugiat assumenda deserunt nobis reprehenderit quibusdam saepe. Hic deleniti est nostrum inventore deleniti dolor in hic exercitationem. Repellendus aut sequi ad tenetur doloribus.
+Adipisci velit ducimus. Minima recusandae expedita. Necessitatibus repudiandae delectus perspiciatis non sapiente.
+Doloribus blanditiis ullam ex natus nostrum nobis temporibus saepe. Explicabo necessitatibus rem vero harum odit tempore vitae. Corrupti repellendus accusamus itaque iusto.
+Non facilis harum illo. Iure dignissimos culpa fugiat enim. Sit optio amet facilis amet libero recusandae debitis perspiciatis.
+Mollitia nesciunt deleniti amet id. Perspiciatis minima necessitatibus sapiente in enim nihil repellendus possimus. Quos est sit.
+Excepturi soluta nihil. Reprehenderit deserunt quasi culpa. Distinctio commodi aut sed vel magni reiciendis.
+Dolore repudiandae expedita doloribus consectetur maxime illum. Ea nihil vero esse ad tenetur temporibus accusamus ipsam. Ad omnis architecto repudiandae eos facere minima illo.
+Commodi accusamus voluptate corporis voluptatibus reiciendis temporibus quis itaque similique. Facere ex fugiat labore. Explicabo optio in veniam iste.
+Beatae natus nemo deleniti aliquam rem iste doloribus error minus. Ad quos nulla reprehenderit ut. Dolorum numquam a.
+Fugit delectus necessitatibus voluptatibus nemo itaque temporibus voluptatum atque. Iusto quisquam a id. Unde ea alias enim maiores vel repellat.
+Expedita quis nostrum. Similique nisi alias dicta omnis. Explicabo deserunt sunt omnis impedit dolor reiciendis magni perferendis officia.
+Hic blanditiis quidem possimus ex id. At nihil magni nam. Optio tempora maiores fugiat impedit quae."
`;
exports[`lorem > 1211 > sentence > noArgs 1`] = `"Esse debitis quo amet explicabo repellat accusantium laborum quia fuga."`;
exports[`lorem > 1211 > sentence > with length 1`] = `"Recusandae esse debitis quo amet explicabo repellat accusantium laborum quia."`;
+exports[`lorem > 1211 > sentence > with length range 1`] = `"Esse debitis quo amet explicabo repellat accusantium laborum quia fuga dolorem cumque autem ullam consequuntur quidem nobis placeat aut cumque."`;
+
exports[`lorem > 1211 > sentences > noArgs 1`] = `"Debitis quo amet explicabo repellat accusantium. Quia fuga dolorem cumque autem ullam consequuntur quidem. Placeat aut cumque est animi libero repellendus recusandae. Magnam pariatur doloribus nulla doloribus ipsum. Provident saepe nesciunt sed ipsam error. Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis."`;
exports[`lorem > 1211 > sentences > with length 1`] = `"Esse debitis quo amet explicabo repellat accusantium laborum quia fuga. Cumque autem ullam consequuntur. Nobis placeat aut cumque est animi libero repellendus. Iure magnam pariatur doloribus nulla doloribus ipsum voluptate provident saepe. Sed ipsam error doloribus. Cumque consequatur aliquid aliquam earum perferendis. Autem reiciendis quia dolor occaecati magnam eos. Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit. Eius aliquid quaerat sint dolores inventore quas. Quidem amet odit doloremque."`;
+exports[`lorem > 1211 > sentences > with length range 1`] = `"Debitis quo amet explicabo repellat accusantium. Quia fuga dolorem cumque autem ullam consequuntur quidem. Placeat aut cumque est animi libero repellendus recusandae. Magnam pariatur doloribus nulla doloribus ipsum. Provident saepe nesciunt sed ipsam error. Reprehenderit cumque consequatur aliquid aliquam earum perferendis voluptatum autem reiciendis. Dolor occaecati magnam eos. Laboriosam totam voluptates exercitationem doloribus illum quaerat suscipit. Eius aliquid quaerat sint dolores inventore quas. Quidem amet odit doloremque. Quibusdam dignissimos culpa velit neque ea eum neque. Quibusdam commodi sint excepturi iusto inventore accusantium. Quidem quos qui error facilis ducimus incidunt sed. Est laudantium rerum quam iusto ipsum sed iste corrupti. In architecto rem illum quam quam ipsa voluptas cupiditate. Expedita sint et placeat officiis corrupti. Itaque a reiciendis cum placeat quasi at. Ipsum rerum distinctio. Repellendus dignissimos quis cupiditate debitis alias perferendis nobis. Suscipit optio doloribus nihil modi inventore at."`;
+
exports[`lorem > 1211 > slug > noArgs 1`] = `"recusandae-esse-debitis"`;
exports[`lorem > 1211 > slug > with length 1`] = `"recusandae-esse-debitis-quo-amet-explicabo-repellat-accusantium-laborum-quia"`;
+exports[`lorem > 1211 > slug > with length range 1`] = `"esse-debitis-quo-amet-explicabo-repellat-accusantium-laborum-quia-fuga-dolorem-cumque-autem-ullam-consequuntur-quidem-nobis-placeat-aut-cumque"`;
+
exports[`lorem > 1211 > text > noArgs 1`] = `
"Quo amet explicabo repellat accusantium laborum quia fuga dolorem cumque.
Ullam consequuntur quidem nobis placeat aut.
@@ -139,6 +239,12 @@ Ullam consequuntur quidem nobis placeat aut.
Est animi libero repellendus recusandae iure magnam pariatur doloribus."
`;
+exports[`lorem > 1211 > text > with length range 1`] = `
+"Quo amet explicabo repellat accusantium laborum quia fuga dolorem cumque.
+Ullam consequuntur quidem nobis placeat aut.
+Est animi libero repellendus recusandae iure magnam pariatur doloribus."
+`;
+
exports[`lorem > 1211 > word > noArgs 1`] = `"recusandae"`;
exports[`lorem > 1211 > word > with length 1`] = `"reiciendis"`;
@@ -153,6 +259,8 @@ exports[`lorem > 1211 > words > noArgs 1`] = `"recusandae esse debitis"`;
exports[`lorem > 1211 > words > with length 1`] = `"recusandae esse debitis quo amet explicabo repellat accusantium laborum quia"`;
+exports[`lorem > 1211 > words > with length range 1`] = `"esse debitis quo amet explicabo repellat accusantium laborum quia fuga dolorem cumque autem ullam consequuntur quidem nobis placeat aut cumque"`;
+
exports[`lorem > 1337 > lines > noArgs 1`] = `
"Quia dolorem incidunt atque esse accusantium ad.
Totam provident eius veniam."
@@ -171,44 +279,84 @@ Qui sapiente sapiente accusamus vel facere blanditiis.
Praesentium quidem aut temporibus tempore natus asperiores est."
`;
-exports[`lorem > 1337 > paragraph > noArgs 1`] = `"Quia dolorem incidunt atque esse accusantium ad. Totam provident eius veniam. Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt. Doloribus consequuntur reprehenderit pariatur quisquam quisquam minus alias."`;
+exports[`lorem > 1337 > lines > with length range 1`] = `
+"Quia dolorem incidunt atque esse accusantium ad.
+Totam provident eius veniam.
+Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt.
+Doloribus consequuntur reprehenderit pariatur quisquam quisquam minus alias.
+Quam commodi suscipit cupiditate totam.
+Ipsam ratione molestiae labore pariatur est ex ducimus reprehenderit.
+Odit commodi possimus nesciunt.
+Voluptatum recusandae repellendus natus qui sapiente sapiente accusamus vel facere.
+Harum praesentium quidem aut temporibus tempore natus.
+Est consequuntur esse explicabo commodi voluptas similique quidem maxime alias.
+Ipsam illum ipsa optio quisquam sapiente exercitationem eaque.
+Rem dignissimos dolorum voluptatibus nobis temporibus atque iste."
+`;
+
+exports[`lorem > 1337 > paragraph > noArgs 1`] = `"Molestias quia dolorem incidunt atque. Accusantium ad consectetur totam provident eius. Voluptatibus tempora tempore aliquam vitae."`;
-exports[`lorem > 1337 > paragraph > with length 1`] = `"Quia dolorem incidunt atque esse accusantium ad. Totam provident eius veniam. Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt. Doloribus consequuntur reprehenderit pariatur quisquam quisquam minus alias. Quam commodi suscipit cupiditate totam. Ipsam ratione molestiae labore pariatur est ex ducimus reprehenderit. Odit commodi possimus nesciunt. Voluptatum recusandae repellendus natus qui sapiente sapiente accusamus vel facere. Harum praesentium quidem aut temporibus tempore natus. Est consequuntur esse explicabo commodi voluptas similique quidem maxime alias. Ipsam illum ipsa optio quisquam sapiente exercitationem eaque."`;
+exports[`lorem > 1337 > paragraph > with length 1`] = `"Molestias quia dolorem incidunt atque. Accusantium ad consectetur totam provident eius. Voluptatibus tempora tempore aliquam vitae. Laboriosam quasi similique nemo sunt cum doloribus consequuntur reprehenderit. Quisquam quisquam minus alias corporis quam commodi suscipit cupiditate. Optio ipsam ratione molestiae labore pariatur est. Ducimus reprehenderit eos odit commodi possimus. Necessitatibus voluptatum recusandae repellendus. Qui sapiente sapiente accusamus vel facere blanditiis. Praesentium quidem aut temporibus tempore natus asperiores est."`;
+
+exports[`lorem > 1337 > paragraph > with length range 1`] = `"Quia dolorem incidunt atque esse accusantium ad. Totam provident eius veniam. Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt. Doloribus consequuntur reprehenderit pariatur quisquam quisquam minus alias. Quam commodi suscipit cupiditate totam. Ipsam ratione molestiae labore pariatur est ex ducimus reprehenderit. Odit commodi possimus nesciunt. Voluptatum recusandae repellendus natus qui sapiente sapiente accusamus vel facere. Harum praesentium quidem aut temporibus tempore natus. Est consequuntur esse explicabo commodi voluptas similique quidem maxime alias. Ipsam illum ipsa optio quisquam sapiente exercitationem eaque. Rem dignissimos dolorum voluptatibus nobis temporibus atque iste."`;
exports[`lorem > 1337 > paragraphs > noArgs 1`] = `
-"Quia dolorem incidunt atque esse accusantium ad. Totam provident eius veniam. Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt. Doloribus consequuntur reprehenderit pariatur quisquam quisquam minus alias.
-Commodi suscipit cupiditate totam optio ipsam. Molestiae labore pariatur est. Ducimus reprehenderit eos odit commodi possimus. Necessitatibus voluptatum recusandae repellendus.
-Sapiente sapiente accusamus vel. Blanditiis harum praesentium quidem aut temporibus tempore natus asperiores. Consequuntur esse explicabo commodi voluptas similique quidem maxime. Dolorum ipsam illum. Optio quisquam sapiente."
+"Molestias quia dolorem incidunt atque. Accusantium ad consectetur totam provident eius. Voluptatibus tempora tempore aliquam vitae.
+Laboriosam quasi similique nemo sunt cum doloribus consequuntur reprehenderit. Quisquam quisquam minus alias corporis quam commodi suscipit cupiditate. Optio ipsam ratione molestiae labore pariatur est.
+Ducimus reprehenderit eos odit commodi possimus. Necessitatibus voluptatum recusandae repellendus. Qui sapiente sapiente accusamus vel facere blanditiis."
`;
exports[`lorem > 1337 > paragraphs > with length 1`] = `
-"Quia dolorem incidunt atque esse accusantium ad. Totam provident eius veniam. Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt. Doloribus consequuntur reprehenderit pariatur quisquam quisquam minus alias.
-Commodi suscipit cupiditate totam optio ipsam. Molestiae labore pariatur est. Ducimus reprehenderit eos odit commodi possimus. Necessitatibus voluptatum recusandae repellendus.
-Sapiente sapiente accusamus vel. Blanditiis harum praesentium quidem aut temporibus tempore natus asperiores. Consequuntur esse explicabo commodi voluptas similique quidem maxime. Dolorum ipsam illum. Optio quisquam sapiente.
-Rerum rem dignissimos. Voluptatibus nobis temporibus atque iste modi molestias temporibus. Tempore numquam nulla aut aliquam et omnis earum incidunt voluptatibus. Dignissimos labore nostrum praesentium nam fugit consequatur harum optio officiis.
-Ratione cumque est esse eveniet est consequuntur. Eveniet quisquam minima vero rerum nulla modi. Totam maiores eos nam nihil. In laborum aliquid officiis minus iusto. Commodi nam ipsa minus harum exercitationem.
-Ipsam expedita provident necessitatibus iusto autem nesciunt nihil id saepe. Culpa nihil voluptatum perferendis adipisci modi tenetur voluptatum quas fugit. Blanditiis consectetur magnam eum voluptas nisi asperiores praesentium minus.
-Fuga molestias voluptatem animi. Expedita cum rem earum. Iste inventore ea nemo fugiat.
-Similique dolore harum nisi nobis rerum dolor ullam dolor voluptatem. Exercitationem dignissimos odio nesciunt aperiam quis. At libero molestiae impedit fugit quasi tenetur accusantium libero eius.
-Alias adipisci quis fuga. Iusto veniam earum voluptate occaecati dolor qui assumenda ratione. Quis accusantium eum dolor illo tempora culpa ab ipsa esse. Exercitationem id minima consequatur maxime optio illum quis.
-Molestias quis minus occaecati magni dolores ullam illum officiis. Unde soluta quisquam molestias natus. Necessitatibus corrupti nesciunt sit repellendus inventore excepturi a perspiciatis voluptate. Fugit quasi laborum quidem error ea quos necessitatibus saepe. Necessitatibus tempore eius doloremque distinctio impedit odio tempore."
+"Molestias quia dolorem incidunt atque. Accusantium ad consectetur totam provident eius. Voluptatibus tempora tempore aliquam vitae.
+Laboriosam quasi similique nemo sunt cum doloribus consequuntur reprehenderit. Quisquam quisquam minus alias corporis quam commodi suscipit cupiditate. Optio ipsam ratione molestiae labore pariatur est.
+Ducimus reprehenderit eos odit commodi possimus. Necessitatibus voluptatum recusandae repellendus. Qui sapiente sapiente accusamus vel facere blanditiis.
+Praesentium quidem aut temporibus tempore natus asperiores est. Esse explicabo commodi voluptas. Quidem maxime alias dolorum ipsam illum ipsa optio.
+Sapiente exercitationem eaque rerum rem dignissimos dolorum voluptatibus nobis. Atque iste modi molestias temporibus repellat tempore numquam nulla. Aliquam et omnis.
+Incidunt voluptatibus accusamus dignissimos labore nostrum praesentium nam fugit consequatur. Optio officiis laborum deleniti ratione cumque est esse. Est consequuntur quos eveniet quisquam minima vero rerum nulla modi.
+Totam maiores eos nam nihil. In laborum aliquid officiis minus iusto. Commodi nam ipsa minus harum exercitationem.
+Eveniet ipsam expedita. Necessitatibus iusto autem nesciunt nihil id saepe. Culpa nihil voluptatum perferendis adipisci modi tenetur voluptatum quas fugit.
+Blanditiis consectetur magnam eum voluptas nisi asperiores praesentium minus. Ipsum fuga molestias voluptatem. Consectetur expedita cum rem earum veniam iste inventore.
+Nemo fugiat aut asperiores similique dolore. Nisi nobis rerum dolor ullam dolor voluptatem laboriosam. Dignissimos odio nesciunt aperiam quis."
+`;
+
+exports[`lorem > 1337 > paragraphs > with length range 1`] = `
+"Quia dolorem incidunt atque esse accusantium ad. Totam provident eius veniam. Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt.
+Doloribus consequuntur reprehenderit pariatur quisquam quisquam minus alias. Quam commodi suscipit cupiditate totam. Ipsam ratione molestiae labore pariatur est ex ducimus reprehenderit.
+Odit commodi possimus nesciunt. Voluptatum recusandae repellendus natus qui sapiente sapiente accusamus vel facere. Harum praesentium quidem aut temporibus tempore natus.
+Est consequuntur esse explicabo commodi voluptas similique quidem maxime alias. Ipsam illum ipsa optio quisquam sapiente exercitationem eaque. Rem dignissimos dolorum voluptatibus nobis temporibus atque iste.
+Molestias temporibus repellat tempore numquam. Aut aliquam et omnis earum incidunt voluptatibus accusamus dignissimos. Nostrum praesentium nam fugit consequatur.
+Optio officiis laborum deleniti ratione cumque est esse. Est consequuntur quos eveniet quisquam minima vero rerum nulla modi. Totam maiores eos nam nihil.
+In laborum aliquid officiis minus iusto. Commodi nam ipsa minus harum exercitationem. Eveniet ipsam expedita.
+Necessitatibus iusto autem nesciunt nihil id saepe. Culpa nihil voluptatum perferendis adipisci modi tenetur voluptatum quas fugit. Blanditiis consectetur magnam eum voluptas nisi asperiores praesentium minus.
+Ipsum fuga molestias voluptatem. Consectetur expedita cum rem earum veniam iste inventore. Nemo fugiat aut asperiores similique dolore.
+Nisi nobis rerum dolor ullam dolor voluptatem laboriosam. Dignissimos odio nesciunt aperiam quis. At libero molestiae impedit fugit quasi tenetur accusantium libero eius.
+Sunt alias adipisci quis fuga. Iusto veniam earum voluptate occaecati dolor qui assumenda ratione. Quis accusantium eum dolor illo tempora culpa ab ipsa esse.
+Exercitationem id minima consequatur maxime optio illum quis. Quo molestias quis minus occaecati magni dolores ullam. Officiis tempora unde soluta quisquam molestias natus necessitatibus necessitatibus."
`;
exports[`lorem > 1337 > sentence > noArgs 1`] = `"Molestias quia dolorem incidunt atque."`;
exports[`lorem > 1337 > sentence > with length 1`] = `"Eius molestias quia dolorem incidunt atque esse accusantium ad consectetur."`;
+exports[`lorem > 1337 > sentence > with length range 1`] = `"Molestias quia dolorem incidunt atque esse accusantium ad consectetur totam provident eius."`;
+
exports[`lorem > 1337 > sentences > noArgs 1`] = `"Quia dolorem incidunt atque esse accusantium ad. Totam provident eius veniam. Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt."`;
exports[`lorem > 1337 > sentences > with length 1`] = `"Molestias quia dolorem incidunt atque. Accusantium ad consectetur totam provident eius. Voluptatibus tempora tempore aliquam vitae. Laboriosam quasi similique nemo sunt cum doloribus consequuntur reprehenderit. Quisquam quisquam minus alias corporis quam commodi suscipit cupiditate. Optio ipsam ratione molestiae labore pariatur est. Ducimus reprehenderit eos odit commodi possimus. Necessitatibus voluptatum recusandae repellendus. Qui sapiente sapiente accusamus vel facere blanditiis. Praesentium quidem aut temporibus tempore natus asperiores est."`;
+exports[`lorem > 1337 > sentences > with length range 1`] = `"Quia dolorem incidunt atque esse accusantium ad. Totam provident eius veniam. Tempora tempore aliquam vitae maxime laboriosam quasi similique nemo sunt. Doloribus consequuntur reprehenderit pariatur quisquam quisquam minus alias. Quam commodi suscipit cupiditate totam. Ipsam ratione molestiae labore pariatur est ex ducimus reprehenderit. Odit commodi possimus nesciunt. Voluptatum recusandae repellendus natus qui sapiente sapiente accusamus vel facere. Harum praesentium quidem aut temporibus tempore natus. Est consequuntur esse explicabo commodi voluptas similique quidem maxime alias. Ipsam illum ipsa optio quisquam sapiente exercitationem eaque. Rem dignissimos dolorum voluptatibus nobis temporibus atque iste."`;
+
exports[`lorem > 1337 > slug > noArgs 1`] = `"eius-molestias-quia"`;
exports[`lorem > 1337 > slug > with length 1`] = `"eius-molestias-quia-dolorem-incidunt-atque-esse-accusantium-ad-consectetur"`;
-exports[`lorem > 1337 > text > noArgs 1`] = `"molestias quia dolorem"`;
+exports[`lorem > 1337 > slug > with length range 1`] = `"molestias-quia-dolorem-incidunt-atque-esse-accusantium-ad-consectetur-totam-provident-eius"`;
+
+exports[`lorem > 1337 > text > noArgs 1`] = `"Dolorem incidunt atque esse. Ad consectetur totam. Eius veniam voluptatibus tempora tempore aliquam vitae. Laboriosam quasi similique nemo sunt cum doloribus consequuntur reprehenderit."`;
-exports[`lorem > 1337 > text > with length 1`] = `"molestias quia dolorem"`;
+exports[`lorem > 1337 > text > with length 1`] = `"Dolorem incidunt atque esse. Ad consectetur totam. Eius veniam voluptatibus tempora tempore aliquam vitae. Laboriosam quasi similique nemo sunt cum doloribus consequuntur reprehenderit."`;
+
+exports[`lorem > 1337 > text > with length range 1`] = `"Dolorem incidunt atque esse. Ad consectetur totam. Eius veniam voluptatibus tempora tempore aliquam vitae. Laboriosam quasi similique nemo sunt cum doloribus consequuntur reprehenderit."`;
exports[`lorem > 1337 > word > noArgs 1`] = `"eius"`;
@@ -223,3 +371,5 @@ exports[`lorem > 1337 > word > with options.strategy 1`] = `"a"`;
exports[`lorem > 1337 > words > noArgs 1`] = `"eius molestias quia"`;
exports[`lorem > 1337 > words > with length 1`] = `"eius molestias quia dolorem incidunt atque esse accusantium ad consectetur"`;
+
+exports[`lorem > 1337 > words > with length range 1`] = `"molestias quia dolorem incidunt atque esse accusantium ad consectetur totam provident eius"`;
diff --git a/test/__snapshots__/string.spec.ts.snap b/test/__snapshots__/string.spec.ts.snap
index bcac1178..339f7aec 100644
--- a/test/__snapshots__/string.spec.ts.snap
+++ b/test/__snapshots__/string.spec.ts.snap
@@ -22,6 +22,8 @@ exports[`string > 42 > alpha > with length parameter 4`] = `"rFhKH"`;
exports[`string > 42 > alpha > with length parameter 5`] = `"bcYLR"`;
+exports[`string > 42 > alpha > with length range 1`] = `"PXjMOFFixifdxT"`;
+
exports[`string > 42 > alpha > with length, casing and exclude 1`] = `"fwzcvwj"`;
exports[`string > 42 > alphanumeric > noArgs 1`] = `"n"`;
@@ -46,6 +48,8 @@ exports[`string > 42 > alphanumeric > with length parameter 4`] = `"kB8HE"`;
exports[`string > 42 > alphanumeric > with length parameter 5`] = `"13YIP"`;
+exports[`string > 42 > alphanumeric > with length range 1`] = `"NWbJMBB9r963sR"`;
+
exports[`string > 42 > alphanumeric > with length, casing and exclude 1`] = `"cvy4kvh"`;
exports[`string > 42 > hexadecimal > noArgs 1`] = `"0x8"`;
@@ -60,6 +64,8 @@ exports[`string > 42 > hexadecimal > with custom prefix 1`] = `"hex_8"`;
exports[`string > 42 > hexadecimal > with length 1`] = `"0x8BE4AB"`;
+exports[`string > 42 > hexadecimal > with length range 1`] = `"0xBE4ABdd39321aD"`;
+
exports[`string > 42 > hexadecimal > with length, casing and empty prefix 1`] = `"8be4abd"`;
exports[`string > 42 > numeric > noArgs 1`] = `"4"`;
@@ -80,6 +86,8 @@ exports[`string > 42 > numeric > with length parameter 4`] = `"46176"`;
exports[`string > 42 > numeric > with length parameter 5`] = `"10978"`;
+exports[`string > 42 > numeric > with length range 1`] = `"89177551410048"`;
+
exports[`string > 42 > numeric > with length, allowLeadingZeros and exclude 1`] = `"6890887"`;
exports[`string > 42 > sample > noArgs 1`] = `"Cky2eiXX/J"`;
@@ -94,6 +102,8 @@ exports[`string > 42 > sample > with length parameter 4`] = `"@X.b]"`;
exports[`string > 42 > sample > with length parameter 5`] = `"\\"&{dn"`;
+exports[`string > 42 > sample > with length range 1`] = `"ky2eiXX/J/*&Kq"`;
+
exports[`string > 42 > uuid 1`] = `"5cf2bc99-2721-407d-992b-a00fbdf302f2"`;
exports[`string > 42 > uuid 2`] = `"94980604-8962-404f-9371-c9368f970d9a"`;
@@ -126,6 +136,8 @@ exports[`string > 1211 > alpha > with length parameter 4`] = `"iKMQa"`;
exports[`string > 1211 > alpha > with length parameter 5`] = `"NIILR"`;
+exports[`string > 1211 > alpha > with length range 1`] = `"xUOlgZbIiJkNvsiKMQaN"`;
+
exports[`string > 1211 > alpha > with length, casing and exclude 1`] = `"yhywdcz"`;
exports[`string > 1211 > alphanumeric > noArgs 1`] = `"V"`;
@@ -150,6 +162,8 @@ exports[`string > 1211 > alphanumeric > with length parameter 4`] = `"aHKO0"`;
exports[`string > 1211 > alphanumeric > with length parameter 5`] = `"LFEJP"`;
+exports[`string > 1211 > alphanumeric > with length range 1`] = `"sTMd8Z2F9GdLqlaHKO0L"`;
+
exports[`string > 1211 > alphanumeric > with length, casing and exclude 1`] = `"yexv53z"`;
exports[`string > 1211 > hexadecimal > noArgs 1`] = `"0xE"`;
@@ -164,6 +178,8 @@ exports[`string > 1211 > hexadecimal > with custom prefix 1`] = `"hex_E"`;
exports[`string > 1211 > hexadecimal > with length 1`] = `"0xEaDB42"`;
+exports[`string > 1211 > hexadecimal > with length range 1`] = `"0xaDB42F0e3f4A973fAB0A"`;
+
exports[`string > 1211 > hexadecimal > with length, casing and empty prefix 1`] = `"eadb42f"`;
exports[`string > 1211 > numeric > noArgs 1`] = `"9"`;
@@ -184,6 +200,8 @@ exports[`string > 1211 > numeric > with length parameter 4`] = `"26780"`;
exports[`string > 1211 > numeric > with length parameter 5`] = `"76678"`;
+exports[`string > 1211 > numeric > with length range 1`] = `"58721906162743167807"`;
+
exports[`string > 1211 > numeric > with length, allowLeadingZeros and exclude 1`] = `"9798609"`;
exports[`string > 1211 > sample > noArgs 1`] = `"wKti5-}$_/"`;
@@ -198,6 +216,8 @@ exports[`string > 1211 > sample > with length parameter 4`] = `"0afl\\""`;
exports[`string > 1211 > sample > with length parameter 5`] = `"h^]dn"`;
+exports[`string > 1211 > sample > with length range 1`] = `"Kti5-}$_/\`4hHA0afl\\"h"`;
+
exports[`string > 1211 > uuid 1`] = `"e7ec32f0-a2a3-4c65-abbd-0caabde64dfd"`;
exports[`string > 1211 > uuid 2`] = `"f379e325-9f7c-4064-a086-f23942b68e5f"`;
@@ -230,6 +250,8 @@ exports[`string > 1337 > alpha > with length parameter 4`] = `"oMpfP"`;
exports[`string > 1337 > alpha > with length parameter 5`] = `"ueGsg"`;
+exports[`string > 1337 > alpha > with length range 1`] = `"DiloCxbqmAEn"`;
+
exports[`string > 1337 > alpha > with length, casing and exclude 1`] = `"eicdeih"`;
exports[`string > 1337 > alphanumeric > noArgs 1`] = `"g"`;
@@ -254,6 +276,8 @@ exports[`string > 1337 > alphanumeric > with length parameter 4`] = `"gJj7N"`;
exports[`string > 1337 > alphanumeric > with length parameter 5`] = `"n5Cm7"`;
+exports[`string > 1337 > alphanumeric > with length range 1`] = `"y9dhxs2jewAg"`;
+
exports[`string > 1337 > alphanumeric > with length, casing and exclude 1`] = `"ag45age"`;
exports[`string > 1337 > hexadecimal > noArgs 1`] = `"0x5"`;
@@ -268,6 +292,8 @@ exports[`string > 1337 > hexadecimal > with custom prefix 1`] = `"hex_5"`;
exports[`string > 1337 > hexadecimal > with length 1`] = `"0x5c346b"`;
+exports[`string > 1337 > hexadecimal > with length range 1`] = `"0xc346ba075bd5"`;
+
exports[`string > 1337 > hexadecimal > with length, casing and empty prefix 1`] = `"5c346ba"`;
exports[`string > 1337 > numeric > noArgs 1`] = `"3"`;
@@ -288,6 +314,8 @@ exports[`string > 1337 > numeric > with length parameter 4`] = `"37318"`;
exports[`string > 1337 > numeric > with length parameter 5`] = `"40631"`;
+exports[`string > 1337 > numeric > with length range 1`] = `"612254032552"`;
+
exports[`string > 1337 > numeric > with length, allowLeadingZeros and exclude 1`] = `"6706677"`;
exports[`string > 1337 > sample > noArgs 1`] = `"9U/4:SK$>6"`;
@@ -302,6 +330,8 @@ exports[`string > 1337 > sample > with length parameter 4`] = `":e=+k"`;
exports[`string > 1337 > sample > with length parameter 5`] = `"D)[B,"`;
+exports[`string > 1337 > sample > with length range 1`] = `"U/4:SK$>6QX9"`;
+
exports[`string > 1337 > uuid 1`] = `"48234870-5389-445f-8b41-c61a52bf27dc"`;
exports[`string > 1337 > uuid 2`] = `"cc057669-8c53-474d-a677-226d3e8ed92f"`;
diff --git a/test/__snapshots__/system.spec.ts.snap b/test/__snapshots__/system.spec.ts.snap
index ba863597..025ad494 100644
--- a/test/__snapshots__/system.spec.ts.snap
+++ b/test/__snapshots__/system.spec.ts.snap
@@ -28,6 +28,8 @@ exports[`system > 42 > fileName > noArgs 1`] = `"nonbeliever_stub.skt"`;
exports[`system > 42 > fileName > with extensionCount 1`] = `"nonbeliever_stub.skt.latex"`;
+exports[`system > 42 > fileName > with extensionCount range 1`] = `"crowded_fail_woefully.dra"`;
+
exports[`system > 42 > filePath 1`] = `"/opt/bin/crowded_fail_woefully.dra"`;
exports[`system > 42 > fileType 1`] = `"image"`;
@@ -106,6 +108,8 @@ exports[`system > 1211 > fileName > noArgs 1`] = `"although_instantly_though.ust
exports[`system > 1211 > fileName > with extensionCount 1`] = `"although_instantly_though.ustar.ecelp4800"`;
+exports[`system > 1211 > fileName > with extensionCount range 1`] = `"outside_even.xhvml.ttc"`;
+
exports[`system > 1211 > filePath 1`] = `"/var/log/outside_even.xhvml"`;
exports[`system > 1211 > fileType 1`] = `"x-shader"`;
@@ -184,6 +188,8 @@ exports[`system > 1337 > fileName > noArgs 1`] = `"although.chrt"`;
exports[`system > 1337 > fileName > with extensionCount 1`] = `"although.chrt.dpg"`;
+exports[`system > 1337 > fileName > with extensionCount range 1`] = `"yum_fast"`;
+
exports[`system > 1337 > filePath 1`] = `"/Library/yum_fast.aiff"`;
exports[`system > 1337 > fileType 1`] = `"font"`;
diff --git a/test/__snapshots__/word.spec.ts.snap b/test/__snapshots__/word.spec.ts.snap
index 247bb241..dabcfa9c 100644
--- a/test/__snapshots__/word.spec.ts.snap
+++ b/test/__snapshots__/word.spec.ts.snap
@@ -100,6 +100,12 @@ exports[`word > 42 > words > noArgs 1`] = `"nonbeliever stub"`;
exports[`word > 42 > words > with count = 10 1`] = `"eek loudly alibi abnormally aw great-grandmother nor without conjoin mind"`;
+exports[`word > 42 > words > with count = 20 1`] = `"eek loudly alibi abnormally aw great-grandmother nor without conjoin mind power till gadzooks yippee unbend gentle between offensive yowza hone"`;
+
+exports[`word > 42 > words > with options.count 1`] = `"eek loudly alibi abnormally aw great-grandmother nor without conjoin mind"`;
+
+exports[`word > 42 > words > with options.count range 1`] = `"nonbeliever stub across dreamily accurate chunder boo neuropathologist loftily through detoxify about when boohoo grasp busily to grouchy beneath"`;
+
exports[`word > 1211 > adjective > noArgs 1`] = `"vibrant"`;
exports[`word > 1211 > adjective > with length = 10 1`] = `"unpleasant"`;
@@ -200,6 +206,12 @@ exports[`word > 1211 > words > noArgs 1`] = `"although instantly though"`;
exports[`word > 1211 > words > with count = 10 1`] = `"youthfully woot speedily gracefully positively hurry aw content thin monster"`;
+exports[`word > 1211 > words > with count = 20 1`] = `"youthfully woot speedily gracefully positively hurry aw content thin monster cinch for moonscape motivate science consequently whether per upon but"`;
+
+exports[`word > 1211 > words > with options.count 1`] = `"youthfully woot speedily gracefully positively hurry aw content thin monster"`;
+
+exports[`word > 1211 > words > with options.count range 1`] = `"although instantly though which zowie salon except pumpkin frightened contain ark kindly next colorlessness out penalise internalize minus upgrade excitedly"`;
+
exports[`word > 1337 > adjective > noArgs 1`] = `"fair"`;
exports[`word > 1337 > adjective > with length = 10 1`] = `"enchanting"`;
@@ -299,3 +311,9 @@ exports[`word > 1337 > verb > with options.strategy 1`] = `"be"`;
exports[`word > 1337 > words > noArgs 1`] = `"although"`;
exports[`word > 1337 > words > with count = 10 1`] = `"nor brr instead anenst intently hard larder team vacation repentant"`;
+
+exports[`word > 1337 > words > with count = 20 1`] = `"nor brr instead anenst intently hard larder team vacation repentant compress the where duh ugh embryo lather rudely plaintiff sesame"`;
+
+exports[`word > 1337 > words > with options.count 1`] = `"nor brr instead anenst intently hard larder team vacation repentant"`;
+
+exports[`word > 1337 > words > with options.count range 1`] = `"although within along limply loyally elegantly implicate maggot underneath afraid nor abrogate oof within gosh against editorialize sag"`;
diff --git a/test/helpers.spec.ts b/test/helpers.spec.ts
index a8a89b3a..412dff30 100644
--- a/test/helpers.spec.ts
+++ b/test/helpers.spec.ts
@@ -102,6 +102,10 @@ describe('helpers', () => {
);
});
+ t.describe('rangeToNumber', (t) => {
+ t.it('with number', 5).it('with range', { min: 1, max: 10 });
+ });
+
t.describe('unique', (t) => {
t.it('with customMethod', customUniqueMethod)
.it('with customMethod and args', customUniqueMethod, ['prefix-1-'])
@@ -683,6 +687,18 @@ describe('helpers', () => {
});
});
+ describe('rangeToNumber()', () => {
+ it('should return a number', () => {
+ expect(faker.helpers.rangeToNumber(1)).toBe(1);
+ });
+
+ it('should return a number in a range', () => {
+ const actual = faker.helpers.rangeToNumber({ min: 1, max: 10 });
+ expect(actual).toBeGreaterThanOrEqual(1);
+ expect(actual).toBeLessThanOrEqual(10);
+ });
+ });
+
describe('unique()', () => {
it('should be possible to call a function with no arguments and return a result', () => {
const result = faker.helpers.unique(faker.internet.email);
diff --git a/test/lorem.spec.ts b/test/lorem.spec.ts
index f36f7e9b..e1d74a40 100644
--- a/test/lorem.spec.ts
+++ b/test/lorem.spec.ts
@@ -32,7 +32,9 @@ describe('lorem', () => {
'text',
'lines'
)((t) => {
- t.it('noArgs').it('with length', 10);
+ t.it('noArgs')
+ .it('with length', 10)
+ .it('with length range', { min: 10, max: 20 });
});
});
@@ -94,6 +96,22 @@ describe('lorem', () => {
}
}
);
+
+ it('should return a random amount of words', () => {
+ const actual = faker.lorem.words({ min: 10, max: 20 });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ const words = actual.split(' ');
+
+ expect(words.length).toBeGreaterThanOrEqual(10);
+ expect(words.length).toBeLessThanOrEqual(20);
+
+ for (const word of words) {
+ expect(faker.definitions.lorem.words).toContain(word);
+ }
+ });
});
describe('sentence()', () => {
@@ -119,6 +137,18 @@ describe('lorem', () => {
expect(words).toHaveLength(wordCount);
}
);
+
+ it('should return a sentence with a random amount of words', () => {
+ const actual = faker.lorem.sentence({ min: 10, max: 20 });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ const words = actual.split(' ');
+
+ expect(words.length).toBeGreaterThanOrEqual(10);
+ expect(words.length).toBeLessThanOrEqual(20);
+ });
});
describe('slug()', () => {
@@ -189,6 +219,18 @@ describe('lorem', () => {
}
}
);
+
+ it('should return a random amount of sentences', () => {
+ const actual = faker.lorem.sentences({ min: 10, max: 20 });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ const sentences = actual.split('. ');
+
+ expect(sentences.length).toBeGreaterThanOrEqual(10);
+ expect(sentences.length).toBeLessThanOrEqual(20);
+ });
});
describe('paragraph()', () => {
@@ -215,6 +257,18 @@ describe('lorem', () => {
expect(sentences.length).toBeLessThanOrEqual(sentenceCount + 3);
}
);
+
+ it('should return a paragraph with a random amount of sentences', () => {
+ const actual = faker.lorem.paragraph({ min: 10, max: 20 });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ const sentences = actual.split('. ');
+
+ expect(sentences.length).toBeGreaterThanOrEqual(10);
+ expect(sentences.length).toBeLessThanOrEqual(20);
+ });
});
describe('paragraphs()', () => {
@@ -253,6 +307,18 @@ describe('lorem', () => {
expect(paragraphs).toHaveLength(paragraphCount);
}
);
+
+ it('should return a random amount of paragraphs', () => {
+ const actual = faker.lorem.paragraphs({ min: 10, max: 20 });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ const paragraphs = actual.split('\n');
+
+ expect(paragraphs.length).toBeGreaterThanOrEqual(10);
+ expect(paragraphs.length).toBeLessThanOrEqual(20);
+ });
});
describe('text()', () => {
@@ -282,6 +348,18 @@ describe('lorem', () => {
expect(lines).toHaveLength(lineCount);
});
+
+ it('should return a random amount of lines', () => {
+ const actual = faker.lorem.lines({ min: 10, max: 20 });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ const lines = actual.split('\n');
+
+ expect(lines.length).toBeGreaterThanOrEqual(10);
+ expect(lines.length).toBeLessThanOrEqual(20);
+ });
});
}
});
diff --git a/test/string.spec.ts b/test/string.spec.ts
index 6d34f098..32dc2ddf 100644
--- a/test/string.spec.ts
+++ b/test/string.spec.ts
@@ -11,6 +11,7 @@ describe('string', () => {
t.it('noArgs')
.itRepeated('with length parameter', 5, 5)
.it('with length', { length: 6 })
+ .it('with length range', { length: { min: 10, max: 20 } })
.it('with casing = lower', { casing: 'lower' })
.it('with casing = upper', { casing: 'upper' })
.it('with casing = mixed', { casing: 'mixed' })
@@ -26,6 +27,7 @@ describe('string', () => {
t.it('noArgs')
.itRepeated('with length parameter', 5, 5)
.it('with length', { length: 6 })
+ .it('with length range', { length: { min: 10, max: 20 } })
.it('with casing = lower', { casing: 'lower' })
.it('with casing = upper', { casing: 'upper' })
.it('with casing = mixed', { casing: 'mixed' })
@@ -40,6 +42,7 @@ describe('string', () => {
t.describe('hexadecimal', (t) => {
t.it('noArgs')
.it('with length', { length: 6 })
+ .it('with length range', { length: { min: 10, max: 20 } })
.it('with casing = lower', { casing: 'lower' })
.it('with casing = upper', { casing: 'upper' })
.it('with casing = mixed', { casing: 'mixed' })
@@ -55,6 +58,7 @@ describe('string', () => {
t.it('noArgs')
.itRepeated('with length parameter', 5, 5)
.it('with length', { length: 6 })
+ .it('with length range', { length: { min: 10, max: 20 } })
.it('with allowLeadingZeros', { allowLeadingZeros: true })
.it('with exclude', { exclude: '12345' })
.it('with length, allowLeadingZeros and exclude', {
@@ -65,7 +69,9 @@ describe('string', () => {
});
t.describe('sample', (t) => {
- t.it('noArgs').itRepeated('with length parameter', 5, 5);
+ t.it('noArgs')
+ .itRepeated('with length parameter', 5, 5)
+ .it('with length range', { min: 10, max: 20 });
});
t.itRepeated('uuid', 5);
@@ -95,7 +101,7 @@ describe('string', () => {
expect(actual).toMatch(pattern);
});
- it('should generate many random letters', () => {
+ it('should generate 5 random letters', () => {
const actual = faker.string.alpha(5);
expect(actual).toHaveLength(5);
@@ -110,6 +116,16 @@ describe('string', () => {
}
);
+ it('should return a random amount of characters', () => {
+ const actual = faker.string.alpha({ length: { min: 10, max: 20 } });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ expect(actual.length).toBeGreaterThanOrEqual(10);
+ expect(actual.length).toBeLessThanOrEqual(20);
+ });
+
it('should be able to ban some characters', () => {
const actual = faker.string.alpha({
length: 5,
@@ -190,7 +206,7 @@ describe('string', () => {
expect(actual).toMatch(pattern);
});
- it('should generate many random characters', () => {
+ it('should generate 5 random characters', () => {
const actual = faker.string.alphanumeric(5);
expect(actual).toHaveLength(5);
@@ -205,6 +221,18 @@ describe('string', () => {
}
);
+ it('should return a random amount of characters', () => {
+ const actual = faker.string.alphanumeric({
+ length: { min: 10, max: 20 },
+ });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ expect(actual.length).toBeGreaterThanOrEqual(10);
+ expect(actual.length).toBeLessThanOrEqual(20);
+ });
+
it('should be able to ban all alphabetic characters', () => {
const exclude = 'abcdefghijklmnopqrstuvwxyz'.split('');
const alphaText = faker.string.alphanumeric({
@@ -325,6 +353,28 @@ describe('string', () => {
expect(hex).toMatch(/^[0-9a-f]*$/i);
expect(hex).toHaveLength(5);
});
+
+ it.each([0, -1, -100])(
+ 'should return the prefix when length is <= 0',
+ (length) => {
+ const actual = faker.string.hexadecimal({ length });
+
+ expect(actual).toBe('0x');
+ }
+ );
+
+ it('should return a random amount of characters', () => {
+ const actual = faker.string.hexadecimal({
+ length: { min: 10, max: 20 },
+ prefix: '',
+ });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ expect(actual.length).toBeGreaterThanOrEqual(10);
+ expect(actual.length).toBeLessThanOrEqual(20);
+ });
});
describe('numeric', () => {
@@ -345,6 +395,18 @@ describe('string', () => {
}
);
+ it('should return a random amount of characters', () => {
+ const actual = faker.string.numeric({
+ length: { min: 10, max: 20 },
+ });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ expect(actual.length).toBeGreaterThanOrEqual(10);
+ expect(actual.length).toBeLessThanOrEqual(20);
+ });
+
it('should return empty string with a length of 0', () => {
const actual = faker.string.numeric(0);
@@ -468,6 +530,16 @@ describe('string', () => {
const generatedString = faker.string.sample(length);
expect(generatedString).toHaveLength(length);
});
+
+ it('should return a random amount of characters', () => {
+ const actual = faker.string.sample({ min: 10, max: 20 });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ expect(actual.length).toBeGreaterThanOrEqual(10);
+ expect(actual.length).toBeLessThanOrEqual(20);
+ });
});
describe(`uuid`, () => {
diff --git a/test/system.spec.ts b/test/system.spec.ts
index 7d45f198..7a566b21 100644
--- a/test/system.spec.ts
+++ b/test/system.spec.ts
@@ -38,7 +38,11 @@ describe('system', () => {
);
t.describe('fileName', (t) => {
- t.it('noArgs').it('with extensionCount', { extensionCount: 2 });
+ t.it('noArgs')
+ .it('with extensionCount', { extensionCount: 2 })
+ .it('with extensionCount range', {
+ extensionCount: { min: 0, max: 2 },
+ });
});
t.describe('commonFileName', (t) => {
@@ -275,6 +279,20 @@ describe('system', () => {
expect(parts).length(extensionCount + 1);
}
);
+
+ it('should return a random amount of file extensions', () => {
+ const actual = faker.system.fileName({
+ extensionCount: { min: 2, max: 5 },
+ });
+
+ expect(actual).toBeTruthy();
+ expect(actual).toBeTypeOf('string');
+
+ const parts = actual.split('.');
+
+ expect(parts.length, actual).toBeGreaterThanOrEqual(3);
+ expect(parts.length, actual).toBeLessThanOrEqual(6);
+ });
});
describe('filePath()', () => {
@@ -421,7 +439,7 @@ describe('system', () => {
);
it('should return non-standard cron expressions', () => {
- const validResults = ['1', '2', '3', '5', '*', '@'];
+ const validResults = ['1', '2', '3', '4', '5', '*', '@'];
expect(
faker.system.cron({ includeNonStandard: true })[0],
'generated cron, string should contain non-standard cron labels'
diff --git a/test/word.spec.ts b/test/word.spec.ts
index 1300c00a..14ac3aae 100644
--- a/test/word.spec.ts
+++ b/test/word.spec.ts
@@ -31,8 +31,13 @@ describe('word', () => {
strategy: 'closest',
});
});
+
t.describe('words', (t) => {
- t.it('noArgs').it('with count = 10', 10);
+ t.it('noArgs')
+ .it('with count = 10', 10)
+ .it('with count = 20', 20)
+ .it('with options.count', { count: 10 })
+ .it('with options.count range', { count: { min: 18, max: 20 } });
});
});