Scicos tests: relieving compilation
[scilab.git] / scilab / modules / scicos / tests / unit_tests / ImpRK.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - 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/RK_test.zcos"));
13 Info = scicos_simulate(scs_m, list(), 'nw');
14
15 for i=2:4  // 'max step size' = 10^-i, precision
16
17  // Start by updating the clock block period (sampling)
18  scs_m.objs(7).model.rpar(1) = 5*(10^-i);
19  scs_m.objs(8).model.rpar(1) = 5*(10^-i);
20
21  // Modify solver and 'max step size' + run ImpRK + save results
22  scs_m.props.tol(7) = 5*(10^-i); scs_m.props.tol(6) = 7;         // 'max step size' + solver
23  scs_m.props.tol(2) = 1.0e-12;                                   // reltol
24  try scicos_simulate(scs_m, Info, 'nw'); catch disp(lasterror()); end  // ImpRK
25  rkval = res.values;   // Results
26  time = res.time;      // Time
27
28  // Modify solver and reltol + run CVode + save results
29  scs_m.props.tol(6) = 4; scs_m.props.tol(2) = 1.0e-15;
30  try scicos_simulate(scs_m, Info, 'nw'); catch disp(lasterror()); end
31  cvval = res.values;
32
33  // Compare results
34  compa = abs(rkval-cvval);
35
36  // Extract mean, standard deviation, maximum
37  mea = mean(compa);
38  [maxi, indexMaxi] = max(compa);
39  stdeviation = st_deviation(compa);
40
41  // Verifying closeness of the results
42  assert_checktrue(maxi <= 10^-i);
43  assert_checktrue(mea <= 10^-i);
44  assert_checktrue(stdeviation <= 10^-i);
45
46 end