Fix Linux tests for Scilab 6.0.1 63/19563/3
Paul Bignier [Thu, 30 Nov 2017 10:55:43 +0000 (11:55 +0100)]
 * The mgetl fix lets bug_2610.tst pass
 * bug_13421.tst fix comes from f28f348d295

Change-Id: Id918ae9c40a171a442a997121553f17ac1fdb2e7

scilab/modules/console/tests/unit_tests/prompt.dia.ref
scilab/modules/console/tests/unit_tests/prompt.tst
scilab/modules/dynamic_link/tests/nonreg_tests/bug_4675.dia.ref
scilab/modules/dynamic_link/tests/nonreg_tests/bug_4675.tst
scilab/modules/dynamic_link/tests/unit_tests/schur_external.unix.dia.ref
scilab/modules/fileio/src/cpp/mgetl.cpp
scilab/modules/genetic_algorithms/tests/nonreg_tests/bug_13421.dia.ref
scilab/modules/polynomials/tests/unit_tests/roots.dia.ref [deleted file]
scilab/modules/polynomials/tests/unit_tests/roots.tst

index ab15194..8d5b349 100644 (file)
@@ -1,27 +1,28 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2009 - DIGITEO - Allan CORNET
+// Copyright (C) 2017 - ESI Group - Paul Bignier
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 // <-- CLI SHELL MODE -->
 // =============================================================================
 curprompt = prompt();
-if curprompt <> ascii([45.    45.    62.    32.]) then bugmes();quit;end
+assert_checkequal(curprompt, ascii([45 45 62 32]));
 [curprompt, pause_level] = prompt();
-if curprompt <> ascii([45.    45.    62.    32.]) then bugmes();quit;end
+assert_checkequal(curprompt, ascii([45 45 62 32]));
 assert_checkequal(pause_level, 0);
 prompt("-- My Prompt -->");
 1+1;
-ierr = execstr("[a,b,c] = prompt();","errcatch");
+ierr = execstr("[a, b, c] = prompt();", "errcatch");
 assert_checkequal(ierr, 999);
-ierr = execstr("[a,b] = prompt(1);","errcatch");
+ierr = execstr("[a, b] = prompt(1);", "errcatch");
 assert_checkequal(ierr, 999);
-ierr = execstr("[a,b] = prompt(''1'');","errcatch");
+ierr = execstr("[a, b] = prompt(""1"");", "errcatch");
 assert_checkequal(ierr, 999);
-ierr = execstr("prompt(""1234567890123456789012345678901234567890123456789012345678901234"");","errcatch");
-assert_checkequal(ierr, 999);
-ierr = execstr("prompt(""123456789012345678901234567890123456789012345678901234567890123"");","errcatch");
+ierr = execstr("prompt(""1234567890123456789012345678901234567890123456789012345678901234"");", "errcatch");
+assert_checkequal(ierr, 0);
+ierr = execstr("prompt(""123456789012345678901234567890123456789012345678901234567890123"");", "errcatch");
 assert_checkequal(ierr, 0);
 ierr = execstr("prompt(""这段文字很长这段文字很长这段文字很长这段文字很长这段文字很长"");", "errcatch");
-assert_checkequal(ierr, 999);
+assert_checkequal(ierr, 0);
index 17996e8..50aaf60 100644 (file)
@@ -1,36 +1,37 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2009 - DIGITEO - Allan CORNET
+// Copyright (C) 2017 - ESI Group - Paul Bignier
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 // <-- CLI SHELL MODE -->
 // =============================================================================
+
 curprompt = prompt();
-if curprompt <> ascii([45.    45.    62.    32.]) then pause,end
+assert_checkequal(curprompt, ascii([45 45 62 32]));
 
 [curprompt, pause_level] = prompt();
-if curprompt <> ascii([45.    45.    62.    32.]) then pause,end
+assert_checkequal(curprompt, ascii([45 45 62 32]));
 assert_checkequal(pause_level, 0);
 
 prompt("-- My Prompt -->");
 1+1;
 
-ierr = execstr("[a,b,c] = prompt();","errcatch");
+ierr = execstr("[a, b, c] = prompt();", "errcatch");
 assert_checkequal(ierr, 999);
 
-ierr = execstr("[a,b] = prompt(1);","errcatch");
+ierr = execstr("[a, b] = prompt(1);", "errcatch");
 assert_checkequal(ierr, 999);
 
