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 равны.

Если тип обоих входных аргументов равен 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\

История

VersionDescription
5.4.0 Введена функция
6.1.0
  • The comparison of two implicit lists, Scilab functions, Scilab libraries, built-in functions or graphic handles is now always possible and properly done.
  • In two lists, void and Nan elements are now supported, and matching ones are considered as equal.
  • Nan are now supported in input sparse matrices and are considered as equal.
  • When the test fails while inputs are arrays, the message now indicates the index of the first mismatching element.

Литература

"Automated Software Testing for Matlab", Steven Eddins, 2009

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:55:07 CET 2020