Scicos tests: relieving compilation
[scilab.git] / scilab / modules / scicos / tests / unit_tests / DoPri.tst
1
2 // =============================================================================
3 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 // Copyright (C) 2012 - Scilab Enterprises - Paul Bignier
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 // <-- ENGLISH IMPOSED -->
10 // <-- XCOS TEST -->
11
12 // Import diagram
13 assert_checktrue(importXcosDiagram("SCI/modules/xcos/tests/unit_tests/DoPri_test.zcos"));
14 Info = scicos_simulate(scs_m, list(), 'nw');
15
16 for i=2:4  // 'max step size' = 5*10^-i, precision
17
18  // Start by updating the clock block period (sampling)
19  scs_m.objs(8).model.rpar(1) = 5*10^(-i);
20  scs_m.objs(9).model.rpar(1) = 5*10^(-i);
21
22  // Modify solver and 'max step size' + run DoPri + save results
23  scs_m.props.tol(7) = 5*10^(-i); scs_m.props.tol(6) = 5;           // 'max step size' + solver
24  try scicos_simulate(scs_m, Info, 'nw'); catch disp(lasterror()); end;   // DoPri
25  doprival = res.values;   // Results
26  time = res.time;         // Time
27
28  // Modify solver and 'max step size' + run CVode + save results
29  scs_m.props.tol(7) = 0; scs_m.props.tol(6) = 1;
30  try scicos_simulate(scs_m, Info, 'nw'); catch disp(lasterror()); end;
31  cvval = res.values;
32
33  // Compare results
34  compa = abs(doprival-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+2));
43  assert_checktrue(mea <= 10^-(i+2));
44  assert_checktrue(stdeviation <= 10^-(i+2));
45
46 end