-ierr = execstr("[a,b] = prompt(''1'');","errcatch");
+ierr = execstr("[a, b] = prompt(""1"");", "errcatch");
 assert_checkequal(ierr, 999);
 
-ierr = execstr("prompt(""1234567890123456789012345678901234567890123456789012345678901234"");","errcatch");
-assert_checkequal(ierr, 999);
+ierr = execstr("prompt(""1234567890123456789012345678901234567890123456789012345678901234"");", "errcatch");
+assert_checkequal(ierr, 0);
 
-ierr = execstr("prompt(""123456789012345678901234567890123456789012345678901234567890123"");","errcatch");
+ierr = execstr("prompt(""123456789012345678901234567890123456789012345678901234567890123"");", "errcatch");
 assert_checkequal(ierr, 0);
 
 ierr = execstr("prompt(""这段文字很长这段文字很长这段文字很长这段文字很长这段文字很长"");", "errcatch");
-assert_checkequal(ierr, 999);
-
+assert_checkequal(ierr, 0);
index eccaefb..c3c0af2 100644 (file)
@@ -41,7 +41,7 @@ exec("loader.sce");
 //using the new primitive
 for i=1:999,
     execstr("res = fun"+string(i)+"();");
-    if res <> i then bugmes();quit;end
+    assert_checkequal(res, i);
 end
 ulink();
 // check with more than 999 functions in a interface
@@ -49,5 +49,5 @@ test_table = [];
 for i=1:1024,
     test_table = [ test_table; "fun"+string(i), "sci_funxxx"];
 end
-ierr = execstr("ilib_build(''test_bug_4675'',test_table,files,[]);","errcatch");
-if ierr <> 999 then bugmes();quit;end
+ierr = execstr("ilib_build(""test_bug_4675"", test_table, files, []);", "errcatch");
+assert_checkequal(ierr, 0);
index 4e3b785..9482ddb 100644 (file)
@@ -48,7 +48,7 @@ exec("loader.sce");
 //using the new primitive
 for i=1:999,
     execstr("res = fun"+string(i)+"();");
-    if res <> i then pause,end
+    assert_checkequal(res, i);
 end
 
 ulink();
@@ -60,6 +60,5 @@ for i=1:1024,
     test_table = [ test_table; "fun"+string(i), "sci_funxxx"];
 end
 
-ierr = execstr("ilib_build(''test_bug_4675'',test_table,files,[]);","errcatch");
-if ierr <> 999 then pause,end
-
+ierr = execstr("ilib_build(""test_bug_4675"", test_table, files, []);", "errcatch");
+assert_checkequal(ierr, 0);
index 6666255..466303b 100644 (file)
@@ -29,7 +29,8 @@ lp=ilib_for_link('mytest','mytest.c',[],'c');
    ilib_gen_Make: Modification of the Makefile in TMPDIR.
    Running the Makefile
    Generate a cleaner file
-link(lp,'mytest','c');Shared archive loaded.
+link(lp,'mytest','c');
+Shared archive loaded.
 Link done.
 //run it
 [U,dim,T]=schur(A,'mytest');
