* Bug #13092 fixed - Optimization: check user function output
[scilab.git] / scilab / modules / optimization / tests / nonreg_tests / bug_13092.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 // <-- CLI SHELL MODE -->
11 //
12 // <-- Non-regression test for bug 13092 -->
13 //
14 // <-- Bugzilla URL -->
15 // http://bugzilla.scilab.org/show_bug.cgi?id=13092
16 //
17 // <-- Short Description -->
18 // Wrong error message when user function returned a complex number
19
20 function d = myf(x)
21     mu = 1e6
22     eVal_min = 0.4
23     A = [4*(x(1)**4 + x(2)**4), 2*x(2)**4; 2*x(2)**4, 4*x(2)**4]
24     B = [4*(x(1)**2 + x(2)**2), -3*x(2)**2; -3*x(2)**2, 4*x(2)**2]
25     eig = spec(A,B)
26     eig = gsort(eig, "g", "i")
27     eVal = eig(1)
28     d = x(1)**2 + x(2)**2 + mu * (eVal_min - eVal)**2
29 endfunction
30
31 xStart = [1 1];
32
33 refMsg = msprintf(_("%s: Wrong type for user function output argument #%d: A real matrix expected."), "optimbase_function", 1);
34 assert_checkerror("[x, fval] = fminsearch(myf, xStart);", refMsg);