Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Development tools > assert > assert_checkequal

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
  • Сравнение двух неявных списков, Scilab-функций, Scilab-библиотек, встроенных функций или графических дескрипторов теперь всегда возможны и и должным образом выполняются.
  • В двух списках теперь поддерживаются элементы void и Nan и соответствующие элементы рассматриваются как равные.
  • Nan теперь поддерживаются во входных разрежённых матрицах и считаются равными.
  • При провалах тестов, когда на входе массивы, сообщение теперь указывает индекс первого несовпадающего элемента.
6.1.1 Соответствющие элементы NaN или void в простых или вложенных контейнерах теперь считаются равными.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Jul 20 11:21:29 CEST 2021