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

lab6 / unit_testing

.h
Скачиваний:
5
Добавлен:
05.02.2020
Размер:
1.49 Кб
Скачать
#ifndef UNIT_TESTING_H
#define UNIT_TESTING_H

#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<wstring, set<wstring>> input;
	map<wstring, set<lli>> output;

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

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

public:
	TrialJoker(pair<wstring, wstring> 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();
};

#endif
Соседние файлы в папке lab6