@@ -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