* Bug 16274 fixed: assert_checkequal() with Nan or void in containers
[scilab.git] / scilab / modules / development_tools / help / ru_RU / assert / assert_checkequal.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  *
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
8  *
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.
15  *
16  -->
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">
21     <refnamediv>
22         <refname>assert_checkequal</refname>
23         <refpurpose>Проверка того, что вычисленное и ожидаемое значения равны.</refpurpose>
24     </refnamediv>
25     <refsynopsisdiv>
26         <title>Синтаксис</title>
27         <synopsis>
28             assert_checkequal ( computed , expected )
29             flag = assert_checkequal ( computed , expected )
30             [flag,errmsg] = assert_checkequal ( computed , expected )
31         </synopsis>
32     </refsynopsisdiv>
33     <refsection>
34         <title>Аргументы</title>
35         <variablelist>
36             <varlistentry>
37                 <term>computed:</term>
38                 <listitem>
39                     <para> результат вычисления</para>
40                 </listitem>
41             </varlistentry>
42             <varlistentry>
43                 <term>expected :</term>
44                 <listitem>
45                     <para> ожидаемый результат</para>
46                 </listitem>
47             </varlistentry>
48             <varlistentry>
49                 <term>flag :</term>
50                 <listitem>
51                     <para>
52                       логическое значение, <literal>%t</literal>, если вычисление равно ожиданию,
53                       <literal>%f</literal>, если нет.
54                     </para>
55                 </listitem>
56             </varlistentry>
57             <varlistentry>
58                 <term>errmsg :</term>
59                 <listitem>
60                     <para>
61                         строковое значение, сообщение об ошибке. Если <literal>flag==%t</literal>,
62                         тогда <literal>errormsg==""</literal>.
63                         Если <literal>flag==%f</literal>, то <varname>errmsg</varname> содержит
64                         сообщение об ошибке.
65                     </para>
66                 </listitem>
67             </varlistentry>
68         </variablelist>
69     </refsection>
70     <refsection>
71         <title>Описание</title>
72         <para>
73             Работает молча, если <varname>computed</varname> и <varname>expected</varname> равны.
74         </para>
75         <para>
76             Для комплексных чисел: мы сравниваем сначала вещественные части. В случае равенства
77             мы сравниваем мнимые части.
78         </para>
79         <para>
80             Сопоставляемые значения <literal>Nan</literal> всегда считаются равными.
81         </para>
82         <para>
83             <literal>1/%z</literal> и <literal>2/(2*%z)</literal> не равны: для времени Scilab
84             не нормирует эквивалентные рациональные значения.
85         </para>
86         <para>
87             В контейнерах, сопоставляемые элементы <literal>void</literal> считаются равными.
88         </para>
89         <para>
90             Если сравнение показывает, что вычисленное равно ожидаемому, то
91             <itemizedlist>
92                 <listitem>
93                     <para>если выходная переменная <varname>errmsg</varname> не используется,
94                          ошибка генерируется,
95                     </para>
96                 </listitem>
97                 <listitem>
98                     <para>если выходная переменная <varname>errmsg</varname> используется,
99                         то ошибка не генерируется.
100                     </para>
101                 </listitem>
102             </itemizedlist>
103         </para>
104     </refsection>
105     <refsection>
106         <title>Примеры</title>
107         <para>
108             Тесты с успехом:
109         </para>
110         <programlisting role="example"><![CDATA[
111 assert_checkequal ( %T , %T );
112 [flag , errmsg] = assert_checkequal ( [%T %F], [%T %F] );
113 assert_checkequal ( %nan , %nan );
114 c = complex(1, %nan)
115 assert_checkequal (c, c);
116 assert_checkequal ( sparse(%nan) , sparse(%nan) );
117 assert_checkequal ( 2:$-1, 2:$-1 );
118
119 assert_checkequal ( ["abc" "" ascii([9 10 13])],  ["abc" "" ascii([9 10 13])] );
120 assert_checkequal ( [gdf(), gda()], [gdf(), gda()]);
121
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) );
126
127 sine = sin;
128 assert_checkequal ( sin, sine );
129 cosinus = cosd;
130 assert_checkequal ( cosinus, cosd );
131 assert_checkequal( iolib, iolib );
132    ]]></programlisting>
133         <para>
134             Тесты с провалом:
135         </para>
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 )
141
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) )
148
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 );
153    ]]></programlisting>
154    <screen><![CDATA[
155 ...
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 )
159
160 assert_checkequal: Assertion failed: expected(2)= F  while computed(2)= (void)
161
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 )
165
166 assert_checkequal: Assertion failed: expected(2)= Figure(uid:55)  while computed(2)= Axes(uid:85)
167
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 )
171
172 assert_checkequal: Assertion failed: expected= cosd()  while computed= sind()
173
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 )
177
178 assert_checkequal: Assertion failed: expected= lib@SCI\modules\core\macros\  while ..
179                                      computed= lib@SCI\modules\io\macros\
180 ]]></screen>
181     </refsection>
182     <refsection>
183         <title>Литература</title>
184         <para>"Automated Software Testing for Matlab", Steven Eddins, 2009</para>
185     </refsection>
186     <refsection>
187         <title>История</title>
188         <revhistory>
189             <revision>
190                 <revnumber>5.4.0</revnumber>
191                 <revdescription>Введена функция
192                 </revdescription>
193             </revision>
194             <revision>
195                 <revnumber>6.1.0</revnumber>
196                 <revdescription>
197                     <itemizedlist>
198                       <listitem>
199                           Сравнение двух неявных списков, Scilab-функций, Scilab-библиотек,
200                           встроенных функций или графических дескрипторов теперь всегда возможны и
201                           и должным образом выполняются.
202                       </listitem>
203                       <listitem>
204                           В двух списках теперь поддерживаются элементы void и Nan и соответствующие
205                           элементы рассматриваются как равные.
206                       </listitem>
207                       <listitem>
208                           Nan теперь поддерживаются во входных разрежённых матрицах и считаются
209                           равными.
210                       </listitem>
211                       <listitem>
212                           При провалах тестов, когда на входе массивы, сообщение теперь указывает
213                           индекс первого несовпадающего элемента.
214                       </listitem>
215                    </itemizedlist>
216                 </revdescription>
217             </revision>
218             <revision>
219                 <revnumber>6.1.1</revnumber>
220                 <revdescription>
221                     Соответствющие элементы NaN или void в простых или вложенных контейнерах теперь
222                     считаются равными.
223                 </revdescription>
224             </revision>
225         </revhistory>
226     </refsection>
227 </refentry>