1 <?xml version="1.0" encoding="UTF-8"?>
4 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
5 * Copyright (C) 2010 - 2011 - DIGITEO - Michael Baudin
6 * Copyright (C) 2012 - 2016 - Scilab Enterprises
7 * Copyright (C) 2019 - Samuel GOUGEON
9 * This file is hereby licensed under the terms of the GNU GPL v2.0,
10 * pursuant to article 5.3.4 of the CeCILL v.2.1.
11 * This file was originally licensed under the terms of the CeCILL v2.1,
12 * and continues to be available under such terms.
13 * For more information, see the COPYING file which you should have received
14 * along with this program.
17 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
18 xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml"
19 xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
20 xmlns:scilab="http://www.scilab.org" xml:id="assert_checkequal" xml:lang="ru">
22 <refname>assert_checkequal</refname>
23 <refpurpose>Проверка того, что вычисленное и ожидаемое значения равны.</refpurpose>
26 <title>Синтаксис</title>
28 assert_checkequal ( computed , expected )
29 flag = assert_checkequal ( computed , expected )
30 [flag,errmsg] = assert_checkequal ( computed , expected )
34 <title>Аргументы</title>
37 <term>computed:</term>
39 <para> результат вычисления</para>
43 <term>expected :</term>
45 <para> ожидаемый результат</para>
52 логическое значение, <literal>%t</literal>, если вычисление равно ожиданию,
53 <literal>%f</literal>, если нет.
61 строковое значение, сообщение об ошибке. Если <literal>flag==%t</literal>,
62 тогда <literal>errormsg==""</literal>.
63 Если <literal>flag==%f</literal>, то <varname>errmsg</varname> содержит
71 <title>Описание</title>
73 Работает молча, если <varname>computed</varname> и <varname>expected</varname> равны.
76 Для комплексных чисел: мы сравниваем сначала вещественные части. В случае равенства
77 мы сравниваем мнимые части.
80 Сопоставляемые значения <literal>Nan</literal> всегда считаются равными.
83 <literal>1/%z</literal> и <literal>2/(2*%z)</literal> не равны: для времени Scilab
84 не нормирует эквивалентные рациональные значения.
87 В контейнерах, сопоставляемые элементы <literal>void</literal> считаются равными.
90 Если сравнение показывает, что вычисленное равно ожидаемому, то
93 <para>если выходная переменная <varname>errmsg</varname> не используется,
98 <para>если выходная переменная <varname>errmsg</varname> используется,
99 то ошибка не генерируется.
106 <title>Примеры</title>
110 <programlisting role="example"><![CDATA[
111 assert_checkequal ( %T , %T );
112 [flag , errmsg] = assert_checkequal ( [%T %F], [%T %F] );
113 assert_checkequal ( %nan , %nan );
115 assert_checkequal (c, c);
116 assert_checkequal ( sparse(%nan) , sparse(%nan) );
117 assert_checkequal ( 2:$-1, 2:$-1 );
119 assert_checkequal ( ["abc" "" ascii([9 10 13])], ["abc" "" ascii([9 10 13])] );
120 assert_checkequal ( [gdf(), gda()], [gdf(), gda()]);
122 assert_checkequal ( list() , list() );
123 assert_checkequal ( list(1,,3), list(1,,3) );
124 assert_checkequal ( list(1,,list(,4)), list(1,,list(,4)) );
125 assert_checkequal ( list(%nan,,7) , list(%nan,,7) );
128 assert_checkequal ( sin, sine );
130 assert_checkequal ( cosinus, cosd );
131 assert_checkequal( iolib, iolib );
136 <programlisting role="example"><![CDATA[
137 assert_checkequal ( %F , %T );
138 flag = assert_checkequal ( %F , %T );
139 // No error produced :
140 [flag , errmsg] = assert_checkequal ( %F , %T )
142 assert_checkequal ( [1 2], [3 4] )
143 assert_checkequal ( 1 , [2 3] )
144 assert_checkequal ( 1 , "b" )
145 assert_checkequal ( "b", "B" )
146 assert_checkequal ( 1+%s, 1+%z )
147 assert_checkequal ( 1/%s, 2/(2*%s) )
149 assert_checkequal (list(2,,7), list(2,%F,8));
150 assert_checkequal ( [gdf(), gda()], [gdf(), gdf()] );
151 assert_checkequal ( sind, cosd );
152 assert_checkequal ( iolib, corelib );
156 --> assert_checkequal (list(2,,7), list(2,%F,8));
157 at line 22 of function assert_generror ( SCI\modules\..\assert_generror.sci line 33 )
158 at line 178 of function assert_checkequal ( SCI\modules\..\assert_checkequal.sci line 190 )
160 assert_checkequal: Assertion failed: expected(2)= F while computed(2)= (void)
162 --> assert_checkequal ( [gdf(), gda()], [gdf(), gdf()] );
163 at line 22 of function assert_generror ( SCI\modules\..\assert_generror.sci line 33 )
164 at line 178 of function assert_checkequal ( SCI\modules\..\assert_checkequal.sci line 190 )
166 assert_checkequal: Assertion failed: expected(2)= Figure(uid:55) while computed(2)= Axes(uid:85)
168 --> assert_checkequal ( sind, cosd );
169 at line 22 of function assert_generror ( SCI\modules\..\assert_generror.sci line 33 )
170 at line 82 of function assert_checkequal ( SCI\modules\..\assert_checkequal.sci line 94 )
172 assert_checkequal: Assertion failed: expected= cosd() while computed= sind()
174 --> assert_checkequal ( iolib, corelib );
175 at line 22 of function assert_generror ( SCI\modules\..\assert_generror.sci line 33 )
176 at line 95 of function assert_checkequal ( SCI\modules\..\assert_checkequal.sci line 107 )
178 assert_checkequal: Assertion failed: expected= lib@SCI\modules\core\macros\ while ..
179 computed= lib@SCI\modules\io\macros\
183 <title>Литература</title>
184 <para>"Automated Software Testing for Matlab", Steven Eddins, 2009</para>
187 <title>История</title>
190 <revnumber>5.4.0</revnumber>
191 <revdescription>Введена функция
195 <revnumber>6.1.0</revnumber>
199 Сравнение двух неявных списков, Scilab-функций, Scilab-библиотек,
200 встроенных функций или графических дескрипторов теперь всегда возможны и
201 и должным образом выполняются.
204 В двух списках теперь поддерживаются элементы void и Nan и соответствующие
205 элементы рассматриваются как равные.
208 Nan теперь поддерживаются во входных разрежённых матрицах и считаются
212 При провалах тестов, когда на входе массивы, сообщение теперь указывает
213 индекс первого несовпадающего элемента.
219 <revnumber>6.1.1</revnumber>
221 Соответствющие элементы NaN или void в простых или вложенных контейнерах теперь