/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
base/base_tests/uni_string_dfa_test.cpp
90 строк
2 KB
Yuri Gorshenin
[search] Switch to DFAs in search index retrieval.
15 ноя 2016, 17:32
15 ноя 2016, 17:32
dbc93bd
Код
Авторство
О чём код?
#include "testing/testing.hpp" #include "base/dfa_helpers.hpp" #include "base/string_utils.hpp" #include "base/uni_string_dfa.hpp" using namespace strings; namespace { UNIT_TEST(UniStringDFA_Smoke) { { UniStringDFA dfa(""); auto it = dfa.Begin(); TEST(it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "a"); TEST(!it.Accepts(), ()); TEST(it.Rejects(), ()); } { UniStringDFA dfa("абв"); auto it = dfa.Begin(); TEST(!it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "а"); TEST(!it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "б"); TEST(!it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "в"); TEST(it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "г"); TEST(!it.Accepts(), ()); TEST(it.Rejects(), ()); } { UniStringDFA dfa("абв"); auto it = dfa.Begin(); TEST(!it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "а"); TEST(!it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "г"); TEST(!it.Accepts(), ()); TEST(it.Rejects(), ()); } } UNIT_TEST(UniStringDFA_Prefix) { { PrefixDFAModifier<UniStringDFA> dfa(UniStringDFA("abc")); auto it = dfa.Begin(); DFAMove(it, "ab"); TEST(!it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "c"); TEST(it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "d"); TEST(it.Accepts(), ()); TEST(!it.Rejects(), ()); DFAMove(it, "efghijk"); TEST(it.Accepts(), ()); TEST(!it.Rejects(), ()); } } } // namespace