138f2edd20fbc185b4726338009a269cecb05d9d
[scilab.git] / scilab / modules / scicos / tests / unit_tests / Solvers / DAE / DDaskrK_Platform.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- ENGLISH IMPOSED -->
9 //
10 // <-- XCOS TEST -->
11 //
12
13 ilib_verbose(0); //to remove ilib_* traces
14
15 // Import diagram
16 assert_checktrue(importXcosDiagram("SCI/modules/xcos/tests/unit_tests/Solvers/DAE/Platform.zcos"));
17
18 // Redefining messagebox() to avoid popup
19 prot = funcprot();
20 funcprot(0);
21 function messagebox(msg, msg_title)
22 endfunction
23 Info = scicos_simulate(scs_m, list());
24
25 for i=1:2  // 'max step size' = 10^-i, precision
26
27     // Start by updating the clock block period (sampling)
28     Context.per = 5*10^-i;
29
30     // Modify solver + run DDaskr + save results
31     scs_m.props.tol(6) = 102;     // Solver
32     scicos_simulate(scs_m, Info, Context); // DDaskr
33     ddaskrval = res.values;       // Results
34
35     // Modify solver + run IDA + save results
36     scs_m.props.tol(6) = 100;     // Solver
37     scicos_simulate(scs_m, Info, Context); // IDA
38     idaval = res.values;          // Results
39
40     // Compare results
41     compa = abs(ddaskrval-idaval);
42
43     // Extract mean, standard deviation, maximum
44     mea = mean(compa);
45     [maxi, indexMaxi] = max(compa);
46     stdeviation = st_deviation(compa);
47
48     // Verifying closeness of the results
49     assert_checktrue(maxi <= 5*10^-(i+2));
50     assert_checktrue(mea <= 5*10^-(i+2));
51     assert_checktrue(stdeviation <= 5*10^-(i+2));
52
53 end
54 funcprot(prot);