@cakoose/re2
Version:
Bindings for RE2: fast, safe alternative to backtracking regular expression engines.
75 lines (54 loc) • 1.49 kB
JavaScript
;
var unit = require("heya-unit");
var RE2 = require("../re2");
// tests
unit.add(module, [
function test_search(t) {
"use strict";
var str = "Total is 42 units.";
var re = new RE2(/\d+/i);
var result = re.search(str);
eval(t.TEST("result === 9"));
re = new RE2("\\b[a-z]+\\b");
result = re.search(str);
eval(t.TEST("result === 6"));
re = new RE2("\\b\\w+\\b");
result = re.search(str);
eval(t.TEST("result === 0"));
re = new RE2("z", "gm");
result = re.search(str);
eval(t.TEST("result === -1"));
},
function test_searchUnicode(t) {
"use strict";
var str = "Всего 42 штуки.";
var re = new RE2(/\d+/i);
var result = re.search(str);
eval(t.TEST("result === 6"));
re = new RE2("\\s[а-я]+");
result = re.search(str);
eval(t.TEST("result === 8"));
re = new RE2("[а-яА-Я]+");
result = re.search(str);
eval(t.TEST("result === 0"));
re = new RE2("z", "gm");
result = re.search(str);
eval(t.TEST("result === -1"));
},
function test_searchBuffer(t) {
"use strict";
var buf = new Buffer("Всего 42 штуки.");
var re = new RE2(/\d+/i);
var result = re.search(buf);
eval(t.TEST("result === 11"));
re = new RE2("\\s[а-я]+");
result = re.search(buf);
eval(t.TEST("result === 13"));
re = new RE2("[а-яА-Я]+");
result = re.search(buf);
eval(t.TEST("result === 0"));
re = new RE2("z", "gm");
result = re.search(buf);
eval(t.TEST("result === -1"));
}
]);