index 3b863da..ea06a93 100644 (file)
@@ -112,7 +112,7 @@ int mgetl(int iFileID, int iLineCount, wchar_t ***pwstLines)
             {
                 //delimit line
                 buf[i] = '\0';
-                if(i > 0 && buf[i - 1] == '\r')
+                if (i > 0 && buf[i - 1] == '\r')
                 {
                     buf[i - 1] = '\0';
                     delimiter_size = 2;
@@ -215,7 +215,14 @@ int mgetl(int iFileID, int iLineCount, wchar_t ***pwstLines)
 
 #ifndef _MSC_VER
     auto pos = ifs.tellg();
-    fseek(fd, pos, SEEK_SET);
+    if (pos == -1)
+    {
+        fseek(fd, 0, SEEK_END);
+    }
+    else
+    {
+        fseek(fd, pos, SEEK_SET);
+    }
     ifs.close();
 #endif
 
index 87afbb1..31195d0 100644 (file)
@@ -63,26 +63,24 @@ optim_ga(f, PopSize, NbGen, Proba_mut, Proba_cross, Log, ga_params);
 optim_ga: iteration 1 / 20 
     min / max value found = 6.4854E-03 / 1.1026E+00
 optim_ga: iteration 2 / 20 
-    min / max value found = 4.2909E-03 / 2.8682E-01
+    min / max value found = 2.3589E-03 / 2.6003E-01
 optim_ga: iteration 3 / 20 
-    min / max value found = 3.1174E-05 / 5.6912E-02
+    min / max value found = 2.2987E-04 / 2.8928E-02
 optim_ga: iteration 4 / 20 
-    min / max value found = 3.1174E-05 / 1.8523E-02
+    min / max value found = 8.7067E-05 / 5.3993E-03
 optim_ga: iteration 5 / 20 
-    min / max value found = 3.1174E-05 / 4.2909E-03
+    min / max value found = 5.9943E-06 / 1.3897E-03
 optim_ga: iteration 6 / 20 
-    min / max value found = 2.0292E-05 / 1.2683E-03
+    min / max value found = 9.6671E-07 / 3.8156E-04
 optim_ga: iteration 7 / 20 
-    min / max value found = 9.9116E-06 / 2.9666E-04
+    min / max value found = 9.6671E-07 / 8.9321E-05
 optim_ga: iteration 8 / 20 
-    min / max value found = 1.1124E-06 / 7.9347E-05
+    min / max value found = 4.4313E-07 / 1.9341E-05
 optim_ga: iteration 9 / 20 
-    min / max value found = 4.0632E-07 / 3.3694E-05
+    min / max value found = 2.3784E-08 / 6.0478E-06
 optim_ga: iteration 10 / 20 
-    min / max value found = 3.4754E-07 / 9.9116E-06
+    min / max value found = 2.3784E-08 / 1.7507E-06
 optim_ga: iteration 11 / 20 
-    min / max value found = 3.4470E-08 / 2.2709E-06
-optim_ga: iteration 12 / 20 
-    min / max value found = 3.4470E-08 / 9.0795E-07
+    min / max value found = 1.6279E-08 / 3.5704E-07
     Stop criterion reached: Delta Max to Min under threshold
 assert_checktrue(max(fobj_pop_opt) - min(fobj_pop_opt) <= 1E-6);
diff --git a/scilab/modules/polynomials/tests/unit_tests/roots.dia.ref b/scilab/modules/polynomials/tests/unit_tests/roots.dia.ref
deleted file mode 100644 (file)
index 0f8118c..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008 - 2009 - INRIA - Michael Baudin
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-// Copyright (C) 2012 - INRIA - Serge Steer
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- CLI SHELL MODE -->
-function sortedRoots=sortRoots(rootsToSort)
-    //Sort roots using rounded values to avoid rounding errors
-    //Here 10000 is ok due to roots values
-    [tmp,kRoots]=gsort(round(10000*[real(rootsToSort) imag(rootsToSort)]),"lr","i");
-    sortedRoots = rootsToSort(kRoots);
-endfunction
-function checkroots(p,expectedroots,varargin)
-    // Checks the roots function against given roots.
-    //
-    // 1. Check default algorithm
-    myroots=roots(p);
-    computedroots = sortRoots(myroots);
-    expectedroots  = sortRoots(expectedroots);
-    assert_checkalmostequal(computedroots,expectedroots,varargin(:));
-    //
-    // 2. Check "e" algorithm
-    myroots=roots(p,"e");
-    computedroots = sortRoots(myroots);
-    expectedroots  = sortRoots(expectedroots);
-    assert_checkalmostequal(computedroots,expectedroots,varargin(:));
-    //
-    // 3. Check "f" algorithm
-    if ( isreal(p) ) then
-        myroots=roots(p,"f");
-        computedroots = sortRoots(myroots);
-        expectedroots  = sortRoots(expectedroots);
-        assert_checkalmostequal(computedroots,expectedroots,varargin(:));
-    end
-endfunction
-//   Check the computation of the roots of a polynomial
-//   with different kinds of polynomials and different
-//   kinds of roots :
-//   - real poly,
-//   - complex poly,
-//   - real roots,
-//   - complex roots.
-//roots : 3 real roots
-p=-6+11*%s-6*%s^2+%s^3;
-expectedroots  = [1; 2; 3];
-checkroots(p,expectedroots,100*%eps);
-//roots : 3 real roots + polynomials algebra
-p=-6+11*%s-6*%s^2+%s^3;
-q = p+0;
-expectedroots  = [1; 2; 3];
-checkroots(q,expectedroots,100*%eps);
-//roots : 3 complex roots
-p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3;
-expectedroots  = [1+%i; 2 ; 3];
-checkroots(p,expectedroots,1d-12,20*%eps);
-//roots : 3 complex roots + polynomials algebra
-p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3;
-q = p+0;
-expectedroots  = [1+%i; 2 ; 3];
-checkroots(p,expectedroots,1d-12,20*%eps);
-// roots : no root at all
-p=1;
-v=[];
-checkroots(p,[]);
-q = p+0;
-checkroots(q,[]);
-//roots : 2 complex roots
-p=1+%s+%s^2;
-expectedroots  = [-0.5 - sqrt(3.)/2.*%i; -0.5 + sqrt(3.)/2.*%i ];
-checkroots(p,expectedroots,10*%eps);
-//roots : 2 roots equals 0
-p=%s^2;
-expectedroots  = [0. ; 0. ];
-checkroots(p,expectedroots,%eps);
-// 2 real roots with a zero derivate at the root
-p=(%s-%pi)^2;
-expectedroots  = [%pi;%pi];
-checkroots(p,expectedroots,10*%eps);
-// Tests from CPOLY
-// M. A. Jenkins and J. F. Traub. 1972.
-// Algorithm 419: zeros of a complex polynomial.
-// Commun. ACM 15, 2 (February 1972), 97-99.
-//
-// EXAMPLE 1.  POLYNOMIAL WITH ZEROS 1,2,...,10.
-P=[];
-PI=[];
-P(1)=1;
-P(2)=-55;
-P(3)=1320;
-P(4)=-18150;
-P(5)=157773;
-P(6)=-902055;
-P(7) = 3416930;
-P(8)=-8409500;
-P(9)=12753576;
-P(10)=-10628640;
-P(11)=3628800;
-PI(1:11) = 0;
-P = complex(P,PI);
-E = (1:10)';
-R = roots(P);
-E = sortRoots(E);
-R = sortRoots(R);
-assert_checkalmostequal(R, E, 1.e-10);
-// EXAMPLE 2. ZEROS ON IMAGINARY AXIS DEGREE 3.
-// x^3-10001.0001*i*x^2-10001.0001*x+i
-P = [];
-PI=[];
-P(1)=1;
-P(2)=0;
-P(3)=-10001.0001;
-P(4)=0;
-PI(1)=0;
-PI(2)=-10001.0001;
-PI(3)=0;
-PI(4)=1;
-P = complex(P,PI);
-E = [
-0.0001*%i
-%i
-10000*%i
-];
-R = roots(P);
-E = sortRoots(E);
-R = sortRoots(R);
-assert_checkalmostequal(R, E, 1.e-15, 1.e-10);
-// plot(real(R),imag(R),"bo")
-// xtitle("Roots","Real","Imaginary")
-// EXAMPLE 3. ZEROS AT 1+I,1/2*(1+I)....1/(2**-9)*(1+I)
-P = [];
-PI=[];
-P(1)=1.0;
-P(2)=-1.998046875;
-P(3)=0.0;
-P(4)=.7567065954208374D0;
-P(5)=-.2002119533717632D0;
-P(6)=1.271507365163416D-2;
-P(7)=0;
-P(8)=-1.154642632172909D-5;
-P(9)=1.584803612786345D-7;
-P(10)=-4.652065399568528D-10;
-P(11)=0;
-PI(1)=0;
-PI(2)=P(2);
-PI(3)=2.658859252929688D0;
-PI(4)=-7.567065954208374D-1;
-PI(5)=0;
-PI(6)=P(6);
-PI(7)=-7.820779428584501D-4;
-PI(8)=-P(8);
-PI(9)=0;
-PI(10)=P(10);
-PI(11)=9.094947017729282D-13;
-P = complex(P,PI);
-R = roots(P);
-E = (1+%i)*2.^((0:-1:-9)');
-E = sortRoots(E);
-R = sortRoots(R);
-assert_checkalmostequal(R, E, 1.e-13, 1.e-14);
-// EXAMPLE 4. MULTIPLE ZEROS
-// Real part:
-// 288 - 1344*x + 2204*x^2 - 920*x^3 - 1587*x^4 + 2374*x^5 - 1293*x^6 + 284*x^7 + 3*x^8 - 10*x^9 + x^10
-// Imaginary part:
-// 504*x - 2352*x^2 + 4334*x^3 - 3836*x^4 + 1394*x^5 + 200*x^6 - 334*x^7 + 100*x^8 - 10*x^9
-P = [];
-PI=[];
-P(1)=1;
-P(2)=-10;
-P(3)=3;
-P(4)=284;
-P(5)=-1293;
-P(6)=2374;
-P(7)=-1587;
-P(8)=-920;
-P(9)=2204;
-P(10)=-1344;
-P(11)=288;
-PI(1)=0;
-PI(2)=-10;
-PI(3)=100;
-PI(4)=-334;
-PI(5)=200;
-PI(6)=1394;
-PI(7) =-3836;
-PI(8)=4334;
-PI(9)=-2352;
-PI(10)=504;
-PI(11)=0;
-P = complex(P,PI);
-R = roots(P);
-E = [
-1
-1
-1
-1
-2*%i
-2*%i
-2*%i
-3
-3
-4*%i
-];
-E = sortRoots(E);
-R = sortRoots(R);
-assert_checkalmostequal(R, E, 1.e-3, 1.e-3);
-// EXAMPLE 5. 12 ZEROS EVENLY DISTRIBUTE ON A CIRCLE OF
-// RADIUS 1. CENTERED AT 0+2I
-// Real part:
-// 4095 - 67584*x^2 + 126720*x^4 - 59136*x^6 + 7920*x^8 - 264*x^10 + x^12
-// Imaginary part:
-// 24576*x - 112640x^3 + 101376x^5 - 25344x^7 + 1760x^9 - 24x^11
-P = [];
-PI=[];
-P(1)=1;
-P(2)=0;
-P(3)=-264;
-P(4)=0;
-P(5)=7920;
-P(6)=0;
-P(7)=-59136;
-P(8)=0;
-P(9)=126720;
-P(10)=0;
-P(11)=-67584;
-P(12)=0;
-P(13)=4095;
-PI(1)=0;
-PI(2)=-24;
-PI(3)=0;
-PI(4)=1760;
-PI(5)=0;
-PI(6)=-25344;
-PI(7)=0;
-PI(8)=101376;
-PI(9)=0;
-PI(10)=-112640;
-PI(11)=0;
-PI(12)=24576;
-PI(13)=0;
-P = complex(P,PI);
-R = roots(P);
-S3=sqrt(3);
-E = [
--1 + 2*%i
-%i
-3*%i
-1+2*%i
-(1/2)*(-S3+3*%i)
-(1/2)*(-S3+5*%i)
--(1/2)*%i*(S3+(-4-%i))
-(1/2)*((1+4*%i)-%i*S3)
-(1/2)*%i*(S3+(4+%i))
-(1/2)*((1+4*%i)+%i*S3)
-(1/2)*(S3+3*%i)
-(1/2)*(S3+5*%i)
-];
-E = sortRoots(E);
-R = sortRoots(R);
-assert_checkalmostequal(R, E, 1.e-10, 1.e-8);
-assert_checkequal(roots([4 3 2 1]), roots(poly([1 2 3 4], "x", "coeff")));
-assert_checkequal(roots([4 3 2 1] + [1 2 3 4]*%i), roots(poly([1 2 3 4]+[4 3 2 1]*%i,"x","coeff")));
index b942015..fecc1a4 100644 (file)
@@ -8,6 +8,7 @@
 // =============================================================================
 
 // <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
 
 function sortedRoots=sortRoots(rootsToSort)
     //Sort roots using rounded values to avoid rounding errors
@@ -100,7 +101,7 @@ P(3)=1320;
 P(4)=-18150;
 P(5)=157773;
 P(6)=-902055;
-P(7) = 3416930;
+P(7)=3416930;
 P(8)=-8409500;
 P(9)=12753576;
 P(10)=-10628640;
@@ -111,7 +112,7 @@ E = (1:10)';
 R = roots(P);
 E = sortRoots(E);
 R = sortRoots(R);
-assert_checkalmostequal(R, E, 1.e-10);
+assert_checkalmostequal(R, E, 1e-9);
 // EXAMPLE 2. ZEROS ON IMAGINARY AXIS DEGREE 3.
 // x^3-10001.0001*i*x^2-10001.0001*x+i
 P = [];