Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab6 / unitTesting

.h
Скачиваний:
5
Добавлен:
05.02.2020
Размер:
1.44 Кб
Скачать
#pragma once

#include "Aho-Corasick.h"

#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/ui/text/TestRunner.h>
#include <string>
#include <vector>
#include <utility>

using namespace std;

#define AHO_CORASICK_TEST(test, trie) AhoCorasick(test->input.first, trie) == test->output
#define AHO_CORASICK_WITH_JOKER_TEST(test) AhoCorasickWithJoker(test->input.first, test->input.second, '?') == test->output 

void runUnitTestingLabAhoCorasick();

struct TrialAhoCorasick {
	pair<string, set<string>> input;
	map<string, set<lli>> output;

public:
	TrialAhoCorasick(pair<string, set<string>> input, map<string, set<lli>> output);
};

struct TrialJoker {
	pair<string, string> input;
	set<lli> output;

public:
	TrialJoker(pair<string, string> input, set<lli> output);
};

struct UnitTestingLabAhoCorasick: public CppUnit::TestFixture {
	TrialAhoCorasick *patternsNotEntryText,
					 *patternsIntersectEachOtherEntryText,
					 *patternsNotIntersectEachOtherEntryText,
					 *patternsIncludedEachOtherEntryText;

	TrialJoker *templateWithoutJokerEntryText,
			   *templateNotEntryText,
			   *subPatternRepeatsInTemplateEntryText,
			   *templateWithManySingleJokersEntryText;

	static CppUnit::Test *suite();
	void setUp();
	void tearDown();
	void testAhoCorasick();
	void testAhoCorasickWithJoker();
};
Соседние файлы в папке lab6