A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/fent/randexp.js/commit/f571b6d below:

use `defaultRange` for negated sets (fixes #25) · fent/randexp.js@f571b6d · GitHub

@@ -2,35 +2,61 @@ const assert = require('assert');

2 2

const RandExp = require('..');

3 3 4 4 5 +

function genMaxChar(re) {

6 +

var output = re.gen();

7 +

var maxChar = 0;

8 +

for (var i = 0; i < output.length; i++) {

9 +

maxChar = Math.max(maxChar, output.charCodeAt(i));

10 +

}

11 +

return maxChar;

12 +

}

13 + 5 14

describe('Modify Range', () => {

6 -

it('Should generate unicode when we expand its range', () => {

7 -

var re = new RandExp(/.{100}/);

8 -

re.defaultRange.subtract(0, 126);

9 -

re.defaultRange.add(127, 65535);

10 -

var output = re.gen();

11 -

var maxChar = 0;

12 -

for (var i = 0; i < output.length; i++) {

13 -

maxChar = Math.max(maxChar, output.charCodeAt(i));

14 -

}

15 -

assert.ok(maxChar > 127, 'non-ascii characters should have been generated');

15 +

describe('Globally from prototpye', () => {

16 +

it('Should generate unicode when we expand its range', () => {

17 +

RandExp.prototype.defaultRange.subtract(0, 126);

18 +

RandExp.prototype.defaultRange.add(127, 65535);

19 +

var re = new RandExp(/.{100}/);

20 +

RandExp.prototype.defaultRange.add(0, 126);

21 +

RandExp.prototype.defaultRange.subtract(127, 65535);

22 +

var maxChar = genMaxChar(re);

23 +

assert.ok(maxChar >= 127, 'non-ascii characters should have been generated');

24 +

});

25 +

});

26 + 27 +

describe('From a regexp instance', () => {

28 +

it('Should generate unicode when we expand its range', () => {

29 +

var r = /[\d\D]{100}/;

30 +

r.defaultRange = RandExp.prototype.defaultRange.clone();

31 +

r.defaultRange.subtract(0, 126);

32 +

r.defaultRange.add(127, 65535);

33 +

var re = new RandExp(r);

34 +

var maxChar = genMaxChar(re);

35 +

assert.ok(maxChar >= 127, 'non-ascii characters should have been generated');

36 +

});

37 +

});

16 38 17 -

var r = /.{100}/;

18 -

r.defaultRange = RandExp.prototype.defaultRange.clone();

19 -

r.defaultRange.subtract(0, 126);

20 -

r.defaultRange.add(127, 65535);

21 -

output = RandExp.randexp(r);

22 -

maxChar = 0;

23 -

for (i = 0; i < output.length; i++) {

24 -

maxChar = Math.max(maxChar, output.charCodeAt(i));

25 -

}

26 -

assert.ok(maxChar > 127, 'non-ascii characters should have been generated');

39 +

describe('From a randexp instance', () => {

40 +

it('Should generate unicode when we expand its range', () => {

41 +

var re = new RandExp(/[\s\S]{100}/);

42 +

var maxChar = genMaxChar(re);

43 +

assert.ok(maxChar < 127, 'ascii characters should have been generated');

44 +

re.defaultRange.subtract(0, 126);

45 +

re.defaultRange.add(127, 65535);

46 +

maxChar = genMaxChar(re);

47 +

assert.ok(maxChar >= 127, 'non-ascii characters should have been generated');

48 +

});

27 49 28 -

re = new RandExp(/.{100}/);

29 -

output = re.gen();

30 -

maxChar = 0;

31 -

for (i = 0; i < output.length; i++) {

32 -

maxChar = Math.max(maxChar, output.charCodeAt(i));

33 -

}

34 -

assert.ok(maxChar <= 127, 'ascii characters should have been generated');

50 +

describe('With a negated set', () => {

51 +

it('Should still generate only ascii', () => {

52 +

var re = new RandExp(/[^a]{100}/);

53 +

var maxChar = genMaxChar(re);

54 +

assert.ok(maxChar < 127, 'ascii characters should have been generated');

55 +

re.defaultRange.subtract(0, 126);

56 +

re.defaultRange.add(127, 65535);

57 +

maxChar = genMaxChar(re);

58 +

assert.ok(maxChar >= 127, 'non-ascii characters should have been generated');

59 +

});

60 +

});

35 61

});

36 62

});


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4