Проверка того, что вычисленное и ожидаемое значения равны.
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
равны.
Если тип обоих входных аргументов равен 1 (т.е. матрица вещественных или комплексных чисел), то мы проверяем, что не-Nan значения равны (совпадающие Nan-значения считаются равными).
Для комплексных чисел: мы сравниваем сначала вещественные части. В случае равенства мы сравниваем мнимые части.
1/%z
и 2/(2*%z)
не равны: для времени Scilab
не нормирует эквивалентные рациональные значения.
В двух списках совпадающие пустые элементы считаются равными.
Если сравнение показывает, что вычисленное равно ожидаемому, то
если выходная переменная 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\
Version | Description |
5.4.0 | Введена функция |
6.1.0 |
|
"Automated Software Testing for Matlab", Steven Eddins, 2009