![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Operations on datasetBoost , Boost.Test , Data-driven test cases
|
![]() |
Tip |
---|---|
Все эти операторы являются ассоциативными, что позволяет их комбинировать без скобки. Однако до сих пор действует правило о приоритете операторов для языка. |
присоединение, обозначаемое+
, представляет собой операцию на двух наборах данныхdsa
иdsb
одного и того же типа подвижности и совместимости, в результате чегоконкатенацияэтих двух наборов данныхdsa
иdsb
слева на правый порядок символа+
:
dsa = (a_1, a_2, ... a_i) dsb = (b_1, b_2, ... b_j) dsa + dsb = (a_1, a_2, ... a_i, b_1, b_2, ... b_j)
Свойства следующие:
операция является ассоциативной, и можно объединить более двух наборов данных в одном выражении. Следующие соединения эквивалентны для любых наборов данныхdsa
,dsb
иdsc
dsa+dsc==dsa+dsa+dscdscdsc==dsa+dsb+dsb+dsb+[
![]() |
Warning |
---|---|
В выражении |
Код |
---|
ОпределениеBOOST_TEST_MODULE |
выход |
---|
>dataset_example62Запуск5тестированиеслучаи...128910***Ошибкиобнаружены |
Azip, обозначаемый^
, представляет собой операцию на двух наборах данныхdsa
иdsb
той же плотности и того же размера, в результате чего набор данных, в которомk
-й образецdsa
соединен с соответствующимk
-й образецdsb
. Полученный порядок выборки набора данных следует слева направо против символа^
.
dsa = (a_1, a_2, ... a_i) dsb = (b_1, b_2, ... b_i) dsa ^ dsb = ( (a_1, b_1), (a_2, b_2) ... (a_i, b_i) )
Свойства следующие:
[acсоциативный], иоперация является ассоциативной, и можно объединить более двух наборов данных в одном выражении;
( dsa ^ dsb ) ^ dsc == dsa ^ ( dsb ^ dsc ) == dsa ^ dsb ^ dsc[ORIG_END] -->
Конкретная обработка выполняется, еслиdsa
иdsb
имеют разные размеры. Правило выглядит следующим образом:
![]() |
Caution |
---|---|
Если операцияzipне поддерживается для компилятора, макрос |
Код |
---|
выход |
---|
>dataset_example61Running2testcases...1,qwerty2,asdfg***Noошибокобнаружен |
сетка, обозначаемая*
, представляет собой операцию на двух любых наборах данныхdsa
иdsb
, в результате чего каждый образецdsa
соединен с каждым образцомdsb
точно один раз. Полученный порядок выборки набора данных следует слева направо против символа*
. Самые правильные образцы набора данных сначала повторяются.
dsa = (a_1, a_2, ... a_i) dsb = (b_1, b_2, ... b_j) dsa * dsb = ((a_1, b_1), (a_1, b_2) ... (a_1, b_j), (a_2, b_1), ... (a_2, b_j) ... (a_i, b_1), ... (a_i, b_j))
Сетка, следовательно, подобна математическому понятию картезианского продукта..
Свойства следующие:
![]() |
Caution |
---|---|
Если работасеткине поддерживается для компилятора, макрос |
В следующем примере генератор случайных чисел является вторым набором данных. Его состояние оценивается 6 раз (3 раза для первогоxrange
- первого измерения - и дважды для второгоxrange
- второго измерения - к которому он пристегнут. Обратите внимание, что состояние случайного двигателя не копируется между двумя последовательными оценками первого измерения.
Код |
---|
]]]]][717 |
выход |
---|
Статья Operations on dataset раздела Boost.Test Data-driven test cases может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Data-driven test cases ::
реклама |