Добавил:
itan_hunt
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab6 / unitTesting
.cpp#include "unitTesting.h"
TrialAhoCorasick::TrialAhoCorasick(pair<string,set<string>> input, map<string, set<lli>> output): input(input), output(output) {}
TrialJoker::TrialJoker(pair<string, string> input, set<lli> output): input(input), output(output) {}
void UnitTestingLabAhoCorasick::setUp() {
patternsNotEntryText = new TrialAhoCorasick(make_pair("abrakadabra", set<string>{"aba", "gra", "ar"}), {});
patternsIntersectEachOtherEntryText = new TrialAhoCorasick(make_pair("abrakadabra", set<string>{"brak", "raka"}), {{"brak", {2}}, {"raka", {3}}});
patternsNotIntersectEachOtherEntryText = new TrialAhoCorasick(make_pair("abrakadabra", set<string>{"br", "kad"}), {{"br", {2, 9}}, {"kad", {5}}});
patternsIncludedEachOtherEntryText = new TrialAhoCorasick(make_pair("abrakadabra", set<string>{"brakada", "rakada", "ada"}), {{"brakada", {2}}, {"rakada", {3}}, {"ada", {6}}});
templateWithoutJokerEntryText = new TrialJoker(make_pair("abrakadabra", "brak"), {2});
templateNotEntryText = new TrialJoker(make_pair("abrakadabra", "k?dobra"), {});
subPatternRepeatsInTemplateEntryText = new TrialJoker(make_pair("abrakadabra", "ab?????abr"), {1});
templateWithManySingleJokersEntryText = new TrialJoker(make_pair("abarakadabra", "a?a?a?"), {1, 3, 5});
}
void UnitTestingLabAhoCorasick::tearDown() {
delete patternsNotEntryText;
delete patternsIntersectEachOtherEntryText;
delete patternsNotIntersectEachOtherEntryText;
delete patternsIncludedEachOtherEntryText;
delete templateWithoutJokerEntryText;
delete templateNotEntryText;
delete subPatternRepeatsInTemplateEntryText;
delete templateWithManySingleJokersEntryText;
}
void UnitTestingLabAhoCorasick::testAhoCorasick() {
Trie trie1(patternsNotEntryText->input.second),
trie2(patternsIntersectEachOtherEntryText->input.second),
trie3(patternsNotIntersectEachOtherEntryText->input.second),
trie4(patternsIncludedEachOtherEntryText->input.second);
CPPUNIT_ASSERT(AHO_CORASICK_TEST(patternsNotEntryText, trie1));
CPPUNIT_ASSERT(AHO_CORASICK_TEST(patternsIntersectEachOtherEntryText, trie2));
CPPUNIT_ASSERT(AHO_CORASICK_TEST(patternsNotIntersectEachOtherEntryText, trie3));
CPPUNIT_ASSERT(AHO_CORASICK_TEST(patternsIncludedEachOtherEntryText, trie4));
}
void UnitTestingLabAhoCorasick::testAhoCorasickWithJoker() {
CPPUNIT_ASSERT(AHO_CORASICK_WITH_JOKER_TEST(templateWithoutJokerEntryText));
CPPUNIT_ASSERT(AHO_CORASICK_WITH_JOKER_TEST(templateNotEntryText));
CPPUNIT_ASSERT(AHO_CORASICK_WITH_JOKER_TEST(subPatternRepeatsInTemplateEntryText));
CPPUNIT_ASSERT(AHO_CORASICK_WITH_JOKER_TEST(templateWithManySingleJokersEntryText));
}
CppUnit::Test* UnitTestingLabAhoCorasick::suite() {
CppUnit::TestSuite *suite = new CppUnit::TestSuite();
suite->addTest(new CppUnit::TestCaller<UnitTestingLabAhoCorasick>("testAhoCorasick",
&UnitTestingLabAhoCorasick::testAhoCorasick));
suite->addTest(new CppUnit::TestCaller<UnitTestingLabAhoCorasick>("testAhoCorasickWithJoker",
&UnitTestingLabAhoCorasick::testAhoCorasickWithJoker));
return suite;
}
void runUnitTestingLabAhoCorasick() {
CppUnit::TextUi::TestRunner runner;
runner.addTest(UnitTestingLabAhoCorasick::suite());
runner.run();
}
Соседние файлы в папке lab6