Проверка того, что вычисленное и ожидаемое значения равны.
assert_checkequal ( computed , expected ) flag = assert_checkequal ( computed , expected ) [flag,errmsg] = assert_checkequal ( computed , expected )
результат вычисления
ожидаемый результат
логическое значение, %t
, если вычисление равно ожиданию,
%f
, если нет.
строковое значение, сообщение об ошибке. Если 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
Version | Description |
5.4.0 | Введена функция |
6.1.0 |
|
6.1.1 | Соответствющие элементы NaN или void в простых или вложенных контейнерах теперь считаются равными. |