UNPKG

re2-latin1

Version:

Bindings for RE2: fast, safe alternative to backtracking regular expression engines.

108 lines (80 loc) 2.18 kB
"use strict"; 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_searchInvalid(t) { "use strict"; var re = RE2(''); try { re.search({ toString() { throw "corner"; } }); t.test(false); // shouldn't be here } catch(e) { eval(t.TEST("e === 'corner'")); } }, 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")); }, function test_searchSticky(t) { "use strict"; var str = "Total is 42 units."; var re = new RE2(/\d+/y); var result = re.search(str); eval(t.TEST("result === -1")); re = new RE2("\\b[a-z]+\\b", "y"); result = re.search(str); eval(t.TEST("result === -1")); re = new RE2("\\b\\w+\\b", "y"); result = re.search(str); eval(t.TEST("result === 0")); re = new RE2("z", "gmy"); result = re.search(str); eval(t.TEST("result === -1")); } ]);