Проверка того, что вычисленное и ожидаемое значения равны.
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 в простых или вложенных контейнерах теперь считаются равными. |