assert_checkequal
Проверка того, что вычисленное и ожидаемое значения равны.
Синтаксис
assert_checkequal ( computed , expected ) flag = assert_checkequal ( computed , expected ) [flag,errmsg] = assert_checkequal ( computed , expected )
Аргументы
- computed:
результат вычисления
- expected :
ожидаемый результат
- flag :
логическое значение,
%t
, если вычисление равно ожиданию,%f
, если нет.- errmsg :
строковое значение, сообщение об ошибке. Если
flag==%t
, тогдаerrormsg==""
. Еслиflag==%f
, тоerrmsg
содержит сообщение об ошибке.
Описание
Работает молча, если computed
и expected
равны.
Для комплексных чисел: мы сравниваем сначала вещественные части. В случае равенства мы сравниваем мнимые части.
Сопоставляемые значения Nan
всегда считаются равными.
1/%z
и 2/(2*%z)
не равны: для времени Scilab
не нормирует эквивалентные рациональные значения.
В контейнерах, сопоставляемые элементы void
считаются равными.
Если сравнение показывает, что вычисленное равно ожидаемому, то
если выходная переменная
errmsg
не используется, ошибка генерируется,если выходная переменная
errmsg
используется, то ошибка не генерируется.
Примеры
Тесты с успехом:
assert_checkequal ( %T , %T ); [flag , errmsg] = assert_checkequal ( [%T %F], [%T %F] ); assert_checkequal ( %nan , %nan ); c = complex(1, %nan) assert_checkequal (c, c); assert_checkequal ( sparse(%nan) , sparse(%nan) ); assert_checkequal ( 2:$-1, 2:$-1 ); assert_checkequal ( ["abc" "" ascii([9 10 13])], ["abc" "" ascii([9 10 13])] ); assert_checkequal ( [gdf(), gda()], [gdf(), gda()]); assert_checkequal ( list() , list() ); assert_checkequal ( list(1,,3), list(1,,3) ); assert_checkequal ( list(1,,list(,4)), list(1,,list(,4)) ); assert_checkequal ( list(%nan,,7) , list(%nan,,7) ); sine = sin; assert_checkequal ( sin, sine ); cosinus = cosd; assert_checkequal ( cosinus, cosd ); assert_checkequal( iolib, iolib );
Тесты с провалом:
assert_checkequal ( %F , %T ); flag = assert_checkequal ( %F , %T ); // No error produced : [flag , errmsg] = assert_checkequal ( %F , %T ) assert_checkequal ( [1 2], [3 4] ) assert_checkequal ( 1 , [2 3] ) assert_checkequal ( 1 , "b" ) assert_checkequal ( "b", "B" ) assert_checkequal ( 1+%s, 1+%z ) assert_checkequal ( 1/%s, 2/(2*%s) ) assert_checkequal (list(2,,7), list(2,%F,8)); assert_checkequal ( [gdf(), gda()], [gdf(), gdf()] ); assert_checkequal ( sind, cosd ); assert_checkequal ( iolib, corelib );
... --> assert_checkequal (list(2,,7), list(2,%F,8)); at line 22 of function assert_generror ( SCI\modules\..\assert_generror.sci line 33 ) at line 178 of function assert_checkequal ( SCI\modules\..\assert_checkequal.sci line 190 ) assert_checkequal: Assertion failed: expected(2)= F while computed(2)= (void) --> assert_checkequal ( [gdf(), gda()], [gdf(), gdf()] ); at line 22 of function assert_generror ( SCI\modules\..\assert_generror.sci line 33 ) at line 178 of function assert_checkequal ( SCI\modules\..\assert_checkequal.sci line 190 ) assert_checkequal: Assertion failed: expected(2)= Figure(uid:55) while computed(2)= Axes(uid:85) --> assert_checkequal ( sind, cosd ); at line 22 of function assert_generror ( SCI\modules\..\assert_generror.sci line 33 ) at line 82 of function assert_checkequal ( SCI\modules\..\assert_checkequal.sci line 94 ) assert_checkequal: Assertion failed: expected= cosd() while computed= sind() --> assert_checkequal ( iolib, corelib ); at line 22 of function assert_generror ( SCI\modules\..\assert_generror.sci line 33 ) at line 95 of function assert_checkequal ( SCI\modules\..\assert_checkequal.sci line 107 ) assert_checkequal: Assertion failed: expected= lib@SCI\modules\core\macros\ while .. computed= lib@SCI\modules\io\macros\
Литература
"Automated Software Testing for Matlab", Steven Eddins, 2009
История
Версия | Описание |
5.4.0 | Введена функция |
6.1.0 |
|
6.1.1 | Соответствющие элементы NaN или void в простых или вложенных контейнерах теперь считаются равными. |
Report an issue | ||
<< assert_checkalmostequal | assert | assert_checkerror >> |