f666f4a4edbc134244f32db8b13c5e85f9948997
[scilab.git] / scilab / modules / optimization / tests / nonreg_tests / bug_4083.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- CLI SHELL MODE -->
9 // <-- ENGLISH IMPOSED -->
10
11 // <-- Non-regression test for bug 4083 -->
12 //
13 // <-- Bugzilla URL -->
14 // http://bugzilla.scilab.org/show_bug.cgi?id=4083
15 //
16 // <-- Short Description -->
17 //    The numderivative function is created, which replaces both derivative and
18 //    numdiff functions.
19 // =============================================================================
20
21 function y = myfunction(x)
22     y = x^3;
23 endfunction
24
25 // Old 'numdiff' function equivalent
26 x = 1;
27 dx = sqrt(%eps)*(1+1d-3*abs(x));
28 g = numderivative(myfunction, x, dx);
29 expectedJ = 3;
30 assert_checkalmostequal(g, expectedJ, [], 1.d-8);
31
32 // Old 'numderivative' function equivalent
33 [J, H] = numderivative(myfunction, x);
34 expectedH = 6;
35 assert_checkalmostequal(J, expectedJ, [], 1.d-6);
36 assert_checkequal(H, expectedH);
37 [J, H] = numderivative(myfunction, x, %eps^(1/4));
38 expectedH = 6;
39 assert_checkalmostequal(J, expectedJ, [], 1.d-8);
40 assert_checkequal(H, expectedH);
41
42 // numderivative test
43 [J,H] = numderivative(myfunction, x);
44 assert_checkalmostequal(J, expectedJ, [], 1.d-8);
45 assert_checkequal(H, expectedH);