![]() |
![]() ![]() ![]() ![]() |
![]() |
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 ::
реклама |