Я пишу ссылочную реализацию для спецификации, которая занимается преобразованием данных.Изготовление контрольных тестовых файлов из тестовых примеров CPPunit для спецификации
У меня есть несколько тестовых случаи, которые проверяют, что данные получают вперед и назад трансформируется правильно, что-то вроде:
void test(){
int x[maxTest], y[maxTest], z[maxTest];
fillRandomly(x, testSize);
MyTransform trans = MyTransform(testsize);
trans.apply(x, testSize, y);
trans.remove(y, testSize, z);
for(int i = 0; i < testSize; i++)
CPPUNIT_ASSERT(abs(x[i] - z[i]) < 2);
}
типов данных дико варьируются между тестовыми и преобразованиями.
То, что я хотел бы создать, это файлы, содержащие вход/выход и, возможно, промежуточный этап, чтобы дальнейшие реализации могли проверять их результаты.
Есть несколько очевидных способов, которыми я могу выполнить эту работу (например, назовите выходной файл и удалите все в нем), но большинство из них подразумевает возврат к каждому тестовому сценарию и целую кучу скопирования.
Исходя из Java, интроспекция приходит в голову с помощью обертки для решения некоторых из моих проблем (автоматическое присвоение тестовых выходных файлов ...), но не все, и мне было рекомендовано держаться подальше от него на C++ (мнения приветствуются).
Общепринятые методы применения/удаления также кажутся хорошим кандидатом, но не будут такими легкими, поскольку нет абстрактного типа преобразования и небольшого соответствия между преобразованиями (может быть, это хороший вариант, поскольку не так много типов трансформирует).
Так что мне интересно, должен ли кто-нибудь из вас сделать что-то подобное и как вы его решили. Я не возражаю изменить все тестовые примеры, если это означает, что у меня может быть что-то чистое.
Любой вход был бы очень признателен.
Что вы хотите сохранить в этих файлах снова? –
Может ли использоваться [Boost.Serialization] (http://www.boost.org/libs/serialization/doc/index.html)? –
В файлах я хочу хранить входные данные и выходные данные каждого преобразования, в этом случае x и z. таким образом, когда это переопределяется, легко убедиться, что все правильно. Сериализация на самом деле не соответствует моим потребностям. –