Scicos tests: relieving compilation
[scilab.git] / scilab / modules / scicos / tests / unit_tests / DDaskrN_Bouncing.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 // <-- XCOS TEST -->
10
11 // Import diagram
12 assert_checktrue(importXcosDiagram("SCI/modules/xcos/tests/unit_tests/DDaskr_Bouncing_test.zcos"));
13
14 // Redefining messagebox() to avoid popup
15 prot = funcprot();
16 funcprot(0);
17 function messagebox(msg, msg_title)
18  disp(msg);
19 endfunction
20 funcprot(prot);
21 Info = scicos_simulate(scs_m, list(), 'nw');
22
23 // looking for the CLOCK_f/EVTDLY_f to update period
24 for path_1=1:length(scs_m.objs)
25     if typeof(scs_m.objs(path_1))=="Block" & scs_m.objs(path_1).gui=="CLOCK_f" then
26         CLOCK_f_scs_m = scs_m.objs(path_1).model.rpar;
27         break;
28     end
29 end
30 for path_2=1:length(CLOCK_f_scs_m)
31     if typeof(CLOCK_f_scs_m.objs(path_2))=="Block" & CLOCK_f_scs_m.objs(path_2).gui=="EVTDLY_f" then
32         EVTDLY_f_blk = CLOCK_f_scs_m.objs(path_2);
33         break;
34     end
35 end
36
37 // Start by updating the clock block period (sampling)
38 scs_m.objs(path_1).model.rpar.objs(path_2).graphics.exprs = [string(5*(10^-3));"0"];
39
40 // Modify solver + run DDaskr + save results
41 scs_m.props.tol(6) = 101;      // Solver
42 //scs_m.props.tol(1) = 1.0e-10; // abstol
43 //scs_m.props.tol(2) = 1.0e-10; // reltol
44 scicos_simulate(scs_m, Info, 'nw');  // DDaskr
45 ddaskrval = res.values;         // Results
46 time = res.time;                // Time
47
48 // Modify solver + run IDA + save results
49 scs_m.props.tol(6) = 100;     // Solver
50 scicos_simulate(scs_m, Info, 'nw'); // IDA
51 idaval = res.values;          // Results
52
53 // Compare results
54 compa = abs(ddaskrval-idaval);
55
56 // Extract mean, standard deviation, maximum
57 mea = mean(compa);
58 [maxi, indexMaxi] = max(compa);
59 stdeviation = st_deviation(compa);
60
61 // Verifying closeness of the results
62 assert_checktrue(maxi <= 10^-(12));
63 assert_checktrue(mea <= 10^-(12));
64 assert_checktrue(stdeviation <= 10^-(12));