blob: 3df53e44b0c8da0176a93859a500149a8ad31c91 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include <yql/essentials/minikql/jsonpath/rewrapper/re.h>
#include <yql/essentials/minikql/jsonpath/rewrapper/proto/serialization.pb.h>
#include <library/cpp/testing/unittest/registar.h>
#include <library/cpp/regex/hyperscan/hyperscan.h>
namespace NReWrapper {
namespace NDispatcher {
Y_UNIT_TEST_SUITE(ReWrapperDispatcherTestHyperscan) {
Y_UNIT_TEST(LegacySerialization) {
unsigned int hyperscanFlags = 0;
hyperscanFlags |= HS_FLAG_UTF8;
if (NX86::HaveAVX2()) {
hyperscanFlags |= HS_CPU_FEATURES_AVX2;
}
auto database = ::NHyperscan::Compile("[0-9]+", hyperscanFlags);
auto string = ::NHyperscan::Serialize(database);
auto wrapper = Deserialize(string);
UNIT_ASSERT_VALUES_EQUAL(wrapper->Matches("123"), true);
UNIT_ASSERT_VALUES_EQUAL(wrapper->Matches("abc"), false);
}
Y_UNIT_TEST(Serialization) {
auto w1 = Compile("[0-9]+", 0, NReWrapper::TSerialization::kHyperscan);
auto string = w1->Serialize();
auto w2 = Deserialize(string);
UNIT_ASSERT_VALUES_EQUAL(w1->Matches("123"), true);
UNIT_ASSERT_VALUES_EQUAL(w1->Matches("abc"), false);
UNIT_ASSERT_VALUES_EQUAL(w2->Matches("123"), true);
UNIT_ASSERT_VALUES_EQUAL(w2->Matches("abc"), false);
}
}
}
}
|