UNPKG

@cakoose/re2

Version:

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

102 lines (65 loc) 3.4 kB
"use strict"; var unit = require("heya-unit"); var RE2 = require("../re2"); // tests unit.add(module, [ // These tests are copied from MDN: // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test function test_testFromExec(t) { "use strict"; var re = new RE2("quick\\s(brown).+?(jumps)", "i"); eval(t.TEST("re.test('The Quick Brown Fox Jumps Over The Lazy Dog')")); eval(t.TEST("re.test('tHE qUICK bROWN fOX jUMPS oVER tHE lAZY dOG')")); eval(t.TEST("re.test('the quick brown fox jumps over the lazy dog')")); eval(t.TEST("re.test('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')")); eval(t.TEST("!re.test('THE KWIK BROWN FOX JUMPS OVER THE LAZY DOG')")); re = new RE2("ab*", "g"); eval(t.TEST("re.test('abbcdefabh')")); eval(t.TEST("!re.test('qwerty')")); re = new RE2("(hello \\S+)"); eval(t.TEST("re.test('This is a hello world!')")); eval(t.TEST("!re.test('This is a Hello world!')")); }, function test_testSimple(t) { "use strict"; var str = "abbcdefabh"; var re1 = new RE2("ab*", "g"); eval(t.TEST("re1.test(str)")); var re2 = new RE2("ab*"); eval(t.TEST("re2.test(str)")); var re3 = new RE2("abc"); eval(t.TEST("!re3.test(str)")); }, // Unicode tests function test_testUnicode(t) { "use strict"; var re = new RE2("охотник\\s(желает).+?(где)", "i"); eval(t.TEST("re.test('Каждый Охотник Желает Знать Где Сидит Фазан')")); eval(t.TEST("re.test('кАЖДЫЙ оХОТНИК жЕЛАЕТ зНАТЬ гДЕ сИДИТ фАЗАН')")); eval(t.TEST("re.test('каждый охотник желает знать где сидит фазан')")); eval(t.TEST("re.test('КАЖДЫЙ ОХОТНИК ЖЕЛАЕТ ЗНАТЬ ГДЕ СИДИТ ФАЗАН')")); eval(t.TEST("!re.test('Кажный Стрелок Хочет Найти Иде Прячется Птица')")); re = new RE2("аб*", "g"); eval(t.TEST("re.test('аббвгдеабё')")); eval(t.TEST("!re.test('йцукен')")); re = new RE2("(привет \\S+)"); eval(t.TEST("re.test('Это просто привет всем.')")); eval(t.TEST("!re.test('Это просто Привет всем.')")); }, // Buffer tests function test_testBuffer(t) { "use strict"; var re = new RE2("охотник\\s(желает).+?(где)", "i"); eval(t.TEST("re.test(new Buffer('Каждый Охотник Желает Знать Где Сидит Фазан'))")); eval(t.TEST("re.test(new Buffer('кАЖДЫЙ оХОТНИК жЕЛАЕТ зНАТЬ гДЕ сИДИТ фАЗАН'))")); eval(t.TEST("re.test(new Buffer('каждый охотник желает знать где сидит фазан'))")); eval(t.TEST("re.test(new Buffer('КАЖДЫЙ ОХОТНИК ЖЕЛАЕТ ЗНАТЬ ГДЕ СИДИТ ФАЗАН'))")); eval(t.TEST("!re.test(new Buffer('Кажный Стрелок Хочет Найти Иде Прячется Птица'))")); re = new RE2("аб*", "g"); eval(t.TEST("re.test(new Buffer('аббвгдеабё'))")); eval(t.TEST("!re.test(new Buffer('йцукен'))")); re = new RE2("(привет \\S+)"); eval(t.TEST("re.test(new Buffer('Это просто привет всем.'))")); eval(t.TEST("!re.test(new Buffer('Это просто Привет всем.'))")); } ]);