Revert "Merge branch 'master' into palette-browser"
[scilab.git] / scilab / modules / sparse / tests / nonreg_tests / bug_2003.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- CLI SHELL MODE -->
9
10 // <-- Non-regression test for bug 2003 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=2003
14 //
15 // <-- Short Description -->
16 //lusolve crashes scilab when handle has been freed
17
18 a=[0.2,0.6,0.6,0.2,0.3;
19 0.8,0.8,0.7,0.2,0.9;
20 0,0.7,0.7,0.2,0.2;
21 0.3,0.9,0.2,0.9,0.3;
22 0.7,0.1,0.5,0.7,0.4];
23 b=[0.3;0.6;0.5;0.3;0.6];
24 A=sparse(a);
25 [h,rk]=lufact(A);
26 x=lusolve(h,b);
27 if norm(a*x-b)>1d-10 then pause,end
28 [P,L,U,Q]=luget(h);
29 if norm(P*L*U*Q-A)>1d-10 then pause,end
30 ludel(h)
31 if execstr('x=lusolve(h,b);','errcatch')<>247 then pause,end
32 if execstr('ludel(h);','errcatch')<>247 then pause,end
33 if execstr('[P,L,U,Q]=luget(h);','errcatch')<>247 then pause,end
34
35 //try to allocate a lot of handles
36 for k=1:20
37   [h1,rk]=lufact(A);
38 end     
39
40 x=lusolve(h1,b);
41 if norm(a*x-b)>1d-10 then pause,end