3b8757caa557e0b4f2a3f74cab630e08c9525922
[scilab.git] / scilab / modules / scicos / tests / unit_tests / Solvers / DAE / DDaskrN_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 funcprot(prot);
24 Info = scicos_simulate(scs_m, list());
25
26 for i=1:3  // 'max step size' = 10^-i, precision
27
28     // Start by updating the clock block period (sampling)
29     Context.per = 5*10^-i;
30
31     // Modify solver + run DDaskr + save results
32     scs_m.props.tol(6) = 101;     // Solver
33     scicos_simulate(scs_m, Info, Context); // DDaskr
34     ddaskrval = res.values;       // Results
35
36     // Modify solver + run IDA + save results
37     scs_m.props.tol(6) = 100;     // Solver
38     scicos_simulate(scs_m, Info, Context); // IDA
39     idaval = res.values;          // Results
40
41     // Compare results
42     compa = abs(ddaskrval-idaval);
43
44     // Extract mean, standard deviation, maximum
45     mea = mean(compa);
46     [maxi, indexMaxi] = max(compa);
47     stdeviation = st_deviation(compa);
48
49     // Verifying closeness of the results
50     assert_checktrue(maxi <= 5*10^-(i+3));
51     assert_checktrue(mea <= 5*10^-(i+3));
52     assert_checktrue(stdeviation <= 5*10^-(i+3));
53
54 end