2 тестирование RDF хранилища. - Sergey303/RDF-Store-Polar-DB-Lab GitHub Wiki
Проект создаёт библиотеку. Например, 2.1) загрузка потока триплетов порядка миллиарда из транслируемого файла с данными, Тестируется метод загрузки из потока void Build(IEnumerable triplets). Необходим интерфейс IStore с тестируемым методом. Для проведения тестирования используется как параметр объект этого интерфейса void Test_Build(IStore store).Создаются несколько тестовых потоков, для каждого замеряется производительность и захватываемая память для каждого. По окончании тестов характеристики записываются в файл и выводятся в консоль. Путь к файлу с результатами -возможно ещё один параметра функции теста void Test_Build(IStore store, string output path = null).
Использование:
В отдельном проекте, в котором реализовано хранилище, подключается эта библиотека, к классу хранилища RDF Store добавляется интерфейс IStore, и реализуется метод Build, который только вызывает реализованный тестируемый метод. В том же отдельном проекте вызывается метод тестирования в Program.Main(...) {... Test_Build(конкретный Store) ...} Либо комплексный метод тестирования Test(...), который вызывает отдельные тесты в правильном порядке: Test_Build(), Test_Search(), Test_Add(), Test_Search(),...
В основе тестирующих методов может лежать статический метод Perfomance.Compute(Action method, bool write in file), который мы как-то сделали и использовали.
Что бы сгенерировать поток в начале будем использовать трансляцию строки с частичным покрытием правил формата. Затем для более корректных измерений Build и других функций необходим транслятор всего формата.
Для тестирования других методов RDF хранилища требуется что бы оно содержало тестовые наборы данных, значит их нужно загрузить одним из методов загрузки, который можно реализовать в этом же проекте.