Optimization: let tests pass
[scilab.git] / scilab / modules / optimization / tests / unit_tests / lmitool.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 // <-- CLI SHELL MODE -->
9
10 //<-- ENGLISH IMPOSED -->
11
12 // Constants
13 rand("seed", 0);
14 n  = 2;
15 A1 = rand(n, n);
16 A2 = rand(n, n);
17 Xs = diag(1:n);
18 Q1 = -(A1'*Xs+Xs*A1+0.1*eye());
19 Q2 = -(A2'*Xs+Xs*A2+0.2*eye());
20
21 lmitool("prob", "X", "A1, A2"); // Create prob.sci
22 deletefile "prob.sci";
23 copyfile("SCI/modules/optimization/demos/prob_bak.sci", "prob.sci"); // Replace prob.sci by prob_bak.sci
24 exec("prob.sci", -1);
25 X = prob(A1, A2); // Run optimization
26
27 refX = [1.0635042 0; 0 2.0784841];
28 refY = 0;
29 refZ = list([0.0731600 0.7080179; 0.7080179 0.7186999], [0.1154910 0.5345239; 0.5345239 1.4843684]);
30 refC = -1.0635042;
31
32 [Y, Z, c] = prob_eval(X); // Check evaluaton function value at the point found
33
34 assert_checkalmostequal(X, refX, [], 1d-6);
35 assert_checkalmostequal(Y, refY, [], 1d-6);
36 assert_checkalmostequal(Z(1), refZ(1), [], 1d-6);
37 assert_checkalmostequal(Z(2), refZ(2), [], 1d-6);
38 assert_checkalmostequal(c, refC, [], 1d-6);
39
40 deletefile "prob.sci"; // Delete created file