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 >> |