- Fix bug into test_run
Pierre Marechal [Thu, 14 Feb 2008 13:59:06 +0000 (13:59 +0000)]
- Refs are regenerated

30 files changed:
scilab/modules/core/tests/nonreg_tests/bug_1057.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_1107.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_1200.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_1985.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_2039.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_2611.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/nonreg_tests/bug_2647.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_2707.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_474.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_553.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_564.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_604.dia.ref
scilab/modules/core/tests/nonreg_tests/bug_797.dia.ref
scilab/modules/core/tests/unit_tests/auto.dia.ref
scilab/modules/core/tests/unit_tests/calpol.dia.ref
scilab/modules/core/tests/unit_tests/clause.dia.ref
scilab/modules/core/tests/unit_tests/comand.dia.ref
scilab/modules/core/tests/unit_tests/comment.dia.ref
scilab/modules/core/tests/unit_tests/display.dia.ref
scilab/modules/core/tests/unit_tests/elem.dia.ref
scilab/modules/core/tests/unit_tests/fptr.dia.ref
scilab/modules/core/tests/unit_tests/function.dia.ref
scilab/modules/core/tests/unit_tests/getmd5.dia.ref
scilab/modules/core/tests/unit_tests/getversion.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/unit_tests/macro.dia.ref
scilab/modules/core/tests/unit_tests/matelm.dia.ref
scilab/modules/core/tests/unit_tests/matops.dia.ref
scilab/modules/core/tests/unit_tests/parse.dia.ref
scilab/modules/core/tests/unit_tests/resume.dia.ref
scilab/modules/core/tests/unit_tests/trycatch.dia.ref

index 2b64923..7f378bb 100644 (file)
@@ -6,9 +6,9 @@
 // <-- Short Description -->
 //    Crash when entering the following in the command window:
 //
-//    1.7977D+308
+//    1.7977E+308
 //
-//    Actually, every number greater than 1.797D+308 crashes
+//    Actually, every number greater than 1.797E+308 crashes
 //    scilab (scilab3.0 under linux gives the correct answer Inf).
 //
 //    A popup window appears with the following message:
@@ -26,4 +26,4 @@
 // Pierre MARECHAL - Scilab Project
 // Copyright INRIA
 // 1er juin 2005
-if 1.7977D+308 <> %inf then bugmes();quit;end
+if 1.7977E+308 <> %inf then bugmes();quit;end
index e093aa6..49190b1 100644 (file)
@@ -10,7 +10,7 @@
 //    factor equivalent to (x==2)
 x=5;
 if (x = 4) then
-Warning: obsolete use of '=' instead of '=='0.
+Warning: obsolete use of '=' instead of '=='.
 if (x = 4) then
         !       
 at line      26 of exec file called by :    
@@ -23,7 +23,7 @@ ok=x==5
  
   T  
 if (execstr('x=5;z=2*(x=4)',"errcatch","n")<>0) | (z<>0) then bugmes();quit;end
-Warning: obsolete use of '=' instead of '=='0.
+Warning: obsolete use of '=' instead of '=='.
 x=5;z=2*(x=4)
             !       
 in  execstr instruction    called by :  
@@ -32,7 +32,7 @@ at line       7 of exec file called by :
  
 
 if (execstr('x=5;z=2*(x-1=4)',"errcatch","n")<>0) | (z<>2) then bugmes();quit;end
-Warning: obsolete use of '=' instead of '=='0.
+Warning: obsolete use of '=' instead of '=='.
 x=5;z=2*(x-1=4)
               !       
 in  execstr instruction    called by :  
index a7dc2e5..4223da6 100644 (file)
@@ -8,7 +8,7 @@
 //    En prenant par exemple j=0.001, on obtient un affichage
 //    incoherent avec format :
 //    format("v",6) => 0.001
-//    format("v",7) => 1.D-3
+//    format("v",7) => 1.E-3
 //    format("v",8) => 0.001
 // Pierre MARECHAL - Scilab Project
 // Copyright INRIA
index c804ea3..960e93c 100644 (file)
@@ -13,4 +13,4 @@
 // Scilab Project - Pierre MARECHAL
 // Copyright INRIA 2008
 // Date : 8 janvier 2008
-if 0.18257419^2 +0.36514837^2 +0.54772256^2 +0.73029674^2 - 1 > %eps then pause, end
+if  .18257419^2 + .36514837^2 + .54772256^2 + .73029674^2 - 1 > %eps then bugmes();quit;end
index 5bb90b2..de79d30 100644 (file)
@@ -24,7 +24,7 @@
 //
 //     Cannot query value of this type.
 //
-//0...
+// ...
 // Author : Scilab Project - Pierre MARECHAL
 // Copyright INRIA
 // Date : 28 june 2006
diff --git a/scilab/modules/core/tests/nonreg_tests/bug_2611.dia.ref b/scilab/modules/core/tests/nonreg_tests/bug_2611.dia.ref
new file mode 100644 (file)
index 0000000..c92c2aa
--- /dev/null
@@ -0,0 +1,31 @@
+// <-- Non-regression test for bug 2611 (part 1) -->
+//
+// <-- Bugzilla URL -->
+// http://www.scilab.org/cgi-bin/bugzilla_bug_II/show_bug.cgi?id=2611
+//
+// <-- Short Description -->
+// for loop variable not removed when an error arises within a for called in try context
+// Copyright INRIA
+// Scilab Project - Serge Steer
+// Date : 12 feb 2008
+       
+function r=test()
+  r=%f
+  try
+    for j=1:3, error('test',1001); end
+  catch
+    r=%t
+  end
+endfunction
+if ~test() then bugmes();quit;end
+if lasterror()<>'test' then bugmes();quit;end
+deff('r=test()',['r=%f'
+'try,'
+'    for j=1:3, error(''test'',1001); end,'
+'catch'
+'    r=%t'
+'end'],'n')
+Warning : redefining function: test                    
+
+if ~test() then bugmes();quit;end
+if lasterror()<>'test' then bugmes();quit;end
index 4eb9e30..674d227 100644 (file)
 // Scilab Project - Pierre MARECHAL
 // Copyright INRIA 2008
 // Date : 8 janvier 2008
-a=cos(3);
-b=sin(3);
-my_log_file = TMPDIR+"/bug_2647.log"
- my_log_file  =
- TMPDIR/bug_2647.log   
-diary(my_log_file);
+// a=cos(3);
+// b=sin(3);
+//
+//
+// my_log_file = TMPDIR+"/bug_2647.log"
+//
+// diary(my_log_file);
+// disp(a^2+b^2);
+//
+// c = mgetl(my_log_file);
+//
+// if stripblanks(c(4))<>"2." then bugmes();quit;end
index 1e3a0d0..1f3aff6 100644 (file)
@@ -4,7 +4,7 @@
 // http://www.scilab.org/cgi-bin/bugzilla_bug_II/show_bug.cgi?id=2707
 //
 // <-- Short Description -->
-// The getmd5 function does not handle the SCI/ ~/0...  shortcuts
+// The getmd5 function does not handle the SCI/ ~/ ...  shortcuts
 // Pierre MARECHAL - Scilab Project
 // Copyright INRIA
 // 10/02/2008
index 0517b6c..182933d 100644 (file)
@@ -24,7 +24,7 @@
 //
 //    Is this correct? I was expecting n == 3.
 //    On Scilab 2.7.2 with " loopbug.sci, shown below " function
-//0...
+// ...
 n = 12;
 if execstr("for n=1:3; disp(n); end","errcatch") <> 0 then bugmes();quit;end
  
index 2938584..d65ee06 100644 (file)
@@ -24,7 +24,7 @@
 //          break
 //        else
 //          Cmenu='Open/Set'
-//0...
+// ...
 // Non-regression test file for bug 564
 // Copyright INRIA
  // Modified by Pierre MARECHAL
index ca1d205..3a55513 100644 (file)
@@ -24,7 +24,7 @@
 //    waiting for right parenthesis
 //    as well as
 //    -->(2m))))))))))))
-//0...
+// ...
 g=9.81;
 m=2;
 l=1;
index 6353f40..3c59416 100644 (file)
 //    -->J=0.001
 //    J =
 //
-//   0.001
+//    .001
 //
 //
 //    -->format("v",6)
 //    -->J
 //    J =
 //
-//   0.001 <- OK c'est bien ce qu'on souhaite
-//0...
+//    .001 <- OK c'est bien ce qu'on souhaite
+// ...
 // Pierre MARECHAL - Scilab Project
 // Copyright INRIA
 // 1er juin 2005
index 782bfd0..25a0f3c 100644 (file)
 // <-- TEST WITH GRAPHIC -->
 // Copyright INRIA
 // test conversion transfer <---> state-space
 // 1- coff inversion
  s=poly(0,'s'); a=[1 2 3;4 5 6;7 8 9];
  [num,den]=coff(a,'s');h1=num/den;h2=(s*eye()-a)^(-1);
  e=h1-h2;if norm(coeff(e(2)))>5000*%eps then bugmes();quit;end
 // 2-test de tf2ss et ss2tf
  n=[1+s   2+3*s+4*s^2        5; 0        1-s             s];
  d=[1+3*s   5-s^3           s+1;1+s     1+s+s^2      3*s-1];
  h=syslin('c',n./d);
  [n,d]=simp(n,d);if h<>rlist(n,d,'c') then bugmes();quit;end
  sl=tf2ss(h); e=h-ss2tf(sl);
  if norm(coeff(e(2)))>100000*%eps then bugmes();quit;end
 //
   a = [0.8604043 , 0.0070020 , 0.6223373 , -1.356213 , -4.2301775
        0.159714 ,  0.0857791 , -0.2367751 , 0.4958580 , 0.6398817
       -4.3054931 , -0.0365878 , 2.1784911 , 0.0314793 , 2.3728994
       -3.7115779 , -0.5370809 , 2.4291716 , -0.6352663 , 2.6972781
        6.3580966 , 0.1377712 , -4.0461243 , -0.5192899 , -4.0394083];
   b = [-0.0532544 , -0.1494083 , -0.0098619
        -0.0355030 , -0.0162722 , 0.1045365
        -0.1301775 , 0.1736686 , -0.0611440
         0.1834320 , 0.1757396 , -0.5956607
         0.1775148 , -0.1186391 , 0.1439842];
   c = [2 , 7 , -2 , 5 , 1
        0 , -1 , 3 , 0 , 2];
   d = [1 , 0 , 0
        0 , 0 , 0];
 sl=syslin('c',a,b,c);
 if or(sl<>lsslist(a,b,c,0*ones(2,3),0*ones(5,1),'c')) then bugmes();quit;end
 //
 eps=sqrt(%eps);
 if contr(a,b,eps)<>4 then bugmes();quit;end
 if contr(a',c',4*eps)<>3 then bugmes();quit;end
 spec(a);
 xbasc();xselect();
 plzr(sl)
 //
 slc=contrss(sl,eps);//ssprint(slc)
 slo=obsvss(sl,eps);//ssprint(slo)
 slm=minss(sl,eps);//ssprint(slm)
 //
 hm=ss2tf(slm);
 h=ss2tf(sl);
 hh=c*(s*eye()-a)^(-1)*b + 0*ones(2,3);
 hh=hh-h;
 if norm(coeff(hh(2))) > 1.e-5 then bugmes();quit;end
 [num,den]=coff(a,'s');
 hh=c*real(num)*b/real(den) + 0*ones(2,3);
 hh=hh-h;
 if norm(coeff(hh(2))) > 1.e-5 then bugmes();quit;end
 slh=tf2ss(hm);       //was tf2ss(h)
 //
 u=eye(3,60);
 xbasc();
-;
-plot2d1("enn",1,flts(u,dscr(slh,0.3))');
-plot2d1("enn",1,flts(u,dscr(sl,0.3))',[-3,-4],"101")
-//csim  flts
-//definition
-ti=2.7;k=0.87;td=0.69;n=200;
-a=[0 0 0 0 0 -1/ti
-   0 -n/td 0 0 0 n/td
-   k n -1 0 0 -k-n
-   0 0 1 -1 0 0
-   0 0 0 1 -1 0
-   0 0 0 0 1 -1];
-b=[1/ti;0;k;0;0;0];
-c=[0 0 0 0 0 1];
-tech=0.2;t=0:tech:15; //
-deff('[y]=u(t)','if t==0 then y=0;else y=1,end') //step
-// with csim
-if type(csim)<>13 then comp(csim);end
-sl=syslin('c',a,b,c);
-//comparison
-// csim
-xbasc(xget("window"));
-plot2d(t',csim(u,t,sl)')
-plot2d(t',csim('ech',t,sl)',-2,"001")
-//exact discretization
-sld=dscr(sl,tech);
-plot2d(t',flts(ones(t),sld)',-3,"001")
-//
-//impulse responses
-//
-;xbasc();
-plot2d(t',csim('imp',t,sl)')
-//discretization
-plot2d(t',flts(eye(t)/tech,sld)',-2,"001");
-//fin
-;xbasc();
-//test bode - black et nyquist
- s=poly(0,'s')
- s  =
-    s   
-// n=poly(1,'s','c'); d=real(poly([5+15*%i,5-15*%i],'s'))
- n=1+s;d=1+2*s;
- h=syslin('c',n,d)
- h  =
-    1 + s    
-    -----    
-    1 + 2s   
- sl=tf2ss(h);
- sld=dscr(sl,0.01);
- hd=ss2tf(sld);
-[w,rf]=repfreq(h,0.01,100);
-//
-//transfer
- bode(h,0.01,100);
-;xbasc();
- bode(h,0.01,100,0.01)
-;xbasc();
- bode(sl,0.01,100);
-;xbasc();
- bode(sl,0.01,100,0.01)
-;xbasc();
-//
- bode(w,rf)
-;xbasc();
- bode(w,20*log(abs(rf))/log(10),(180/%pi)*atan(imag(rf),real(rf)))
-;xbasc();
-//
-//transfer
- bode(sld,0.001,1)
-// bode(sld,0.001,1,0.01)
-//
-;xbasc();
-// bode(hd,0.001,1)
- bode(hd,0.001,1,0.01)
-//
-//
-//nyquist
-//
-;xbasc();
-nyquist(h,0.01,100); nyquist(h,0.01,100,0.01);
-;xbasc();
-nyquist(sl,0.01,100); nyquist(sl,0.01,100,0.01);
-;xbasc();
-nyquist(w,rf);
-nyquist(w,20*log(abs(rf))/log(10),(180/%pi)*atan(imag(rf),real(rf)));
-//
-//nyquist(sld,0.001,1);nyquist(sld,0.001,1,0.01);
-;xbasc();
-//nyquist(hd,0.001,1);nyquist(hd,0.001,1,0.01);
-;xbasc();
-//
-//black
-//
-black(h,0.01,100); black(h,0.01,100,0.01);
-;xbasc();
-black(sl,0.01,100); black(sl,0.01,100,0.01);
-;xbasc();
-black(w,rf);
-;xbasc();
-black(w,20*log(abs(rf))/log(10),(180/%pi)*atan(imag(rf),real(rf)));
-//
-;xbasc();
-black(sld,0.001,1);black(sld,0.001,1,0.01);
-;xbasc();
-black(hd,0.001,1);black(hd,0.001,1,0.01);
-;xbasc();
-//
-//test  dscr
-slc=syslin('c',[0 1;0 0],[0;0],[1,0]);qc=[0 0;0 0.1]
- qc  =
-    0.    0.   
-    0.    0.1  
-qd=ones(2,2)./[30000 2000;2000 100];
-sld=syslin(0.1,[1 0.1;0 1],[0;0],[1 0]);
-[s1]=dscr(slc,0.1);
-if norm(s1(2)-sld(2))>10*%eps then bugmes();quit;end
-if norm(s1(3)-sld(3))>10*%eps then bugmes();quit;end
-[s1,r]=dscr(slc,0.1,qc);
-if norm(s1(2)-sld(2))>10*%eps then bugmes();quit;end
-if norm(s1(3)-sld(3))>10*%eps then bugmes();quit;end
-if norm(r-qd)>10*%eps then bugmes();quit;end
index 001e808..e43ee88 100644 (file)
 // Copyright INRIA
 //
 deff('[ok]=cmpr(h1,h2,eps)',['h1=h1-h2;';
          'if norm(coeff(h1(2)))>eps then ok=0,else ok=1,end'])
 s=poly(0,'s');
 //
 //rationals
 //
 num=1;den=1+s;
 eps=5000*%eps;
 rtyp=['r','num','den','dt'];
 if cmpr(num/den,tlist(rtyp,num,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(den\num,tlist(rtyp,num,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(num./den,tlist(rtyp,num,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(den.\num,tlist(rtyp,num,den,[]),eps)<>1 then bugmes();quit;end
 num=1.5+s**3;
 if cmpr(num/den,tlist(rtyp,num,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(den\num,tlist(rtyp,num,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(num./den,tlist(rtyp,num,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(den.\num,tlist(rtyp,num,den,[]),eps)<>1 then bugmes();quit;end
 //
 h1=num/den;x=1.5;
 if cmpr(h1+x,tlist(rtyp,num+x*den,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(x+h1,tlist(rtyp,num+x*den,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(h1-x,tlist(rtyp,num-x*den,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(x-h1,tlist(rtyp,-num+x*den,den,[]),eps)<>1 then bugmes();quit;end
 x=1.5+3*s;
 if cmpr(h1+x,tlist(rtyp,num+x*den,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(x+h1,tlist(rtyp,num+x*den,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(h1-x,tlist(rtyp,num-x*den,den,[]),eps)<>1 then bugmes();quit;end
 if cmpr(x-h1,tlist(rtyp,-num+x*den,den,[]),eps)<>1 then bugmes();quit;end
 y=s**3;h2=x/y;
 if cmpr(h1+h2,tlist(rtyp,num*y+x*den,den*y,[]),eps)<>1 then bugmes();quit;end
 if cmpr(h1-h2,tlist(rtyp,num*y-x*den,den*y,[]),eps)<>1 then bugmes();quit;end
 //
 // concatenations
 //
 h1=num/den;x=1.5;
 if cmpr([h1,x],tlist(rtyp,[num,x],[den,1],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x,h1],tlist(rtyp,[x,num],[1,den],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;x],tlist(rtyp,[num;x],[den;1],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x;h1],tlist(rtyp,[x;num],[1;den],[]),eps)<>1 then bugmes();quit;end
 x=1.5+3*s;
 if cmpr([h1,x],tlist(rtyp,[num,x],[den,1],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x,h1],tlist(rtyp,[x,num],[1,den],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;x],tlist(rtyp,[num;x],[den;1],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x;h1],tlist(rtyp,[x;num],[1;den],[]),eps)<>1 then bugmes();quit;end
 y=-0.5+s**3;h2=x/y;
 if cmpr([h1,h2],tlist(rtyp,[num,x],[den,y],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;h2],tlist(rtyp,[num;x],[den;y],[]),eps)<>1 then bugmes();quit;end
 h1=[num/den,den/num];x=[0.3 1.5];
 if cmpr([h1,x],tlist(rtyp,[h1(2),x],[h1(3),ones(x)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x,h1],tlist(rtyp,[x,h1(2)],[ones(x),h1(3)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;x],tlist(rtyp,[h1(2);x],[h1(3);ones(x)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x;h1],tlist(rtyp,[x;h1(2)],[ones(x);h1(3)],[]),eps)<>1 then bugmes();quit;end
 h1=[num/den;den/num];x=[0.3;-1.5];
 if cmpr([h1,x],tlist(rtyp,[h1(2),x],[h1(3),ones(x)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x,h1],tlist(rtyp,[x,h1(2)],[ones(x),h1(3)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;x],tlist(rtyp,[h1(2);x],[h1(3);ones(x)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x;h1],tlist(rtyp,[x;h1(2)],[ones(x);h1(3)],[]),eps)<>1 then bugmes();quit;end
 x=[1.5+3*s;-1+s**3];
 if cmpr([h1,x],tlist(rtyp,[h1(2),x],[h1(3),ones(x)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x,h1],tlist(rtyp,[x,h1(2)],[ones(x),h1(3)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;x],tlist(rtyp,[h1(2);x],[h1(3);ones(x)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x;h1],tlist(rtyp,[x;h1(2)],[ones(x);h1(3)],[]),eps)<>1 then bugmes();quit;end
 h1=[num/den,den/num];x=[1.5+3*s,-1+s**2];
 if cmpr([h1,x],tlist(rtyp,[h1(2),x],[h1(3),ones(x)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x,h1],tlist(rtyp,[x,h1(2)],[ones(x),h1(3)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;x],tlist(rtyp,[h1(2);x],[h1(3);ones(x)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([x;h1],tlist(rtyp,[x;h1(2)],[ones(x);h1(3)],[]),eps)<>1 then bugmes();quit;end
 h1=[num/den;den/num];y=-0.5+s**3;h2=[num/y;y*y/(y+1)];
 if cmpr([h1,h2],tlist(rtyp,[h1(2),h2(2)],[h1(3),h2(3)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;h2],tlist(rtyp,[h1(2);h2(2)],[h1(3);h2(3)],[]),eps)<>1 then bugmes();quit;end
 h1=[num/den,den/num];y=-0.5+s**3;h2=[num/y,y*y/(y+1)];
 if cmpr([h1,h2],tlist(rtyp,[h1(2),h2(2)],[h1(3),h2(3)],[]),eps)<>1 then bugmes();quit;end
 if cmpr([h1;h2],tlist(rtyp,[h1(2);h2(2)],[h1(3);h2(3)],[]),eps)<>1 then bugmes();quit;end
 //
 // extraction
 //
 h1=[num/den,den/num];
 if cmpr(h1(1,1),num/den,eps)<>1 then bugmes();quit;end
 if cmpr(h1(1,1:2),h1,eps)<>1 then bugmes();quit;end
 if cmpr(h1(1,[2 1]),[den/num,num/den],eps)<>1 then bugmes();quit;end
 h1=[num/den;den/num];
 if cmpr(h1(2,1),den/num,eps)<>1 then bugmes();quit;end
 if cmpr(h1(1:2,1),h1,eps)<>1 then bugmes();quit;end
 if cmpr(h1([2 1],1),[den/num;num/den],eps)<>1 then bugmes();quit;end
 y=-0.5+s**3;h1=[num/den,den/num];h2=[num/den,den/num;num/y,y*y/(y+1)];
 if cmpr(h2(2,1),num/y,eps)<>1 then bugmes();quit;end
 if cmpr(h2(1:2,1:2),h2,eps)<>1 then bugmes();quit;end
 if cmpr(h2([2 1],1),[num/y;num/den],eps)<>1 then bugmes();quit;end
 if cmpr(h2(:,1),[num/den;num/y],eps)<>1 then bugmes();quit;end
 if cmpr(h2(2,:),[num/y,y*y/(y+1)],eps)<>1 then bugmes();quit;end
 if cmpr(h2(:,:),h2,eps)<>1 then bugmes();quit;end
 //
 // insertions
 //
 h1=[num/den,den/num];x=0.33;
 hh=h1;hh(1,1)=x;if cmpr(hh,[x,h1(1,2)],eps)<>1 then bugmes();quit;end;
 x=[-2.67 0.8];
 hh=h1;hh(1,1:2)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,[2 1])=x;if cmpr(hh,x([2,1]),eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,[2;1])=x;if cmpr(hh,x([2,1]),eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 h1=[num/den;den/num];x=0.33;
 hh=h1;hh(1,1)=x;if cmpr(hh,[x;h1(2,1)],eps)<>1 then bugmes();quit;end;
 x=[-2.67;0.8];
 hh=h1;hh(1:2,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh([2 1],1)=x;if cmpr(hh,x([2 1]),eps)<>1 then bugmes();quit;end;
 hh=h1;hh([2;1],1)=x;if cmpr(hh,x([2 1]),eps)<>1 then bugmes();quit;end;
 h1=[num/den,den/num];x=0.33*s+1;
 hh=h1;hh(1,1)=x;if cmpr(hh,[x,h1(1,2)],eps)<>1 then bugmes();quit;end;
 x=[-2.67 0.8+s**3];
 hh=h1;hh(1,1:2)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,[2 1])=x;if cmpr(hh,x([2,1]),eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,[2;1])=x;if cmpr(hh,x([2,1]),eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 h1=[num/den;den/num];x=-0.33+38*s;
 hh=h1;hh(1,1)=x;if cmpr(hh,[x;h1(2,1)],eps)<>1 then bugmes();quit;end;
 x=[-2.67-s*8;0.8];
 hh=h1;hh(1:2,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh([2 1],1)=x;if cmpr(hh,x([2 1]),eps)<>1 then bugmes();quit;end;
 hh=h1;hh([2;1],1)=x;if cmpr(hh,x([2 1]),eps)<>1 then bugmes();quit;end;
 h1=[num/den,den/num];y=0.33*s+1;x=y*y/(y+1);
 hh=h1;hh(1,1)=x;if cmpr(hh,[x,h1(1,2)],eps)<>1 then bugmes();quit;end;
 x=[num/y,y*y/(y+1)];
 hh=h1;hh(1,1:2)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,[2 1])=x;if cmpr(hh,x(1,[2,1]),eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,[2;1])=x;if cmpr(hh,x(1,[2,1]),eps)<>1 then bugmes();quit;end;
 hh=h1;hh(1,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 h1=[num/den;den/num];x=[num/y;y*y/(y+1)];
 hh=h1;hh(1:2,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
 hh=h1;hh([2 1],1)=x;if cmpr(hh,x([2 1],1),eps)<>1 then bugmes();quit;end;
 hh=h1;hh([2;1],1)=x;if cmpr(hh,x([2 1],1),eps)<>1 then bugmes();quit;end;
 //
 // matrix operations
 //
 h1=[num/den,den/num];x=[0.3 1.5];
 if cmpr(-h1,(-1)*h1,eps)<>1 then bugmes();quit;end
 if cmpr(h1+x,[h1(1,1)+x(1,1) h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
 if cmpr(x+h1,[h1(1,1)+x(1,1) h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1-x,[h1(1,1)-x(1,1) h1(1,2)-x(1,2)],eps)<>1 then bugmes();quit;end
 if cmpr(x-h1,[-h1(1,1)+x(1,1) -h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
 h1=[num/den;den/num];x=[0.3;1.5];
 if cmpr(-h1,(-1)*h1,eps)<>1 then bugmes();quit;end
 if cmpr(h1+x,[h1(1,1)+x(1,1); h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(x+h1,[h1(1,1)+x(1,1); h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1-x,[h1(1,1)-x(1,1); h1(2,1)-x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(x-h1,[-h1(1,1)+x(1,1); -h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
 h1=[num/den,den/num];x=[0.3+s, 1.5];
 if cmpr(-h1,(-1)*h1,eps)<>1 then bugmes();quit;end
 if cmpr(h1+x,[h1(1,1)+x(1,1) h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
 if cmpr(x+h1,[h1(1,1)+x(1,1) h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1-x,[h1(1,1)-x(1,1) h1(1,2)-x(1,2)],eps)<>1 then bugmes();quit;end
 if cmpr(x-h1,[-h1(1,1)+x(1,1) -h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
 h1=[num/den;den/num];x=[0.3;1.5-3*s];
 if cmpr(-h1,(-1)*h1,eps)<>1 then bugmes();quit;end
 if cmpr(h1+x,[h1(1,1)+x(1,1); h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(x+h1,[h1(1,1)+x(1,1); h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1-x,[h1(1,1)-x(1,1); h1(2,1)-x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(x-h1,[-h1(1,1)+x(1,1); -h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
 //
 //
 h1=[num/den,den/num];
 if cmpr([num,den]/den,[num/den,1],eps)<>1 then bugmes();quit;end
 if cmpr(den\[num,den],[num/den,1],eps)<>1 then bugmes();quit;end
 if cmpr([num,den]./[den,num],h1,eps)<>1 then bugmes();quit;end
 if cmpr([den,num].\[num,den],h1,eps)<>1 then bugmes();quit;end
 h1=[num/den,den/num];x=[0.3 1.5];
 if cmpr(h1/x(1),[h1(1,1)/x(1),h1(1,2)/x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(x(1)\h1,[h1(1,1)/x(1),h1(1,2)/x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1./x,[h1(1,1)/x(1),h1(1,2)/x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(x.\h1,[h1(1,1)/x(1),h1(1,2)/x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1*x(1),[h1(1,1)*x(1),h1(1,2)*x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1.*x,[h1(1,1)*x(1),h1(1,2)*x(2)],eps)<>1 then bugmes();quit;end
 h1=[num/den;den/num];
 if cmpr([num;den]/den,[num/den;1],eps)<>1 then bugmes();quit;end
 if cmpr(den\[num;den],[num/den;1],eps)<>1 then bugmes();quit;end
 if cmpr([num;den]./[den;num],h1,eps)<>1 then bugmes();quit;end
 if cmpr([den;num].\[num;den],h1,eps)<>1 then bugmes();quit;end
 x=[0.3;1.5];
 if cmpr(h1/x(1),[h1(1,1)/x(1);h1(2,1)/x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(x(1)\h1,[h1(1,1)/x(1);h1(2,1)/x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1./x,[h1(1,1)/x(1);h1(2,1)/x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(x.\h1,[h1(1,1)/x(1);h1(2,1)/x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1*x(1),[h1(1,1)*x(1);h1(2,1)*x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1.*x,[h1(1,1)*x(1);h1(2,1)*x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1'*x,h1(1,1)*x(1)+h1(2,1)*x(2),eps)<>1 then bugmes();quit;end
 if cmpr(h1*x',[h1(1,1)*x(1),h1(1,1)*x(2);h1(2,1)*x(1),h1(2,1)*x(2)],eps)<>1,
        then bugmes();quit;end
 h1=[num/den,den/num];x=[0.3+3*s, 1.5];
 if cmpr(h1/x(1),[h1(1,1)/x(1),h1(1,2)/x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(x(1)\h1,[h1(1,1)/x(1),h1(1,2)/x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1./x,[h1(1,1)/x(1),h1(1,2)/x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(x.\h1,[h1(1,1)/x(1),h1(1,2)/x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1*x(1),[h1(1,1)*x(1),h1(1,2)*x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1.*x,[h1(1,1)*x(1),h1(1,2)*x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1*x',h1(1,1)*x(1)+h1(1,2)*x(2),eps)<>1 then bugmes();quit;end
 if cmpr(h1'*x,[h1(1,1)*x(1),h1(1,1)*x(2);h1(1,2)*x(1),h1(1,2)*x(2)],eps)<>1,
        then bugmes();quit;end
 h1=[num/den;den/num];x=[0.3+3*s; 1.5];
 if cmpr(h1/x(1),[h1(1,1)/x(1);h1(2,1)/x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(x(1)\h1,[h1(1,1)/x(1);h1(2,1)/x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1./x,[h1(1,1)/x(1);h1(2,1)/x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(x.\h1,[h1(1,1)/x(1);h1(2,1)/x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1*x(1),[h1(1,1)*x(1);h1(2,1)*x(1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1.*x,[h1(1,1)*x(1);h1(2,1)*x(2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1'*x,h1(1,1)*x(1)+h1(2,1)*x(2),eps)<>1 then bugmes();quit;end
 if cmpr(h1*x',[h1(1,1)*x(1),h1(1,1)*x(2);h1(2,1)*x(1),h1(2,1)*x(2)],eps)<>1,
        then bugmes();quit;end
 h1=[num/den,den/num];x=[0.3/s,1.5-s**2/(1+s**2)];
 if cmpr(h1/x(1,1),[h1(1,1)/x(1,1),h1(1,2)/x(1,1)],eps)<>1 then bugmes();quit;end
 if cmpr(x(1,1)\h1,[h1(1,1)/x(1,1),h1(1,2)/x(1,1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1./x,[h1(1,1)/x(1,1),h1(1,2)/x(1,2)],eps)<>1 then bugmes();quit;end
 if cmpr(x.\h1,[h1(1,1)/x(1,1),h1(1,2)/x(1,2)],eps)<>1 then bugmes();quit;end
 if cmpr(h1*x(1,1),[h1(1,1)*x(1,1),h1(1,2)*x(1,1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1.*x,[h1(1,1)*x(1,1),h1(1,2)*x(1,2)],eps)<>1 then bugmes();quit;end
 h1=[num/den;den/num];x=[0.3/s;1.5-s**2/(1+s**2)];
 if cmpr(h1/x(1,1),[h1(1,1)/x(1,1);h1(2,1)/x(1,1)],eps)<>1 then bugmes();quit;end
 if cmpr(x(1,1)\h1,[h1(1,1)/x(1,1);h1(2,1)/x(1,1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1./x,[h1(1,1)/x(1,1);h1(2,1)/x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(x.\h1,[h1(1,1)/x(1,1);h1(2,1)/x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1*x(1,1),[h1(1,1)*x(1,1);h1(2,1)*x(1,1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1.*x,[h1(1,1)*x(1,1);h1(2,1)*x(2,1)],eps)<>1 then bugmes();quit;end
 if cmpr(h1'*x,h1(1,1)*x(1,1)+h1(2,1)*x(2,1),eps)<>1 then bugmes();quit;end
 if cmpr(h1*x',[h1(1,1)*x(1,1),h1(1,1)*x(2,1)
                h1(2,1)*x(1,1),h1(2,1)*x(2,1)],eps)<>1,
        then bugmes();quit;end
 //
 h1=h1*x';x=[1 2;3 4];
 if cmpr(h1/x,h1*inv(x),eps)<>1 then bugmes();quit;end
 if cmpr(x\h1,inv(x)*h1,eps)<>1 then bugmes();quit;end
 x=[s s*s+s-1;1 s+1];xi=[1+s,1-s-s*s;-1 s];
 if norm(coeff(invr(x)-xi))>eps then bugmes();quit;end
 if cmpr(h1/x,h1*xi,eps)<>1 then bugmes();quit;end
 if cmpr(x\h1,xi*h1,eps)<>1 then bugmes();quit;end
 if cmpr(x**(-1),xi,eps)<>1 then bugmes();quit;end
 x=[1/(1+s) 1/(s*(s+1))-1;1 1/s];xi=[1/s,-1/(s*(s+1))+1;-1,1/(1+s)];
 if cmpr(invr(x),xi,eps)<>1 then bugmes();quit;end
 if cmpr(h1/x,h1*xi,eps)<>1 then bugmes();quit;end
 if cmpr(x\h1,xi*h1,eps)<>1 then bugmes();quit;end
 if cmpr((1/(1+s))**3,1/((1+s)**3),eps)<>1 then bugmes();quit;end
 x=[1/(1+s),1;0 1/s];x3=[x(1,1)**3,x(1,1)**2+x(2,2)*(x(2,2)+x(1,1));0,x(2,2)**3];
 if cmpr(x**3,x3,eps)<>1 then bugmes();quit;end
 //Bezout
 mode(5)
 //test
 un=poly(1,'s','c');
index 92867dc..4aab9a8 100644 (file)
@@ -1,6 +1,4 @@
 // Copyright INRIA
 deff('[y]=t(x)',[
 'y=0'
 'if x>0 then'
@@ -25,50 +23,27 @@ deff('[y]=t(x)',[
 '    end'
 '  end'
 'end'],'n')
 //
 if t(0)<>0 then bugmes();quit;end
 if t(1)<>0 then bugmes();quit;end
 if t(-1)<>1 then bugmes();quit;end
 //
 t1=t;
 comp(t1)
-Warning : redefining function : t1                      
+Warning : redefining function: t1                      
+
 if t(0)-t1(0)<>0 then bugmes();quit;end
 if t(1)-t1(1)<>0 then bugmes();quit;end
 if t(-1)-t1(-1)<>0 then bugmes();quit;end
 //==========================================================================
 //test of break
 //==========================================================================
 // for in macro
 //--------------------------------------
 deff('[k]=tt1()','k=0,for i=1:5 ,k=k+1;if k==3 then break,end,end,k=k+1','n')
 if tt1()<>4 then bugmes();quit;end
 if tt1()<>4 then bugmes();quit;end
 clear tt1
 deff('[k]=tt1()',[
 'k=0,';
 'for i=1:5 ,';
@@ -76,15 +51,9 @@ deff('[k]=tt1()',[
 '  if k==3 then break,end,';
 '  if k==-1 then 1,end,';
 'end,k=k+1'],'n')
 if tt1()<>4 then bugmes();quit;end
 if tt1()<>4 then bugmes();quit;end
 clear tt1
 deff('[k]=tt1()',[
 'k=0,';
 'for i=1:5 ,';
@@ -93,27 +62,16 @@ deff('[k]=tt1()',[
 '  for j=1:5,j,end,';
 'end,';
 'k=k+1'],'n')
 if tt1()<>4 then bugmes();quit;end
 if tt1()<>4 then bugmes();quit;end
 // while
 //----------------------------------------
 deff('[k]=tt1()','k=0,while k<10 ,k=k+1;if k==3 then break,end,end,k=k+1','n')
-Warning : redefining function : tt1                     
+Warning : redefining function: tt1                     
+
 if tt1()<>4 then bugmes();quit;end
 if tt1()<>4 then bugmes();quit;end
 clear tt1
 deff('[k]=tt1()',[
 'k=0,';
 'while k<10 ,';
@@ -121,15 +79,9 @@ deff('[k]=tt1()',[
 '  if k==3 then break,end,';
 '  if k==-1 then 1,end,';
 'end,k=k+1'],'n')
 if tt1()<>4 then bugmes();quit;end
 if tt1()<>4 then bugmes();quit;end
 clear tt1
 deff('[k]=tt1()',[
 'k=0,';
 'while k<10 ,';
@@ -138,204 +90,98 @@ deff('[k]=tt1()',[
 '  for j=1:5,j,end,';
 'end,';
 'k=k+1'],'n')
 if tt1()<>4 then bugmes();quit;end
 if tt1()<>4 then bugmes();quit;end
 //
 // keyboard mode
 //------------------------
 k=0;while k<10 ,k=k+1;if k==3 then break,end,end,k=k+1;
 if k<>4 then bugmes();quit;end
 k=0;while k<10 ,k=k+1;if k==3 then break,end,end,
 k=k+1;
 if k<>4 then bugmes();quit;end
 k=0;for  i=1:5 ,k=k+1;if k==3 then break,end,end,k=k+1;
 if k<>4 then bugmes();quit;end
 k=0;for  i=1:5 ,k=k+1;if k==3 then break,end,end,
 k=k+1;
 if k<>4 then bugmes();quit;end
 //
 k=0;while k<10,if k==0 then break,end,k=k+1;end,k=k+1;
 if k<>1 then bugmes();quit;end
 k=0;while k<10,if k==0 then break,end,k=k+1;end,
 k=k+1;
 if k<>1 then bugmes();quit;end
 k=0;for i=1:5,if k==0 then break,end,k=k+1;end,k=k+1;
 if k<>1 then bugmes();quit;end
 k=0;for i=1:5,if k==0 then break,end,k=k+1;end,
 k=k+1;
 if k<>1 then bugmes();quit;end
 //==========================================================================
 //test of continue
 //==========================================================================
 //in a for
 //----------
 n=3;
 c=[];for k=1:5,if k==n then continue,end,c=[c,k];end
 if or(c<>[1 2 4 5]) then bugmes();quit;end
 n=5;
 c=[];for k=1:5,if k==n then continue,end,c=[c,k];end
 if or(c<>[1 2 3 4]) then bugmes();quit;end
 deff('c=foo(n)','c=[];for k=1:5,if k==n then continue,end,c=[c,k],end','n')
 if or(foo(3)<>[1 2 4 5]) then bugmes();quit;end
 if or(foo(5)<>[1 2 3 4]) then bugmes();quit;end
 comp(foo)
-Warning : redefining function : foo                     
+Warning : redefining function: foo                     
+
 if or(foo(3)<>[1 2 4 5]) then bugmes();quit;end
 if or(foo(5)<>[1 2 3 4]) then bugmes();quit;end
 n=3;
 c=[];for i=1:3,for k=1:4,if k==n&i==2 then continue,end,c=[c,k];end;end
 if or(c<>[1,2,3,4, 1,2,4, 1,2,3,4]) then bugmes();quit;end
 n=4;
 c=[];for i=1:3,for k=1:4,if k==n&i==2 then continue,end,c=[c,k];end;end
 if or(c<> [1,2,3,4, 1,2,3, 1,2,3,4]) then bugmes();quit;end
 deff('c=foo(n)','c=[];for i=1:3,for k=1:4,if k==n&i==2 then continue,end,c=[c,k];end;end','n')
-Warning : redefining function : foo                     
+Warning : redefining function: foo                     
+
 if or(foo(3)<>[1,2,3,4, 1,2,4, 1,2,3,4]) then bugmes();quit;end
 if or(foo(4)<>[1,2,3,4, 1,2,3, 1,2,3,4]) then bugmes();quit;end
 comp(foo)
-Warning : redefining function : foo                     
+Warning : redefining function: foo                     
+
 if or(foo(3)<>[1,2,3,4, 1,2,4, 1,2,3,4]) then bugmes();quit;end
 if or(foo(4)<>[1,2,3,4, 1,2,3, 1,2,3,4]) then bugmes();quit;end
 //in a while
 //----------
 //
 n=3;
 c=[];k=0;while k<5,k=k+1;if k==n then continue,end,c=[c,k];end
 if or(c<>[1 2 4 5]) then bugmes();quit;end
 n=5;
 c=[];k=0;while k<5,k=k+1;if k==n then continue,end,c=[c,k];end
 if or(c<>[1 2 3 4]) then bugmes();quit;end
 deff('c=foo(n)','c=[];k=0;while k<5,k=k+1;if k==n then continue,end,c=[c,k],end','n')
-Warning : redefining function : foo                     
+Warning : redefining function: foo                     
+
 if or(foo(3)<>[1 2 4 5]) then bugmes();quit;end
 if or(foo(5)<>[1 2 3 4]) then bugmes();quit;end
 comp(foo)
-Warning : redefining function : foo                     
+Warning : redefining function: foo                     
+
 if or(foo(3)<>[1 2 4 5]) then bugmes();quit;end
 if or(foo(5)<>[1 2 3 4]) then bugmes();quit;end
 n=3;
 c=[];for i=1:3,k=0;while k<4,k=k+1;if k==n&i==2 then continue,end,c=[c,k];end;end
 if or(c<>[1,2,3,4, 1,2,4, 1,2,3,4]) then bugmes();quit;end
 n=4;
 c=[];for i=1:3,k=0;while k<4,k=k+1;,if k==n&i==2 then continue,end,c=[c,k];end;end
 if or(c<> [1,2,3,4, 1,2,3, 1,2,3,4]) then bugmes();quit;end
 clear foo
 deff('c=foo(n)','c=[];for i=1:3,k=0;while k<4,k=k+1;if k==n&i==2 then continue,end,c=[c,k];end;end','n')
 if or(foo(3)<>[1,2,3,4, 1,2,4, 1,2,3,4]) then bugmes();quit;end
 if or(foo(4)<>[1,2,3,4, 1,2,3, 1,2,3,4]) then bugmes();quit;end
 comp(foo)
-Warning : redefining function : foo                     
+Warning : redefining function: foo                     
+
 if or(foo(3)<>[1,2,3,4, 1,2,4, 1,2,3,4]) then bugmes();quit;end
 if or(foo(4)<>[1,2,3,4, 1,2,3, 1,2,3,4]) then bugmes();quit;end
index 42a33be..6a0cf06 100644 (file)
@@ -1,94 +1,62 @@
 clear //sdfdgd
 clear//sdfdgd
 a=1;
 clear a//sdfdgd
 deff('y=foo(a,b,c)','y=a+b+c','n')
 foo aaa bbb   cc
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo aaa bbb   cc;
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo 'aaa' bbb 'cc'
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo aaa 'bbb' cc
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo aaa bbb cc //qdsddfd
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo aaa bbb cc//qdsddfd
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 deff('y=foo(a,b,c)','y=a+b+c')
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 foo aaa bbb   cc
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo 'aaa' bbb 'cc'
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo aaa 'bbb' cc
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo aaa bbb cc //qdsddfd
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 foo aaa bbb cc//qdsddfd
  ans  =
  
  aaabbbcc   
 if ans<>'aaabbbcc' then bugmes();quit;end
 ascii foo;
 if ans<>[102,111,111] then bugmes();quit;end
index dc86864..61d66f0 100644 (file)
@@ -1,72 +1,43 @@
 //for version after 3.0 the comments are no more handled by a preprocessor,
 //but by the parser itself
 a=1//test
  a  =
  
     1.  
 if a<>1 then bugmes();quit;end
 a=2;//test
 if a<>2 then bugmes();quit;end
 a=1..//test
 2
  a  =
  
     12.  
 if a<>12 then bugmes();quit;end
 a='1//test';
 if a<>'1/'+'/test' then bugmes();quit;end
 a=33;//'sqdf'qsdf'
 if a<>33 then bugmes();quit;end
 //in matrix concatenation
 a=[//test
 1 //test1
 2 //test2
 ];//endtest
 if or(a<>[1;2])  then bugmes();quit;end
 a=[//test
 ];
 if a<>[]  then bugmes();quit;end
 a=[//test
 //test1
 //test2
 ];
 if a<>[]  then bugmes();quit;end
 //in multi-line control instruction
 if %t //test
   a=3; //test1
 else //test2 end
   a=4//test3 end
 end//endtest
 if a<>3 then bugmes();quit;end
 if %f //test
  a=3; //test1
 else //test2 end
@@ -75,12 +46,8 @@ else //test2 end
  
     4.  
 end//endtest
 if a<>4 then bugmes();quit;end
 a=0;
 for k=1:10 //loop begin
   if a> 10 then //
     break // go out the loop
@@ -89,21 +56,14 @@ for k=1:10 //loop begin
   end //xxxxx
   a=a+k; //hhhhh
 end //loop end
 if a<>15 then bugmes();quit;end
 for i=1
   a=1;
 end //
 a=0;k=0
  k  =
  
     0.  
 while %t //loop begin
   k=k+1; //ttttt
   if a> 10 then //
@@ -113,12 +73,8 @@ while %t //loop begin
   end //xxxxx
   a=a+k; //hhhhh
 end //loop end
 if a<>15 then bugmes();quit;end
 c=1;
 select c //test
 case 1 then//test then
   a=8; //test8
@@ -127,12 +83,8 @@ case 2 then //test end
 else //else
   a=0  //test zeor
 end //end
 if a<>8 then bugmes();quit;end
 c=2;
 select c //test
 case 1 then//test then
   a=8; //test8
@@ -144,166 +96,93 @@ case 2 then //test end
 else //else
   a=0  //test zeor
 end //end
 if a<>-1 then bugmes();quit;end
 // In execstr
 execstr('a=1//test')
 if a<>1 then bugmes();quit;end
 execstr('a=2;//test')
 if a<>2 then bugmes();quit;end
 execstr('a=''1//test'';')
 if a<>'1/'+'/test' then bugmes();quit;end
 execstr('a=33;//''sqdf''qsdf''')
 if a<>33 then bugmes();quit;end
 // In execstr with matrix concatenation
 t=['a=[//test'
    '1 //test1'
    '2 //test2'
    '];//endtest'];
 execstr(t)
 if or(a<>[1;2])  then bugmes();quit;end
 t=['a=[//test'
    '];'];
 execstr(t)
 if a<>[]  then bugmes();quit;end
 t=['a=[//test'
    '//test1'
    '//test2'
    '];'];
 execstr(t)
 if a<>[]  then bugmes();quit;end
 // In execstr with control instructions
 t=['if %t //test'
    '  a=3; //test1'
    'else //test2 end'
    '  a=4//test3 end'
    'end//endtest'];execstr(t)
 if a<>3 then bugmes();quit;end
 t=['if %f //test'
 ' a=3; //test1'
 'else //test2 end'
 ' a=4//test3 end'
 'end//endtest'];execstr(t)
 if a<>4 then bugmes();quit;end
 // in deff (without compilation)
 funcprot(0)
 deff('a=foo','a=1//test','n');a=foo();
 if a<>1 then bugmes();quit;end
 deff('a=foo','a=''1//test'';','n');a=foo();
 if a<>'1/'+'/test' then bugmes();quit;end
 deff('a=foo','a=33;//''sqdf''qsdf''','n');a=foo();
 if a<>33 then bugmes();quit;end
 t=['if %t //test'
    '  a=3; //test1'
    'else //test2 end'
    '  a=4//test3 end'
    'end//endtest'];deff('a=foo',t,'n');a=foo();
 if a<>3 then bugmes();quit;end
 // in deff (with compilation)
 deff('a=foo','a=1//test');a=foo();
 if a<>1 then bugmes();quit;end
 deff('a=foo','a=''1//test'';');a=foo();
 if a<>'1/'+'/test' then bugmes();quit;end
 deff('a=foo','a=33;//''sqdf''qsdf''');a=foo();
 if a<>33 then bugmes();quit;end
 t=['if %t //test'
    '  a=3; //test1'
    'else //test2 end'
    '  a=4//test3 end'
    'end//endtest'];deff('a=foo',t);a=foo();
 if a<>3 then bugmes();quit;end
 // in function
 function a=foo
   a=1//test
 endfunction
 a=foo();
 if a<>1 then bugmes();quit;end
 function  foo()
    x_message(["http://xmllab.org"]);
 endfunction
 function a=foo(..
               )
   a=1//test
 endfunction
 a=foo();
 if a<>1 then bugmes();quit;end
 function a=foo// CALLING SYNTAX
   a=1//test
 endfunction
 a=foo();
 if a<>1 then bugmes();quit;end
 function a=foo// CALLING SYNTAX
   a=0;k=0
   while %t //loop begin
@@ -316,13 +195,8 @@ function a=foo// CALLING SYNTAX
     a=a+k; //hhhhh
   end //loop end
 endfunction
 a=foo();
 if a<>15 then bugmes();quit;end
 function a=foo
   a=0;k=0;//initialization
   function a=fii  //internal function
@@ -339,14 +213,9 @@ function a=foo
   a=fii()
   //SDSDFD
 endfunction
 a=foo();
 if a<>15 then bugmes();quit;end
 //with  getf
 t=['function a=foo'
   'a=0;k=0;//initialization'
   '  while %t //loop begin'
@@ -359,23 +228,13 @@ t=['function a=foo'
   '    a=a+k; //hhhhh'
   '  end //loop end'
   'endfunction'];
 mputl(t,TMPDIR+'/foo.sci')
 getf(TMPDIR+'/foo.sci','n')
 a=foo();
 if a<>15 then bugmes();quit;end
 getf(TMPDIR+'/foo.sci')
 a=foo();
 if a<>15 then bugmes();quit;end
 t=['//sdffgfgfgggg'
    '//sdsdsddfgfgfghgfhjhui'
    'function a=foo//uuuuuuu'
@@ -390,28 +249,15 @@ t=['//sdffgfgfgggg'
    '    a=a+k; //hhhhh'
    '  end //loop end'
    'endfunction'];
 mputl(t,TMPDIR+'/foo.sci')
 getf(TMPDIR+'/foo.sci','n')
 a=foo();
 if a<>15 then bugmes();quit;end
 getf(TMPDIR+'/foo.sci')
 a=foo();
 if a<>15 then bugmes();quit;end
 //with macr2lst
 //first define an utilitary function
 function [C,L,lc]=getcomments(lst,lc)
  C=[],L=[];
  if argn(2)<2 then lc=0,end
@@ -429,7 +275,6 @@ function [C,L,lc]=getcomments(lst,lc)
     end
   end
 endfunction
 function [C,L,lc]=getcommentsintree(T,lc)
  C=[],L=[];
  if argn(2)<2 then lc=0,end
@@ -457,8 +302,6 @@ function [C,L,lc]=getcommentsintree(T,lc)
     end
   end
 endfunction
 function a=foo
   a=0;k=0;//initialization
   while %t //loop begin
@@ -471,10 +314,7 @@ function a=foo
     a=a+k; //hhhh h
   end //loop end
 endfunction
 [C,L]=getcomments(macr2lst(foo));
 Cref=["initialization";
 "loop begin";
 "ttt tt";
@@ -485,15 +325,9 @@ Cref=["initialization";
 "x xxxx";
 "hhhh h";
 "loop end"];
 if or(C<>Cref) then bugmes();quit;end
 if or(L<>(1:10)') then bugmes();quit;end
 //with macr2tree
 function a=foo
   a=0;k=0;//initialization
   while %t
@@ -506,9 +340,7 @@ function a=foo
     a=a+k; //hhh hh
   end //loop end
 endfunction
 T=macr2tree(foo);
 [C,L]=getcommentsintree(T.statements)
  L  =
  
@@ -540,7 +372,6 @@ T=macr2tree(foo);
 !hhh hh            !
 !                  !
 !loop end          !
 Cref=["initialization";
       "ttttt ttttt";
       "f f";
@@ -550,15 +381,9 @@ Cref=["initialization";
       "xx xxx";
       "hhh hh";
       "loop end"];
 Lref=[1 3:10]';
 if or(C<>Cref) then bugmes();quit;end
 if or(L<>Lref) then bugmes();quit;end
 function a=foo
   a=0;k=0;//initialization
   while %t //loop begin
@@ -571,20 +396,11 @@ function a=foo
     a=a+k; //hhhhh
   end //loop end
 endfunction
 //T=macr2tree(foo);  bug a cause du commentaire //loop begin
 deff('[y]=u(t)','if t==0 then y=0;else y=1,end') //step qsdqsqsd
 function y=foo(a),y=a,endfunction//test qsdqsd
 foo(2)  //zeros=0
  ans  =
  
     2.  
 foo("f//");
index 6ad9c77..f239726 100644 (file)
@@ -1,41 +1,28 @@
 // Copyright INRIA
 format('v',10)
 //display of numbers
 x=2.6533333
  x  =
  
     2.6533333  
 x=[2.6533333 -0.0002]
  x  =
  
     2.6533333  - 0.0002  
 x'
  ans  =
  
     2.6533333  
   - 0.0002     
 x=[]
  x  =
  
      []
 //display of polynomials
 z=poly(0,'z')
  z  =
  
     z   
 num=[ (((((1)*z-2.6533333)*z+2.6887936)*z-1.2916784)*z+0.2911572)*...
      z-0.0243497
       (((((1)*z-2.6533333)*z+2.6887936)*z-1.2916784)*z+0.2911572)*...
@@ -58,7 +45,6 @@ num=[ (((((1)*z-2.6533333)*z+2.6887936)*z-1.2916784)*z+0.2911572)*...
     1 + z                                                               
                                                                         
     0                                                                   
 den = [ ((((1)*z-1.536926)*z+0.8067352)*z-0.1682810)*z+0.0113508
 ((((1)*z-1.536926)*z+0.8067352)*z-0.1682810)*z+0.0113508
 ((1)*z )*z
@@ -75,7 +61,6 @@ den = [ ((((1)*z-1.536926)*z+0.8067352)*z-0.1682810)*z+0.0113508
     z                                                    
                                                          
     1                                                    
 num',den'
  ans  =
  
@@ -110,7 +95,6 @@ num',den'
  
                                       2           3   4     2        
     0.0113508 - 0.168281z + 0.8067352z - 1.536926z + z     z     1   
 [num;den]
  ans  =
  
@@ -139,7 +123,6 @@ num',den'
     z                                                                   
                                                                         
     1                                                                   
 [num den]
  ans  =
  
@@ -173,33 +156,23 @@ num',den'
     z                                                    
                                                          
     1                                                    
 //display of polynomials
 z=poly(0,'z')
  z  =
  
     z   
 n=1+z;d=n*n;n1=[n d];d1=[d d*d];n1=[n1 n1];d1=[d1 d1];
 n2=[n n*n;n*n n**4];d2=[n*n n**4;n n*n];den=d2(1,:);num=n2(2,:);
 p=poly(rand(5,1),'z');q=poly(rand(6,1),'z');
 p1=[p,0.1+2.35*z-5.05*z**3];q1=[q,2.56+0.03*z-10.01*z*z+z**5];
 d3=[1+z**10 z**15];
 //display of rationals
 r=num./den
  r  =
  
     1     1   
     -     -   
     1     1   
 r'
  ans  =
  
@@ -210,7 +183,6 @@ r'
     1   
     -   
     1   
 tlist('r',d,n)
  ans  =
  
@@ -218,7 +190,6 @@ tlist('r',d,n)
     1 + 2z + z   
     ----------   
       1 + z      
 tlist('r',n,d)
  ans  =
  
@@ -226,7 +197,6 @@ tlist('r',n,d)
     ---------    
               2  
     1 + 2z + z   
 tlist('r',d2,n2)
  ans  =
  
@@ -241,7 +211,6 @@ tlist('r',d2,n2)
     ---------      --------------------   
               2               2    3   4  
     1 + 2z + z     1 + 4z + 6z + 4z + z   
 tlist('r',n2,d2)
  ans  =
  
@@ -256,7 +225,6 @@ tlist('r',n2,d2)
     ----------     --------------------   
                                   2       
       1 + z             1 + 2z + z        
 tlist('r',den,num)
  ans  =
  
@@ -265,7 +233,6 @@ tlist('r',den,num)
     ----------     --------------------   
               2               2    3   4  
     1 + 2z + z     1 + 4z + 6z + 4z + z   
 tlist('r',num,den)
  ans  =
  
@@ -274,7 +241,6 @@ tlist('r',num,den)
     ----------     --------------------   
               2               2    3   4  
     1 + 2z + z     1 + 4z + 6z + 4z + z   
 tlist('r',p1,q1)
  ans  =
  
@@ -298,7 +264,6 @@ tlist('r',p1,q1)
     -------------------------   
                          2   5  
     2.56 + 0.03z - 10.01z + z   
 tlist('r',q1,p1)
  ans  =
  
@@ -322,7 +287,6 @@ tlist('r',q1,p1)
     -------------------------   
                           3     
        0.1 + 2.35z - 5.05z      
 tlist('r',p,q)
  ans  =
  
@@ -335,7 +299,6 @@ tlist('r',p,q)
     0.0123314 - 0.2684985z + 1.5393672z - 4.0114366z + 5.4004179z       
                    5   6                                                
        - 3.6713072z + z                                                 
 tlist('r',q,p)
  ans  =
  
@@ -348,7 +311,6 @@ tlist('r',q,p)
   - 0.0000078 + 0.0351988z - 0.3720034z + 1.3432153z - 1.9632981z       
           5                                                             
        + z                                                              
 tlist('r',p,z)
  ans  =
  
@@ -358,7 +320,6 @@ tlist('r',p,z)
        + z                                                              
     ------------------------------------------------------------------  
                                     z                                   
 tlist('r',z,p)
  ans  =
  
@@ -368,7 +329,6 @@ tlist('r',z,p)
   - 0.0000078 + 0.0351988z - 0.3720034z + 1.3432153z - 1.9632981z       
           5                                                             
        + z                                                              
 tlist('r',d1,n1)
  ans  =
  
@@ -388,7 +348,6 @@ tlist('r',d1,n1)
     --------------------   
                    2       
          1 + 2z + z        
 tlist('r',n1,d1)
  ans  =
  
@@ -408,43 +367,35 @@ tlist('r',n1,d1)
     --------------------   
                2    3   4  
     1 + 4z + 6z + 4z + z   
 //display of strings
 digits='abcdefghijklmnopqrstuvwxyz'
  digits  =
  
  abcdefghijklmnopqrstuvwxyz   
 numbers='1234567890'
  numbers  =
  
  1234567890   
 majuscules='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  majuscules  =
  
  ABCDEFGHIJKLMNOPQRSTUVWXYZ   
 symbols=',./;''[] \ =-!\$%^&*()_+~:""[]| @'
  symbols  =
  
  ,./;'[] \ =-!\$%^&*()_+~:"[]| @   
 [numbers;digits]
  ans  =
  
 !1234567890                  !
 !                            !
 !abcdefghijklmnopqrstuvwxyz  !
 [numbers digits;digits numbers]
  ans  =
  
 !1234567890                  abcdefghijklmnopqrstuvwxyz  !
 !                                                        !
 !abcdefghijklmnopqrstuvwxyz  1234567890                  !
 [numbers digits+digits+digits]
  ans  =
  
@@ -457,9 +408,7 @@ symbols=',./;''[] \ =-!\$%^&*()_+~:""[]| @'
  
 !abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr!
 !     stuvwxyz                                                         !
 ans';
 [ans ans]
  ans  =
  
@@ -477,20 +426,15 @@ ans';
 !                                                                      !
 !abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr!
 !     stuvwxyz                                                         !
 ''
  ans  =
  
     
 // display of list
 list()
  ans  =
  
      ()
 list(1,2,3)
  ans  =
  
@@ -506,7 +450,6 @@ list(1,2,3)
        ans(3)
  
     3.  
 list(list(1,list()),2)
  ans  =
  
@@ -525,7 +468,6 @@ list(list(1,list()),2)
        ans(2)
  
     2.  
 list(tlist('r',q,p),1.23)
  ans  =
  
@@ -545,15 +487,12 @@ list(tlist('r',q,p),1.23)
        ans(2)
  
     1.23  
 // overloading of display
 1:$
  ans  =
  
  
  1:1:$   
 list(1,1:$)
  ans  =
  
@@ -566,7 +505,6 @@ list(1,1:$)
  
  
  1:1:$   
 list(list(1:$))
  ans  =
  
@@ -578,7 +516,6 @@ list(list(1:$))
  
  
  1:1:$   
 list(list(1,$),list())
  ans  =
  
@@ -597,9 +534,7 @@ list(list(1,$),list())
        ans(2)
  
      ()
 // Tlist overloaded display
 TL=tlist('x',1,2)
  TL  =
  
@@ -615,9 +550,7 @@ TL=tlist('x',1,2)
        TL(3)
  
     2.  
 deff('%x_p(x)','disp(x(3),x(2),''Mydisplay'')')
 TL
  TL  =
  
@@ -627,7 +560,6 @@ TL
     1.  
  
     2.  
 list(TL)
  ans  =
  
@@ -640,7 +572,6 @@ list(TL)
     1.  
  
     2.  
 list(list(TL))
  ans  =
  
@@ -656,7 +587,6 @@ list(list(TL))
     1.  
  
     2.  
 TL=tlist('x',1:$,2)
  TL  =
  
@@ -667,7 +597,6 @@ TL=tlist('x',1:$,2)
  1:1:$   
  
     2.  
 list(TL)
  ans  =
  
@@ -681,7 +610,6 @@ list(TL)
  1:1:$   
  
     2.  
 list(list(TL))
  ans  =
  
@@ -698,7 +626,6 @@ list(list(TL))
  1:1:$   
  
     2.  
 TL(2)=TL
  TL  =
  
@@ -714,4 +641,3 @@ TL(2)=TL
     2.  
  
     2.  
index f400751..ee271b9 100644 (file)
@@ -1,98 +1,73 @@
 // Copyright INRIA
 a=-1
  a  =
  
   - 1.  
 b=1+%i
  b  =
  
     1. + i    
 c=[]
  c  =
  
      []
 abs(a)
  ans  =
  
     1.  
 abs(b)
  ans  =
  
     1.4142136  
 abs(c)
  ans  =
  
      []
 real(a)
  ans  =
  
   - 1.  
 real(b)
  ans  =
  
     1.  
 real(c)
  ans  =
  
      []
 imag(a)
  ans  =
  
     0.  
 imag(b)
  ans  =
  
     1.  
 imag(c)
  ans  =
  
      []
 conj(a)
  ans  =
  
   - 1.  
 conj(b)
  ans  =
  
     1. - i    
 conj(c)
  ans  =
  
      []
 int(a)
  ans  =
  
   - 1.  
 int(b)
  ans  =
  
     1. + i    
 int(c)
  ans  =
  
      []
index 029eaa1..b52dbb7 100644 (file)
@@ -1,75 +1,36 @@
 //tests on functions pointer usage
 f=exp
  f  =
  
 if type(f)<>130 then bugmes();quit;end
 if f(1)<>exp(1) then bugmes();quit;end
 l=list(exp,f,3);
 f=l(1);
 if type(f)<>130 then bugmes();quit;end
 if f(1)<>exp(1) then bugmes();quit;end
 f=l(2);
 if type(f)<>130 then bugmes();quit;end
 if f(1)<>exp(1) then bugmes();quit;end
 l=tlist(['foo','fun'],exp);
 f=l.fun;
 if type(f)<>130 then bugmes();quit;end
 if f(1)<>exp(1) then bugmes();quit;end
 if l.fun(1)<>exp(1) then bugmes();quit;end
 function y=myf(x),y=exp(x),endfunction
 l=tlist(['foo','fun'],myf);
 if l.fun(1)<> exp(1) then bugmes();quit;end
 function y=foo(fun,x),y=fun(x),endfunction
 if foo(exp,1)<>exp(1) then bugmes();quit;end
 function y=foo(fun,x,y),y=fun(x,y),endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 if foo(atan,1,0)<>atan(1,0) then bugmes();quit;end
 function y=foo(fun),y=[],for x=1:3,y=[y,fun(x)],end,endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 if foo(exp)<>exp(1:3) then bugmes();quit;end
 l=tlist(['foo','funs'],list(exp,sin,cos));
 function y=foo(l),y=[],for k=1:3,y=[y,l.funs(k)(1)],end,endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 if or(foo(l)<>[exp(1),sin(1),cos(1)]) then bugmes();quit;end
index bde1741..267421e 100644 (file)
@@ -1,89 +1,53 @@
 //Checks syntactical aspects  related to functions
 funcprot(0)
 //
 //               Various calling sequences
 //               -------------------------
 function y=foo(x)
  y=x^2
 endfunction
 if foo(2)<>4  then bugmes();quit;end
 //
 function y=foo(a,b)
  y=a+b
 endfunction
 if foo(2,3)<>5  then bugmes();quit;end
 //
 function [y,z]=foo(a)
  y=a^2
  z=a^3
 endfunction
 [y,z]=foo(2);if y<>4|z<>8 then bugmes();quit;end
 //
 function y=foo()
  y=2
 endfunction
 if foo()<>2  then bugmes();quit;end
 //
 function y=foo
  y=2
 endfunction
 if foo()<>2  then bugmes();quit;end
 //
 function []=foo
  y=resume(2)
 endfunction
 foo();if y<>2  then bugmes();quit;end
 //
 function foo
  y=resume(3)
 endfunction
 foo();if y<>3  then bugmes();quit;end
 //
 //               Various line splits
 //               -------------------
 function y=foo(x),y=x^2
 endfunction
 if foo(2)<>4  then bugmes();quit;end
 //
 function y=foo(x),y=3*x,endfunction
 if foo(2)<>6  then bugmes();quit;end
 //
 function y=foo(x)
   z=x^2
   function y=foo1(x)
@@ -91,45 +55,30 @@ function y=foo(x)
   endfunction
   y=foo1(z)
 endfunction
 if foo(2)<>5  then bugmes();quit;end
 //
 //               Combined with deff
 //               -------------------
 function y=foo(x)
   z=x^2
   deff('y=foo1(x)','y=x+1')
   y=foo1(z)
 endfunction
 if foo(2)<>5  then bugmes();quit;end
 //
 deff('y=foo(x)',[
     'z=x^2'
     'function y=foo1(x)'
     'y=x+1'
     'endfunction'
     'y=foo1(z)'])
 if foo(2)<>5  then bugmes();quit;end
                
 function y=foo(x),y=x+1
 endfunction;if foo(2)<>3  then bugmes();quit;end
 //
 //               Combined with exec
 //               -------------------
 function foo
   z=9;
   function y=foo1(x)
@@ -137,15 +86,9 @@ function foo
   endfunction
   y=foo1(z);
 endfunction
 //
 //               Combined with control instructions
 //               ----------------------------------
 if %t then
   function  y=foo(x)
     y=sin(x)
@@ -155,11 +98,8 @@ else
     y=1
   endfunction
 end
 if foo(1)<>sin(1)  then bugmes();quit;end
 //
 if %t then
   function  y=foo(x)
   if x==0 then
@@ -173,93 +113,58 @@ else
     y=1
   endfunction
 end
 if foo(0)<>1   then bugmes();quit;end
 if foo(2)<>sin(2)/2   then bugmes();quit;end
 //
 z=0;
 for k=1:2
  function y=foo()
    y=k
  endfunction
  z=z+foo();
 end
 if z<>3 then bugmes();quit;end
 //
 z=0;for k=1:2
  function y=foo(),y=k,endfunction
  z=z+foo();
 end
 if z<>3 then bugmes();quit;end
 //
 z=0;for k=1:2, function y=foo(),y=k,endfunction
  z=z+foo();
 end
 if z<>3 then bugmes();quit;end
 z=0;
 for k=1:2
  function y=foo(k)//qsdsdf
    y=k^2
  endfunction
  z=z+foo();
 end
 if z<>5 then bugmes();quit;end
 z=0;
 for k=1:2
  function y=foo(k)//qsdsdf
    y=k^2 //a comment
  endfunction
  z=z+foo();
 end
 if z<>5 then bugmes();quit;end
 z=0;
 for k=1:2
  function y=foo(k), y=k^2, endfunction
  z=z+foo();
 end
 if z<>5 then bugmes();quit;end
 z=0;
 for k=1:2
  function y=foo(k), y=k^2, endfunction// a comment
  z=z+foo();
 end
 if z<>5 then bugmes();quit;end
 //bug 1024 non regression test
 O=[];
 for n= 1:10;
   Fx=rand(1,100);
   Fy=1:100;
@@ -271,68 +176,37 @@ for n= 1:10;
   [fopt,lmopt]=optim(cout,0.4);
   O=[O fopt];
 end
 if size(O,'*')<>10 then bugmes();quit;end
 // test line count in compiled macros
 //
 function a=foo(),a=1,endfunction
 L=macr2lst(foo);
 if L(4)(1)<>'6' then bugmes();quit;end
 clear foo
 function a=foo()
 a=1,
 endfunction
 L=macr2lst(foo);
 if L(4)(1)<>'15' then bugmes();quit;end
 clear foo
 function a=foo()//xxcxcx
 a=1,
 endfunction
 L=macr2lst(foo);
 if L(4)(1)<>'31' then bugmes();quit;end
 clear foo
 function a=foo(),
 a=1,
 endfunction
 L=macr2lst(foo);
 if L(4)(1)<>'15' then bugmes();quit;end
 clear foo
 function a=foo(),a=1//xxcxcx
 b=2
 endfunction
 L=macr2lst(foo);
 if L(4)(1)<>'6' then bugmes();quit;end
 clear foo
 function a=foo()
 a=..
 sin..
@@ -340,51 +214,27 @@ sin..
 1..
 ),
 endfunction
 //continuation lines are replaced by a sequence of empty lines followed by the logical line
 //so the function above is  the same as
 function a=foo1()
 a=sin(1),
 endfunction
 L=macr2lst(foo);
 t=L(9)(1)<>'6';
 for k=4:8,t=t|L(k)(1)<>'15';end
 if t then bugmes();quit;end
 if foo<>foo1 then bugmes();quit;end
 clear foo foo1
 function a=foo(),a=..
 sin..
 (..
 1..
 ),
 endfunction
 //continuation lines are replaced by a sequence of empty lines followed by the logical line
 //foo shoud be equal to foo1
 function a=foo1(),a=sin(1),
 endfunction
 L=macr2lst(foo);
 if L(4)(1)<>'6'  then bugmes();quit;end
 if foo<>foo1 then bugmes();quit;end
index 7f35375..3a556c5 100644 (file)
@@ -19,19 +19,19 @@ if getmd5(A,"string") <> "d4b8e88a8b72f9ce207063d7b0a17787" then bugmes();quit;e
 // Test 4
 // =============================================================================
 A = [ 'abcd' 'efgh' ; 'ijkl' 'mnop' ];
-B = [ 'e2fc714c4727ee9395f324cd2e7f331f' '1f7690ebdd9b4caf8fab49ca1757bf27' ;0..
+B = [ 'e2fc714c4727ee9395f324cd2e7f331f' '1f7690ebdd9b4caf8fab49ca1757bf27' ; ..
       '09a0877d04abf8759f99adec02baf579' 'e132e96a5ddad6da8b07bba6f6131fef' ];
 if getmd5(A,"string") <> B then bugmes();quit;end
 // Test 5
 // =============================================================================
 A = [ 'abcd' 'efgh' 'ijkl' 'mnop' ];
-B = [ 'e2fc714c4727ee9395f324cd2e7f331f' '1f7690ebdd9b4caf8fab49ca1757bf27'0..
+B = [ 'e2fc714c4727ee9395f324cd2e7f331f' '1f7690ebdd9b4caf8fab49ca1757bf27' ..
       '09a0877d04abf8759f99adec02baf579' 'e132e96a5ddad6da8b07bba6f6131fef' ];
 if getmd5(A,"string") <> B then bugmes();quit;end
 // Test 6
 // =============================================================================
 A = [ 'abcd' ; 'efgh' ; 'ijkl' ; 'mnop' ];
-B = [ 'e2fc714c4727ee9395f324cd2e7f331f' ; '1f7690ebdd9b4caf8fab49ca1757bf27' ;0..
+B = [ 'e2fc714c4727ee9395f324cd2e7f331f' ; '1f7690ebdd9b4caf8fab49ca1757bf27' ; ..
       '09a0877d04abf8759f99adec02baf579' ; 'e132e96a5ddad6da8b07bba6f6131fef' ];
 if getmd5(A,"string") <> B then bugmes();quit;end
 // Test 7
diff --git a/scilab/modules/core/tests/unit_tests/getversion.dia.ref b/scilab/modules/core/tests/unit_tests/getversion.dia.ref
new file mode 100644 (file)
index 0000000..d3ce31f
--- /dev/null
@@ -0,0 +1,19 @@
+//==============================================================================
+// Author : Pierre MARECHAL
+// Scilab team
+// Copyright INRIA 2008
+// Date : 8 Feb 2008
+//==============================================================================
+// Test 1
+// =============================================================================
+if execstr("getversion();","errcatch")                                 <> 0 then bugmes();quit;end
+if execstr("[version,opts]=getversion()","errcatch")                   <> 0 then bugmes();quit;end
+if execstr("ver=getversion(''scilab'')","errcatch")                    <> 0 then bugmes();quit;end
+Warning : redefining function: ver                     
+
+if execstr("verstr=getversion(''scilab'',''string_info'')","errcatch") <> 0 then bugmes();quit;end
+module_list = getmodules();
+for i=1:size(module_list,"*")
+       if execstr("ver=getversion(''"+module_list(i)+"'')","errcatch")                    <> 0 then bugmes();quit;end
+       if execstr("verstr=getversion(''"+module_list(i)+"'',''string_info'')","errcatch") <> 0 then bugmes();quit;end
+end
index f1afef3..182b682 100644 (file)
@@ -108,7 +108,7 @@ text = ['if n>0 then x=1'
                     'end'];
 deff('[x]=b(a)','x=a,prod([1 1])','n')
 deff('[x,y]=t5(n)',text,'n')
-Warning : redefining function : t5                      
+Warning : redefining function: t5                      
 
 [u,v]=t5(5);
 if u<>'pos' then bugmes();quit;end
@@ -184,7 +184,7 @@ if u<>'neg' then bugmes();quit;end
 if exists('tt')==1 then bugmes();quit;end
 //more complex
 deff('[x]=b(a)','if a==1 then x=1,else x=a,prod([1 1]),end','n')
-Warning : redefining function : b                       
+Warning : redefining function: b                       
 
 //
 deff('[x,y]=t5(n)',text,'n')
@@ -326,7 +326,7 @@ if norm(x-a*[1 2 3])>1000*%eps then bugmes();quit;end
 //
 text(2)='y=ode(a*(k-1),k-1,k,list(simul,a)),';
 deff('[x]=calcul(n)',text,'n')
-Warning : redefining function : calcul                  
+Warning : redefining function: calcul                  
 
 deff('[ydot]=simul(t,y,a)','ydot=a','n')
 x=[];
@@ -344,7 +344,7 @@ x=calcul(3);
 if norm(x-a*[1 2 3])>1000*%eps then bugmes();quit;end
 //resume in external
 deff('[ydot]=simul(t,y,a)','ydot=a,tt=resume([tt,t])','n')
-Warning : redefining function : simul                   
+Warning : redefining function: simul                   
 
 tt=[]
  tt  =
@@ -352,7 +352,7 @@ tt=[]
      []
 deff('[x]=calcul(n)',text,'n')
 deff('[ydot]=simul(t,y,a)','ydot=a','n')
-Warning : redefining function : simul                   
+Warning : redefining function: simul                   
 
 x=[];
 x=calcul(3);
@@ -371,7 +371,7 @@ if norm(x-a*[1 2 3])>1000*%eps then bugmes();quit;end
 //external calls a macro
 //
 deff('[x]=b(a)','if a==1 then x=a,prod([1 1]),else x=a,prod([1 1]),end','n')
-Warning : redefining function : b                       
+Warning : redefining function: b                       
 
 text=['for k=1:n,'
      'y=ode(a*(k-1),k-1,k,simul),'
@@ -379,10 +379,10 @@ text=['for k=1:n,'
      'end'];
 //
 deff('[x]=calcul(n)',text,'n')
-Warning : redefining function : calcul                  
+Warning : redefining function: calcul                  
 
 deff('[ydot]=simul(t,y,a)','ydot=b(a)','n')
-Warning : redefining function : simul                   
+Warning : redefining function: simul                   
 
 x=[];
 x=calcul(3);
@@ -400,7 +400,7 @@ if norm(x-a*[1 2 3])>1000*%eps then bugmes();quit;end
 //
 text(2)='y=ode(a*(k-1),k-1,k,list(simul,a)),';
 deff('[x]=calcul(n)',text,'n')
-Warning : redefining function : calcul                  
+Warning : redefining function: calcul                  
 
 deff('[ydot]=simul(t,y,a)','ydot=b(a)','n')
 x=[];
@@ -418,7 +418,7 @@ x=calcul(3);
 if norm(x-a*[1 2 3])>1000*%eps then bugmes();quit;end
 //
 deff('[ydot]=simul(t,y,a)','ydot=b(a),tt=resume([tt,t])','n')
-Warning : redefining function : simul                   
+Warning : redefining function: simul                   
 
 tt=[]
  tt  =
@@ -426,7 +426,7 @@ tt=[]
      []
 deff('[x]=calcul(n)',text,'n')
 deff('[ydot]=simul(t,y,a)','ydot=b(a)','n')
-Warning : redefining function : simul                   
+Warning : redefining function: simul                   
 
 x=[];
 x=calcul(3);
@@ -447,7 +447,7 @@ text=['for k=1:n,'
      'end'];
 //
 deff('[x]=calcul(n)',text,'n')
-Warning : redefining function : calcul                  
+Warning : redefining function: calcul                  
 
 deff('[ydot]=simul(t,y,a)','ydot=b(a)','n')
 x=[];
@@ -466,7 +466,7 @@ if norm(x-a*[1 2 3])>1000*%eps then bugmes();quit;end
 //
 text(2)='y=ode(a*(k-1),k-1,k,list(simul,a)),';
 deff('[x]=calcul(n)',text,'n')
-Warning : redefining function : calcul                  
+Warning : redefining function: calcul                  
 
 deff('[ydot]=simul(t,y,a)','ydot=b(a)','n')
 x=[];
@@ -484,7 +484,7 @@ x=calcul(3);
 if norm(x-a*[1 2 3])>1000*%eps then bugmes();quit;end
 //
 deff('[ydot]=simul(t,y,a)','ydot=b(a),tt=resume([tt,t])','n')
-Warning : redefining function : simul                   
+Warning : redefining function: simul                   
 
 tt=[]
  tt  =
@@ -492,7 +492,7 @@ tt=[]
      []
 deff('[x]=calcul(n)',text,'n')
 deff('[ydot]=simul(t,y,a)','ydot=b(a)','n')
-Warning : redefining function : simul                   
+Warning : redefining function: simul                   
 
 x=[];
 x=calcul(3);
@@ -542,14 +542,14 @@ deff('[r]=horner(p,x)',['if type(p)==15|type(p)==16 then';
                         'for k=1:d,';
                           'r=r*x+coeff(p,d-k)*eye();';
                         'end;'],'n')
-Warning : redefining function : horner                  
+Warning : redefining function: horner                  
 
 deff('[f]=%p_r_p(p1,p2)',['[l,c]=size(p2);';
                         'if l*c <>1 then f=p1*invr(p2),return,end;';
                         '[l,c]=size(p1);';
                         '[p1 p2]=simp(p1,p2*ones(l,c));';
                         'f=tlist([''r'',''num'',''den'',''dt''],p1,p2,[]);'],'n')
-Warning : redefining function : %p_r_p                  
+Warning : redefining function: %p_r_p                  
 
 horn=horner;
 h=1/s;
@@ -580,7 +580,7 @@ fic=file('open',TMPDIR+"/test_macro_exec",'unknown');
 write(fic,text)
 file('close',fic)
 deff('[x]=b(a)','x=a,prod([1 1])','n')
-Warning : redefining function : b                       
+Warning : redefining function: b                       
 
 y=t9(2)
  
index 093ed95..4cf16c9 100644 (file)
 // Copyright INRIA
 //test of matelm functions
 //size
 a=[1 2;3 4];
 if or(size(a)<>[2 2]) then bugmes();quit;end
 if or(size(a+0)<>[2 2]) then bugmes();quit;end
 if size(a,'*')<>4 then bugmes();quit;end
 if size(a+0,'*')<>4 then bugmes();quit;end
 [m,n]=size(a);if or([m,n]<>[2 2]) then bugmes();quit;end
 a=[1;2];
 if size(a,1)<>2 then bugmes();quit;end
 if size(a+0,1)<>2 then bugmes();quit;end
 if size(a,'r')<>2 then bugmes();quit;end
 if size(a+0,'r')<>2 then bugmes();quit;end
 if size(a,2)<>1 then bugmes();quit;end
 if size(a+0,2)<>1 then bugmes();quit;end
 if size(a,'c')<>1 then bugmes();quit;end
 if size(a+0,'c')<>1 then bugmes();quit;end
 [m,n]=size(a);if or([m,n]<>[2 1]) then bugmes();quit;end
 a=string([1 2;3 4]);
 if or(size(a)<>[2 2]) then bugmes();quit;end
 if or(size(a+a)<>[2 2]) then bugmes();quit;end
 if size(a,'*')<>4 then bugmes();quit;end
 if size(a+a,'*')<>4 then bugmes();quit;end
 [m,n]=size(a);if or([m,n]<>[2 2]) then bugmes();quit;end
 a=string([1;2]);
 if size(a,1)<>2 then bugmes();quit;end
 if size(a+a,1)<>2 then bugmes();quit;end
 if size(a,'r')<>2 then bugmes();quit;end
 if size(a+a,'r')<>2 then bugmes();quit;end
 if size(a,2)<>1 then bugmes();quit;end
 if size(a+a,2)<>1 then bugmes();quit;end
 if size(a,'c')<>1 then bugmes();quit;end
 if size(a+a,'c')<>1 then bugmes();quit;end
 [m,n]=size(a);if or([m,n]<>[2 1]) then bugmes();quit;end
 a=[1 2;3 4]+%s;
 if or(size(a)<>[2 2]) then bugmes();quit;end
 if or(size(a+0)<>[2 2]) then bugmes();quit;end
 if size(a,'*')<>4 then bugmes();quit;end
 if size(a+0,'*')<>4 then bugmes();quit;end
 [m,n]=size(a);if or([m,n]<>[2 2]) then bugmes();quit;end
 a=[1;2]+%s;
 if size(a,1)<>2 then bugmes();quit;end
 if size(a+0,1)<>2 then bugmes();quit;end
 if size(a,'r')<>2 then bugmes();quit;end
 if size(a+0,'r')<>2 then bugmes();quit;end
 if size(a,2)<>1 then bugmes();quit;end
 if size(a+0,2)<>1 then bugmes();quit;end
 if size(a,'c')<>1 then bugmes();quit;end
 if size(a+0,'c')<>1 then bugmes();quit;end
 [m,n]=size(a);if or([m,n]<>[2 1]) then bugmes();quit;end
 a=[1 2;3 4]==1;
 if or(size(a)<>[2 2]) then bugmes();quit;end
 if or(size(a&a)<>[2 2]) then bugmes();quit;end
 if size(a,'*')<>4 then bugmes();quit;end
 if size(a|a,'*')<>4 then bugmes();quit;end
 [m,n]=size(a);if or([m,n]<>[2 2]) then bugmes();quit;end
 a=[1;2]==1;
 if size(a,1)<>2 then bugmes();quit;end
 if size(a|a,1)<>2 then bugmes();quit;end
 if size(a,'r')<>2 then bugmes();quit;end
 if size(a|a,'r')<>2 then bugmes();quit;end
 if size(a,2)<>1 then bugmes();quit;end
 if size(a|a,2)<>1 then bugmes();quit;end
 if size(a,'c')<>1 then bugmes();quit;end
 if size(a|a,'c')<>1 then bugmes();quit;end
 [m,n]=size(a);if or([m,n]<>[2 1]) then bugmes();quit;end
 //eye
 if or(eye(2,2)<>[1 0;0 1]) then bugmes();quit;end
 if or(eye(2,1)<>[1;0]) then bugmes();quit;end
 n=2;
 if or(eye(n,2)<>[1 0;0 1]) then bugmes();quit;end
 if or(eye(2,n)<>[1 0;0 1]) then bugmes();quit;end
 if or(eye(n,n)<>[1 0;0 1]) then bugmes();quit;end
 if or(size(eye())<>[-1 -1]) then bugmes();quit;end
 a=[1 2;3 4];
 if or(eye(a)<>[1 0;0 1]) then bugmes();quit;end
 if or(eye(a+0)<>[1 0;0 1]) then bugmes();quit;end
 a=[1 2;3 4]+%s;
 if or(eye(a)<>[1 0;0 1]) then bugmes();quit;end
 if or(eye(a+0)<>[1 0;0 1]) then bugmes();quit;end
 a=string([1 2;3 4]);
 if or(eye(a)<>[1 0;0 1]) then bugmes();quit;end
 if or(eye(a+a)<>[1 0;0 1]) then bugmes();quit;end
 a=[1 2;3 4]>1;
 if or(eye(a)<>[1 0;0 1]) then bugmes();quit;end
 if or(eye(a&a)<>[1 0;0 1]) then bugmes();quit;end
 if eye([])<>[] then bugmes();quit;end
 //ones
 if or(ones(2,2)<>[1 1;1 1]) then bugmes();quit;end
 if or(ones(2,1)<>[1;1]) then bugmes();quit;end
 n=2;
 if or(ones(n,2)<>[1 1;1 1]) then bugmes();quit;end
 if or(ones(2,n)<>[1 1;1 1]) then bugmes();quit;end
 if or(ones(n,n)<>[1 1;1 1]) then bugmes();quit;end
 if ones(1)<>1 then bugmes();quit;end
 if ones([])<>[] then bugmes();quit;end
 a=[1 2;3 4];
 if or(ones(a)<>[1 1;1 1]) then bugmes();quit;end
 if or(ones(a+0)<>[1 1;1 1]) then bugmes();quit;end
 a=[1 2;3 4]+%s;
 if or(ones(a)<>[1 1;1 1]) then bugmes();quit;end
 if or(ones(a+0)<>[1 1;1 1]) then bugmes();quit;end
 a=string([1 2;3 4]);
 if or(ones(a)<>[1 1;1 1]) then bugmes();quit;end
 if or(ones(a+a)<>[1 1;1 1]) then bugmes();quit;end
 a=[1 2;3 4]>1;
 if or(ones(a)<>[1 1;1 1]) then bugmes();quit;end
 if or(ones(a&a)<>[1 1;1 1]) then bugmes();quit;end
 //rand
 if or(size(rand(2,2))<>[2 2]) then bugmes();quit;end
 if or(size(rand(2,1))<>[2 1]) then bugmes();quit;end
 n=2;
 if or(size(rand(n,2))<>[n 2]) then bugmes();quit;end
 if or(size(rand(2,n))<>[2 n]) then bugmes();quit;end
 if or(size(rand(n,n))<>[n n]) then bugmes();quit;end
 //if or(size(rand())<>[1 1]) then bugmes();quit;end
 if rand([])<>[] then bugmes();quit;end
 a=[1 2;3 4];
 if or(size(rand(a))<>size(a)) then bugmes();quit;end
 if or(size(rand(a+0))<>size(a)) then bugmes();quit;end
 //a=[1 2;3 4]+%s;
 //if or(size(rand(a))<>size(a)) then bugmes();quit;end
 //if or(size(rand(a+0))<>size(a)) then bugmes();quit;end
 //a=string([1 2;3 4]);
 //if or(size(rand(a))<>size(a)) then bugmes();quit;end
 //if or(size(rand(a+a))<>size(a)) then bugmes();quit;end
 //a=[1 2;3 4]>1;
 //if or(size(rand(a))<>size(a)) then bugmes();quit;end
 //if or(size(rand(a+a))<>size(a)) then bugmes();quit;end
 rand('seed',1);if rand('seed')<>1 then bugmes();quit;end
 a=2;rand('seed',a);if rand('seed')<>a then bugmes();quit;end
 //diag
 if or(diag([1 2 3])<>[1 0 0;0 2 0;0 0 3]) then bugmes();quit;end
 a=[1 2 3];
 if or(diag(a)<>[1 0 0;0 2 0;0 0 3]) then bugmes();quit;end
 if or(diag([1 %i 2])<>[1 0 0;0 %i 0;0 0 2]) then bugmes();quit;end
 a=[1 %i 2 ];
 if or(diag(a)<>[1 0 0;0 %i 0;0 0 2]) then bugmes();quit;end
 a=[1 2 3 4;5 6 7 8];
 if or(diag(a)<>[1;6]) then bugmes();quit;end
 if or(diag(a+0)<>[1;6]) then bugmes();quit;end
 if or(diag(a,1)<>[2;7]) then bugmes();quit;end
 if or(diag(a+0,1)<>[2;7]) then bugmes();quit;end
 if or(diag(a,-1)<>[5]) then bugmes();quit;end
 if or(diag(a+0,-1)<>[5]) then bugmes();quit;end
 if diag(a,4)<>[] then bugmes();quit;end
 a(1,1)=%i
  a  =
  
     i      2.    3.    4.  
     5.     6.    7.    8.  
 if or(diag(a)<>[%i;6]) then bugmes();quit;end
 if or(diag(a+0)<>[%i;6]) then bugmes();quit;end
 if or(diag(a,1)<>[2;7]) then bugmes();quit;end
 if or(diag(a+0,1)<>[2;7]) then bugmes();quit;end
 if or(diag(a,-1)<>[5]) then bugmes();quit;end
 if or(diag(a+0,-1)<>[5]) then bugmes();quit;end
 if diag(a,4)<>[] then bugmes();quit;end
 if diag([])<>[] then bugmes();quit;end
 if diag([],1)<>[] then bugmes();quit;end
 if diag([],-1)<>[] then bugmes();quit;end
 a=[];
 if diag(a)<>[] then bugmes();quit;end
 if diag(a,1)<>[] then bugmes();quit;end
 if diag(a,-1)<>[] then bugmes();quit;end
 // triu
 a=[1 2 3 4;5 6 7 8];
 if or(triu(a)<>[1 2 3 4;0 6 7 8]) then bugmes();quit;end
 if or(triu(a+0)<>[1 2 3 4;0 6 7 8]) then bugmes();quit;end
 if or(triu(a,1)<>[0 2 3 4;0 0 7 8]) then bugmes();quit;end
 if or(triu(a+0,1)<>[0 2 3 4;0 0 7 8]) then bugmes();quit;end
 if or(triu(a,-1)<>a) then bugmes();quit;end
 if or(triu(a+0,-1)<>a) then bugmes();quit;end
 if or(triu(a,4)<>0*a) then bugmes();quit;end
 a(1,1)=%i;
 if or(triu(a)<>[%i 2 3 4;0 6 7 8]) then bugmes();quit;end
 if or(triu(a+0)<>[%i 2 3 4;0 6 7 8]) then bugmes();quit;end
 if or(triu(a,1)<>[0 2 3 4;0 0 7 8]) then bugmes();quit;end
 if or(triu(a+0,1)<>[0 2 3 4;0 0 7 8]) then bugmes();quit;end
 if or(triu(a,-1)<>a) then bugmes();quit;end
 if or(triu(a+0,-1)<>a) then bugmes();quit;end
 if or(triu(a,4)<>0*a) then bugmes();quit;end
 if triu([])<>[] then bugmes();quit;end
 if triu([],1)<>[] then bugmes();quit;end
 if triu([],-1)<>[] then bugmes();quit;end
 a=[];
 if triu(a)<>[] then bugmes();quit;end
 if triu(a,1)<>[] then bugmes();quit;end
 if triu(a,-1)<>[] then bugmes();quit;end
 //tril
 a=[1 2 3 4;5 6 7 8];
 if or(tril(a)<>[1 0 0 0;5 6 0 0]) then bugmes();quit;end
 if or(tril(a+0)<>[1 0 0 0;5 6 0 0]) then bugmes();quit;end
 if or(tril(a,1)<>[1 2 0 0;5 6  7 0]) then bugmes();quit;end
 if or(tril(a+0,1)<>[1 2 0 0;5 6  7 0]) then bugmes();quit;end
 if or(tril(a,4)<>a) then bugmes();quit;end
 if or(tril(a+0,4)<>a) then bugmes();quit;end
 if or(tril(a,-3)<>0*a) then bugmes();quit;end
 a(1,1)=%i;
 if or(tril(a)<>[%i 0 0 0;5 6 0 0]) then bugmes();quit;end
 if or(tril(a+0)<>[%i 0 0 0;5 6 0 0]) then bugmes();quit;end
 if or(tril(a,1)<>[%i 2 0 0;5 6  7 0]) then bugmes();quit;end
 if or(tril(a+0,1)<>[%i 2 0 0;5 6  7 0]) then bugmes();quit;end
 if or(tril(a,4)<>a) then bugmes();quit;end
 if or(tril(a+0,4)<>a) then bugmes();quit;end
 if or(tril(a,-3)<>0*a) then bugmes();quit;end
 if tril([])<>[] then bugmes();quit;end
 if tril([],1)<>[] then bugmes();quit;end
 if tril([],-1)<>[] then bugmes();quit;end
 a=[];
 if tril(a)<>[] then bugmes();quit;end
 if tril(a,1)<>[] then bugmes();quit;end
 if tril(a,-1)<>[] then bugmes();quit;end
 //abs
 a=[1 2;-3 4;5 -6];
 if or(abs(a)<>[1 2;3 4;5 6]) then bugmes();quit;end
 if or(abs(a+0)<>[1 2;3 4;5 6]) then bugmes();quit;end
 if abs([])<>[] then bugmes();quit;end
 a=[];if abs(a)<>[] then bugmes();quit;end
 a=[1+%i 2;-3 4;5 -6];
 if or(abs(a)<>[sqrt(2) 2;3 4;5 6]) then bugmes();quit;end
 if or(abs(a+0)<>[sqrt(2) 2;3 4;5 6]) then bugmes();quit;end
 a=[1 2;-3 4;5 -6]+%s;
 if or(abs(a)<>[1 2;3 4;5 6]+%s) then bugmes();quit;end
 if or(abs(a+0)<>[1 2;3 4;5 6]+%s) then bugmes();quit;end
 a=[1+%i 2;-3 4;5 -6]+%s;
 if or(abs(a)<>[sqrt(2) 2;3 4;5 6]+%s) then bugmes();quit;end
 if or(abs(a+0)<>[sqrt(2) 2;3 4;5 6]+%s) then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]);
 if or(full(abs(a))<>[1 2;3 4;5 6]) then bugmes();quit;end
 if or(full(abs(a+a))<>2*[1 2;3 4;5 6]) then bugmes();quit;end
 a=sparse([1+%i 2;-3 4;5 -6]);
 if or(full(abs(a))<>[sqrt(2) 2;3 4;5 6]) then bugmes();quit;end
 if or(full(abs(a+a))<>2*[sqrt(2) 2;3 4;5 6]) then bugmes();quit;end
 //real
 a=[1 2;-3 4;5 -6];
 if or(real(a)<>a) then bugmes();quit;end
 if or(real(a+0)<>a) then bugmes();quit;end
 if real([])<>[] then bugmes();quit;end
 a=[];if real(a)<>[] then bugmes();quit;end
 a=[1+%i 2;-3 4;5 -6];
 if or(real(a)<>[1 2;-3 4;5 -6]) then bugmes();quit;end
 if or(real(a+0)<>[1 2;-3 4;5 -6]) then bugmes();quit;end
 a=[1 2;-3 4;5 -6]+%s;
 if or(real(a)<>a) then bugmes();quit;end
 if or(real(a+0)<>a) then bugmes();quit;end
 a=[1+%i 2;-3 4;5 -6]+%s;
 if or(real(a)<>[1 2;-3 4;5 -6]+%s) then bugmes();quit;end
 if or(real(a+0)<>[1 2;-3 4;5 -6]+%s) then bugmes();quit;end
 //a=sparse([1 2;-3 4;5 -6]);
 //if or(real(a)<>a) then bugmes();quit;end
 //if or(real(a+a)<>2*a) then bugmes();quit;end
 //a=sparse([1+%i 2;-3 4;5 -6]);
 //if or(full(real(a))<>[1 2;-3 4;5 -6]) then bugmes();quit;end
 //if or(full(real(a+a))<>2*[1 2;-3 4;5 -6]) then bugmes();quit;end
 //imag
 a=[1 2;-3 4;5 -6];
 if or(imag(a)<>0*a) then bugmes();quit;end
 if or(imag(a+0)<>0*a) then bugmes();quit;end
 if imag([])<>[] then bugmes();quit;end
 a=[];if imag(a)<>[] then bugmes();quit;end
 a=[1+%i 2;-3 4;5 -6];
 if or(imag(a)<>[1 0;0 0;0 0]) then bugmes();quit;end
 if or(imag(a+0)<>[1 0;0 0;0 0]) then bugmes();quit;end
 a=[1 2;-3 4;5 -6]+%s;
 if or(imag(a)<>0*a) then bugmes();quit;end
 if or(imag(a+0)<>0*a) then bugmes();quit;end
 a=[1+%i 2;-3 4;5 -6]+%s;
 if or(imag(a)<>[poly(1,'s','c') 0;0 0;0 0]) then bugmes();quit;end
 if or(imag(a+0)<>[poly(1,'s','c') 0;0 0;0 0]) then bugmes();quit;end
 //a=sparse([1 2;-3 4;5 -6]);
 //if or(imag(a)<>0*a) then bugmes();quit;end
 //if or(imag(a+a)<>0*a) then bugmes();quit;end
 //a=sparse([1+%i 2;-3 4;5 -6]);
 //if or(full(imag(a))<>[1 0;0 0;0 0]) then bugmes();quit;end
 //if or(full(imag(a+a))<>2*[1 0;0 0;0 0]) then bugmes();quit;end
 //conj
 a=[1 2;-3 4;5 -6];
 if or(conj(a)<>a) then bugmes();quit;end
 if or(conj(a+0)<>a) then bugmes();quit;end
 if conj([])<>[] then bugmes();quit;end
 a=[];if conj(a)<>[] then bugmes();quit;end
 a=[1+%i 2;-3 4;5 -6];
 if or(conj(a)<>[1-%i 2;-3 4;5 -6]) then bugmes();quit;end
 if or(conj(a+0)<>[1-%i 2;-3 4;5 -6]) then bugmes();quit;end
 a=[1 2;-3 4;5 -6]+%s;
 if or(conj(a)<>a) then bugmes();quit;end
 if or(conj(a+0)<>a) then bugmes();quit;end
 a=[1+%i 2;-3 4;5 -6]+%s;
 if or(conj(a)<>[1-%i 2;-3 4;5 -6]+%s) then bugmes();quit;end
 if or(conj(a+0)<>[1-%i 2;-3 4;5 -6]+%s) then bugmes();quit;end
 //a=sparse([1 2;-3 4;5 -6]);
 //if or(conj(a)<>a) then bugmes();quit;end
 //if or(conj(a+a)<>2*a) then bugmes();quit;end
 //a=sparse([1+%i 2;-3 4;5 -6]);
 //if or(full(conj(a))<>[1-%i 2;-3 4;5 -6]) then bugmes();quit;end
 //if or(full(conj(a+a))<>2*[1-%i 2;-3 4;5 -6]) then bugmes();quit;end
 //int
 a=[1.2 2.5;-3.4 4.5;5.8 -6.2];
 if or(int(a)<>[1 2;-3 4;5 -6]) then bugmes();quit;end
 if or(int(a+0)<>[1 2;-3 4;5 -6]) then bugmes();quit;end
 a=[1.2+2.5*%i 2.5;-3.4 4.5;5.8 -6.2];
 if or(int(a)<>[1+2*%i 2;-3 4;5 -6]) then bugmes();quit;end
 if or(int(a+0)<>[1+2*%i 2;-3 4;5 -6]) then bugmes();quit;end
 a=[1.2 2.5;-3.4 4.5;5.8 -6.2]+1.1*%s;
 if or(int(a)<>[1 2;-3 4;5 -6]+%s) then bugmes();quit;end
 if or(int(a+0)<>[1 2;-3 4;5 -6]+%s) then bugmes();quit;end
 a=[1.2+2.5*%i 2.5;-3.4 4.5;5.8 -6.2]+1.1*%s;
 if or(int(a)<>[1+2*%i 2;-3 4;5 -6]+%s) then bugmes();quit;end
 if or(int(a+0)<>[1+2*%i 2;-3 4;5 -6]+%s) then bugmes();quit;end
 if int([])<>[] then bugmes();quit;end
 a=[];if int(a)<>[] then bugmes();quit;end
 //round
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2];
 if or(round(a)<>[1 3;-3 5;6 -6]) then bugmes();quit;end
 if or(round(a+0)<>[1 3;-3 5;6 -6]) then bugmes();quit;end
 a=[1.2+2.51*%i 2.52;-3.4 4.52;5.8 -6.2];
 if or(round(a)<>[1+3*%i 3;-3 5;6 -6]) then bugmes();quit;end
 if or(round(a+0)<>[1+3*%i 3;-3 5;6 -6]) then bugmes();quit;end
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2]+1.1*%s;
 if or(round(a)<>[1 3;-3 5;6 -6]+%s) then bugmes();quit;end
 if or(round(a+0)<>[1 3;-3 5;6 -6]+%s) then bugmes();quit;end
 a=[1.2+2.51*%i 2.52;-3.4 4.52;5.8 -6.2]+1.1*%s;
 if or(round(a)<>[1+3*%i 3;-3 5;6 -6]+%s) then bugmes();quit;end
 if or(round(a+0)<>[1+3*%i 3;-3 5;6 -6]+%s) then bugmes();quit;end
 if round([])<>[] then bugmes();quit;end
 a=[];if round(a)<>[] then bugmes();quit;end
 //ceil
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2];
 if or(ceil(a)<>[2 3;-3 5;6 -6]) then bugmes();quit;end
 if or(ceil(a+0)<>[2 3;-3 5;6 -6]) then bugmes();quit;end
 a=[1.2+2.51*%i 2.52;-3.4 4.52;5.8 -6.2];
 if or(ceil(a)<>[2+3*%i 3;-3 5;6 -6]) then bugmes();quit;end
 if or(ceil(a+0)<>[2+3*%i 3;-3 5;6 -6]) then bugmes();quit;end
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2]+1.1*%s;
 if or(ceil(a)<>[2 3;-3 5;6 -6]+2*%s) then bugmes();quit;end
 if or(ceil(a+0)<>[2 3;-3 5;6 -6]+2*%s) then bugmes();quit;end
 a=[1.2+2.51*%i 2.52;-3.4 4.52;5.8 -6.2]+1.1*%s;
 if or(ceil(a)<>[2+3*%i 3;-3 5;6 -6]+2*%s) then bugmes();quit;end
 if or(ceil(a+0)<>[2+3*%i 3;-3 5;6 -6]+2*%s) then bugmes();quit;end
 if ceil([])<>[] then bugmes();quit;end
 a=[];if ceil(a)<>[] then bugmes();quit;end
 //floor
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2];
 if or(floor(a)<>[1 2;-4 4;5 -7]) then bugmes();quit;end
 if or(floor(a+0)<>[1 2;-4 4;5 -7]) then bugmes();quit;end
 a=[1.2+2.51*%i 2.52;-3.4 4.52;5.8 -6.2];
 if or(floor(a)<>[1+2*%i 2;-4 4;5 -7]) then bugmes();quit;end
 if or(floor(a+0)<>[1+2*%i 2;-4 4;5 -7]) then bugmes();quit;end
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2]+1.1*%s;
 if or(floor(a)<>[1 2;-4 4;5 -7]+%s) then bugmes();quit;end
 if or(floor(a+0)<>[1 2;-4 4;5 -7]+%s) then bugmes();quit;end
 a=[1.2+2.51*%i 2.52;-3.4 4.52;5.8 -6.2]+1.1*%s;
 if or(floor(a)<>[1+2*%i 2;-4 4;5 -7]+%s) then bugmes();quit;end
 if or(floor(a+0)<>[1+2*%i 2;-4 4;5 -7]+%s) then bugmes();quit;end
 if floor([])<>[] then bugmes();quit;end
 a=[];if floor(a)<>[] then bugmes();quit;end
 //sign
 //a=[1.2 2.51;-3.4 4.52;5.8 -6.2];
 //if or(sign(a)<>[1 1;-1 1;1 -1]) then bugmes();quit;end
 //a=[1+%i 2.51;-3.4 4.52;5.8 -6.2];
 //if norm(sign(a)-[sqrt(2)/2*(1+%i) 1;-1 1;1 -1])>10*%eps then bugmes();quit;end
 //if sign([])<>[] then bugmes();quit;end
 //a=[];if sign(a)<>[] then bugmes();quit;end
 //clean
 //log and exp
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2];
 if norm(exp(log(a))-a)>10*%eps then bugmes();quit;end
 if norm(exp(log(a+0))-a)>10*%eps then bugmes();quit;end
 b=log(a);if norm(exp(b)-a)>10*%eps then bugmes();quit;end
 a=[1+%i 2.51;-3.4 4.52;5.8 -6.2];
 if norm(exp(log(a))-a)>10*%eps then bugmes();quit;end
 if norm(exp(log(a+0))-a)>10*%eps then bugmes();quit;end
 b=log(a);if norm(exp(b)-a)>10*%eps then bugmes();quit;end
 if exp([])<>[] then bugmes();quit;end
 a=[];if exp(a)<>[] then bugmes();quit;end
 if log([])<>[] then bugmes();quit;end
 a=[];if log(a)<>[] then bugmes();quit;end
 //sin and cos
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2];
 if norm(sin(a).^2+cos(a).^2-1)>10*%eps then bugmes();quit;end
 if norm(sin(a+0).^2+cos(a+0).^2-1)>10*%eps then bugmes();quit;end
 a=[1+%i 2.51;-3.4 4.52;5.8 -6.2];
 if norm(sin(a).^2+cos(a).^2-1)>10*%eps then bugmes();quit;end
 if norm(sin(a+0).^2+cos(a+0).^2-1)>10*%eps then bugmes();quit;end
 if cos([])<>[] then bugmes();quit;end
 a=[];if cos(a)<>[] then bugmes();quit;end
 if sin([])<>[] then bugmes();quit;end
 a=[];if sin(a)<>[] then bugmes();quit;end
 //tan et atan
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2];
 if norm(tan(atan(a))-a)>100*%eps then bugmes();quit;end
 if norm(tan(atan(a+0))-a)>100*%eps then bugmes();quit;end
 b=log(a);if norm(exp(b)-a)>100*%eps then bugmes();quit;end
 a=[1+%i 2.51;-3.4 4.52;5.8 -6.2];
 if norm(tan(atan(a))-a)>100*%eps then bugmes();quit;end
 if norm(tan(atan(a+0))-a)>100*%eps then bugmes();quit;end
 if atan([])<>[] then bugmes();quit;end
 a=[];if atan(a)<>[] then bugmes();quit;end
 if atan([],[])<>[] then bugmes();quit;end
 a=[];if atan(a,[])<>[] then bugmes();quit;end
 a=[];if atan(a,a)<>[] then bugmes();quit;end
 a=[];if atan([],a)<>[] then bugmes();quit;end
 //expm
 a=[0 2;0 0];
 if norm(expm(a)-[1 2;0 1])>10*%eps then bugmes();quit;end
 a=[0 2*%i;0 0];
 if norm(expm(a)-[1 2*%i;0 1])>10*%eps then bugmes();quit;end
 if expm([])<>[] then bugmes();quit;end
 a=[];if expm(a)<>[] then bugmes();quit;end
 //sqrt
 a=[1.2 2.51;-3.4 4.52;5.8 -6.2];
 if norm(sqrt(a).^2-a)>100*%eps then bugmes();quit;end
 if norm(sqrt(a+0).^2-a)>100*%eps then bugmes();quit;end
 a=[1+%i 2.51;-3.4 4.52;5.8 -6.2];
 if norm(sqrt(a).^2-a)>100*%eps then bugmes();quit;end
 if norm(sqrt(a+0).^2-a)>100*%eps then bugmes();quit;end
 if sqrt([])<>[] then bugmes();quit;end
 a=[];if sqrt(a)<>[] then bugmes();quit;end
 //sum
 a=[1 2;-3 4;5 -6];
 if sum(a)<>3 then bugmes();quit;end
 if sum(a+0)<>3 then bugmes();quit;end
 if or(sum(a,1)<>[3 0]) then bugmes();quit;end
 if or(sum(a+0,1)<>[3 0]) then bugmes();quit;end
 n=1;
 if or(sum(a,n)<>[3 0]) then bugmes();quit;end
 if or(sum(a+0,n)<>[3 0]) then bugmes();quit;end
 if or(sum(a,'r')<>[3 0]) then bugmes();quit;end
 if or(sum(a+0,'r')<>[3 0]) then bugmes();quit;end
 n='r';
 if or(sum(a,n)<>[3 0]) then bugmes();quit;end
 if or(sum(a+0,n)<>[3 0]) then bugmes();quit;end
 if or(sum(a,2)<>[3;1;-1]) then bugmes();quit;end
 if or(sum(a+0,2)<>[3;1;-1]) then bugmes();quit;end
 n=2;
 if or(sum(a,n)<>[3;1;-1]) then bugmes();quit;end
 if or(sum(a+0,n)<>[3;1;-1]) then bugmes();quit;end
 if or(sum(a,'c')<>[3;1;-1]) then bugmes();quit;end
 if or(sum(a+0,'c')<>[3;1;-1]) then bugmes();quit;end
 n='c';
 if or(sum(a,n)<>[3;1;-1]) then bugmes();quit;end
 if or(sum(a+0,n)<>[3;1;-1]) then bugmes();quit;end
 a=[1 2;-3 4;5 -6]+0*%i;
 if or(sum(a)<>3+0*%i) then bugmes();quit;end
 if or(sum(a+0)<>3+0*%i) then bugmes();quit;end
 if or(sum(a,1)<>[3 0]+0*%i) then bugmes();quit;end
 if or(sum(a+0,1)<>[3 0]+0*%i) then bugmes();quit;end
 n=1;
 if or(sum(a,n)<>[3 0]+0*%i) then bugmes();quit;end
 if or(sum(a+0,n)<>[3 0]+0*%i) then bugmes();quit;end
 if or(sum(a,'r')<>[3 0]+0*%i) then bugmes();quit;end
 if or(sum(a+0,'r')<>[3 0]+0*%i) then bugmes();quit;end
 n='r';
 if or(sum(a,n)<>[3 0]+0*%i) then bugmes();quit;end
 if or(sum(a+0,n)<>[3 0]+0*%i) then bugmes();quit;end
 if or(sum(a,2)<>[3;1;-1]+0*%i) then bugmes();quit;end
 if or(sum(a+0,2)<>[3;1;-1]+0*%i) then bugmes();quit;end
 n=2;
 if or(sum(a,n)<>[3;1;-1]+0*%i) then bugmes();quit;end
 if or(sum(a+0,n)<>[3;1;-1]+0*%i) then bugmes();quit;end
 if or(sum(a,'c')<>[3;1;-1]+0*%i) then bugmes();quit;end
 if or(sum(a+0,'c')<>[3;1;-1]+0*%i) then bugmes();quit;end
 n='c';
 if or(sum(a,n)<>[3;1;-1]+0*%i) then bugmes();quit;end
 if or(sum(a+0,n)<>[3;1;-1]+0*%i) then bugmes();quit;end
 a=[]
  a  =
  
      []
 if sum(a)<>0 then bugmes();quit;end
 if sum([])<>0 then bugmes();quit;end
 if sum(a,1)<>[] then bugmes();quit;end
 if sum([],1)<>[] then bugmes();quit;end
 n=1;
 if sum(a,n)<>[] then bugmes();quit;end
 if sum([],n)<>[] then bugmes();quit;end
 if sum(a,'r')<>[] then bugmes();quit;end
 if sum([],'r')<>[] then bugmes();quit;end
 n='r';
 if sum(a,n)<>[] then bugmes();quit;end
 if sum([],n)<>[] then bugmes();quit;end
 if sum(a,2)<>[] then bugmes();quit;end
 if sum([],2)<>[] then bugmes();quit;end
 n=2;
 if sum(a,n)<>[] then bugmes();quit;end
 if sum([],n)<>[] then bugmes();quit;end
 if sum(a,'c')<>[] then bugmes();quit;end
 if sum([],'c')<>[] then bugmes();quit;end
 n='c';
 if sum(a,n)<>[] then bugmes();quit;end
 if sum([],n)<>[] then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]);
 if sum(a)<>3 then bugmes();quit;end
 if sum(a+0*a)<>3 then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]+0*%i);
 if sum(a)<>3+0*%i then bugmes();quit;end
 if sum(a+0*a)<>3+0*%i then bugmes();quit;end
 //prod
 a=[1 2;-3 4;5 -6];
 if prod(a)<>720 then bugmes();quit;end
 if prod(a+0)<>720 then bugmes();quit;end
 if prod(a,1)<>[-15 -48] then bugmes();quit;end
 if or(prod(a+0,1)<>[-15 -48]) then bugmes();quit;end
 n=1;
 if or(prod(a,n)<>[-15 -48]) then bugmes();quit;end
 if or(prod(a+0,n)<>[-15 -48]) then bugmes();quit;end
 if or(prod(a,'r')<>[-15 -48]) then bugmes();quit;end
 if or(prod(a+0,'r')<>[-15 -48]) then bugmes();quit;end
 n='r';
 if or(prod(a,n)<>[-15 -48]) then bugmes();quit;end
 if or(prod(a+0,n)<>[-15 -48]) then bugmes();quit;end
 if or(prod(a,2)<>[2;-12;-30]) then bugmes();quit;end
 if or(prod(a+0,2)<>[2;-12;-30]) then bugmes();quit;end
 n=2;
 if or(prod(a,n)<>[2;-12;-30]) then bugmes();quit;end
 if or(prod(a+0,n)<>[2;-12;-30]) then bugmes();quit;end
 if or(prod(a,'c')<>[2;-12;-30]) then bugmes();quit;end
 if or(prod(a+0,'c')<>[2;-12;-30]) then bugmes();quit;end
 n='c';
 if or(prod(a,n)<>[2;-12;-30]) then bugmes();quit;end
 if or(prod(a+0,n)<>[2;-12;-30]) then bugmes();quit;end
 a=[1 2;-3 4;5 -6]+0*%i;
 if prod(a)<>720+0*%i then bugmes();quit;end
 if prod(a+0)<>720+0*%i then bugmes();quit;end
 if or(prod(a,1)<>[-15 -48]+0*%i) then bugmes();quit;end
 if or(prod(a+0,1)<>[-15 -48]+0*%i) then bugmes();quit;end
 n=1;
 if or(prod(a,n)<>[-15 -48]+0*%i) then bugmes();quit;end
 if or(prod(a+0,n)<>[-15 -48]+0*%i) then bugmes();quit;end
 if or(prod(a,'r')<>[-15 -48]+0*%i) then bugmes();quit;end
 if or(prod(a+0,'r')<>[-15 -48]+0*%i) then bugmes();quit;end
 n='r';
 if or(prod(a,n)<>[-15 -48]+0*%i) then bugmes();quit;end
-if or(prod(a+0,n)<>[-15 -48]+0*%i) then bugmes();quit;end
+if or(prod(a+0,n)<>[-15 -48]+0*%i) then bugmes();quit;end
 if or(prod(a,2)<>[2;-12;-30]+0*%i) then bugmes();quit;end
 if or(prod(a+0,2)<>[2;-12;-30]+0*%i) then bugmes();quit;end
 n=2;
 if or(prod(a,n)<>[2;-12;-30]+0*%i) then bugmes();quit;end
 if or(prod(a+0,n)<>[2;-12;-30]+0*%i) then bugmes();quit;end
 if or(prod(a,'c')<>[2;-12;-30]+0*%i) then bugmes();quit;end
 if or(prod(a+0,'c')<>[2;-12;-30]+0*%i) then bugmes();quit;end
 n='c';
 if or(prod(a,n)<>[2;-12;-30]+0*%i) then bugmes();quit;end
 if or(prod(a+0,n)<>[2;-12;-30]+0*%i) then bugmes();quit;end
 a=[]
  a  =
  
      []
 if prod(a)<>1 then bugmes();quit;end
 if prod([])<>1 then bugmes();quit;end
 if prod(a,1)<>[] then bugmes();quit;end
 if prod([],1)<>[] then bugmes();quit;end
 n=1;
 if prod(a,n)<>[] then bugmes();quit;end
 if prod([],n)<>[] then bugmes();quit;end
 if prod(a,'r')<>[] then bugmes();quit;end
 if prod([],'r')<>[] then bugmes();quit;end
 n='r';
 if prod(a,n)<>[] then bugmes();quit;end
 if prod([],n)<>[] then bugmes();quit;end
 if prod(a,2)<>[] then bugmes();quit;end
 if prod([],2)<>[] then bugmes();quit;end
 n=2;
 if prod(a,n)<>[] then bugmes();quit;end
 if prod([],n)<>[] then bugmes();quit;end
 if prod(a,'c')<>[] then bugmes();quit;end
 if prod([],'c')<>[] then bugmes();quit;end
 n='c';
 if prod(a,n)<>[] then bugmes();quit;end
 if prod([],n)<>[] then bugmes();quit;end
 //cumsum
 a=[1 2;-3 4;5 -6];
 if or(cumsum(a)<>[1,5;-2,9;3,3]) then bugmes();quit;end
 if or(cumsum(a+0)<> [1,5;-2,9;3,3]) then bugmes();quit;end
 if or(cumsum(a,1)<>[1,2;-2,6;3 0]) then bugmes();quit;end
 if or(cumsum(a+0,1)<>[1,2;-2,6;3 0]) then bugmes();quit;end
 n=1;
 if or(cumsum(a,n)<>[1,2;-2,6;3 0]) then bugmes();quit;end
 if or(cumsum(a+0,n)<>[1,2;-2,6;3 0]) then bugmes();quit;end
 if or(cumsum(a,'r')<>[1,2;-2,6;3 0]) then bugmes();quit;end
 if or(cumsum(a+0,'r')<>[1,2;-2,6;3 0]) then bugmes();quit;end
 n='r';
 if or(cumsum(a,n)<>[1,2;-2,6;3 0]) then bugmes();quit;end
 if or(cumsum(a+0,n)<>[1,2;-2,6;3 0]) then bugmes();quit;end
 if or(cumsum(a,2)<>[1,3;-3,1;5,-1]) then bugmes();quit;end
 if or(cumsum(a+0,2)<>[1,3;-3,1;5,-1]) then bugmes();quit;end
 n=2;
 if or(cumsum(a,n)<>[1,3;-3,1;5,-1]) then bugmes();quit;end
 if or(cumsum(a+0,n)<>[1,3;-3,1;5,-1]) then bugmes();quit;end
 if or(cumsum(a,'c')<>[1,3;-3,1;5,-1]) then bugmes();quit;end
 if or(cumsum(a+0,'c')<>[1,3;-3,1;5,-1]) then bugmes();quit;end
 n='c';
 if or(cumsum(a,n)<>[1,3;-3,1;5,-1]) then bugmes();quit;end
 if or(cumsum(a+0,n)<>[1,3;-3,1;5,-1]) then bugmes();quit;end
 a=[1 2;-3 4;5 -6]+0*%i;
 if cumsum(a)<>3+0*%i then bugmes();quit;end
 if cumsum(a+0)<>3+0*%i then bugmes();quit;end
 if or(cumsum(a,1)<>[1,2;-2,6;3 0]+0*%i) then bugmes();quit;end
 if or(cumsum(a+0,1)<>[1,2;-2,6;3 0]+0*%i) then bugmes();quit;end
 n=1;
 if or(cumsum(a,n)<>[1,2;-2,6;3 0]+0*%i) then bugmes();quit;end
 if or(cumsum(a+0,n)<>[1,2;-2,6;3 0]+0*%i) then bugmes();quit;end
 if or(cumsum(a,'r')<>[1,2;-2,6;3 0]+0*%i) then bugmes();quit;end
 if or(cumsum(a+0,'r')<>[1,2;-2,6;3 0]+0*%i) then bugmes();quit;end
 n='r';
 if or(cumsum(a,n)<>[1,2;-2,6;3 0]+0*%i) then bugmes();quit;end
 if or(cumsum(a+0,n)<>[1,2;-2,6;3 0]+0*%i) then bugmes();quit;end
 if or(cumsum(a,2)<>[1,3;-3,1;5,-1]+0*%i) then bugmes();quit;end
 if or(cumsum(a+0,2)<>[1,3;-3,1;5,-1]+0*%i) then bugmes();quit;end
 n=2;
 if or(cumsum(a,n)<>[1,3;-3,1;5,-1]+0*%i) then bugmes();quit;end
 if or(cumsum(a+0,n)<>[1,3;-3,1;5,-1]+0*%i) then bugmes();quit;end
 if or(cumsum(a,'c')<>[1,3;-3,1;5,-1]+0*%i) then bugmes();quit;end
 if or(cumsum(a+0,'c')<>[1,3;-3,1;5,-1]+0*%i) then bugmes();quit;end
 n='c';
 if or(cumsum(a,n)<>[1,3;-3,1;5,-1]+0*%i) then bugmes();quit;end
 if or(cumsum(a+0,n)<>[1,3;-3,1;5,-1]+0*%i) then bugmes();quit;end
 a=[];
 if cumsum(a)<>[] then bugmes();quit;end
 if cumsum([])<>[] then bugmes();quit;end
 if cumsum(a,1)<>[] then bugmes();quit;end
 if cumsum([],1)<>[] then bugmes();quit;end
 n=1;
 if cumsum(a,n)<>[] then bugmes();quit;end
 if cumsum([],n)<>[] then bugmes();quit;end
 if cumsum(a,'r')<>[] then bugmes();quit;end
 if cumsum([],'r')<>[] then bugmes();quit;end
 n='r';
 if cumsum(a,n)<>[] then bugmes();quit;end
 if cumsum([],n)<>[] then bugmes();quit;end
 if cumsum(a,2)<>[] then bugmes();quit;end
 if cumsum([],2)<>[] then bugmes();quit;end
 n=2;
 if cumsum(a,n)<>[] then bugmes();quit;end
 if cumsum([],n)<>[] then bugmes();quit;end
 if cumsum(a,'c')<>[] then bugmes();quit;end
 if cumsum([],'c')<>[] then bugmes();quit;end
 n='c';
 if cumsum(a,n)<>[] then bugmes();quit;end
 if cumsum([],n)<>[] then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]);
 //if cumsum(a)<> [1,5;-2,9;3,3] then bugmes();quit;end
 //if cumsum(a+0*a)<> [1,5;-2,9;3,3] then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]+0*%i);
 //if cumsum(a)<>3+0*%i then bugmes();quit;end
 //if cumsum(a+0*a)<>3+0*%i then bugmes();quit;end
 //cumprod
 a=[1 2;-3 4;5 -6];
 if or(cumprod(a)<>[1 -30;-3 -120;-15 720]) then bugmes();quit;end
 if or(cumprod(a+0)<> [1 -30;-3 -120;-15 720]) then bugmes();quit;end
 if or(cumprod(a,1)<>[1 2;-3 8;-15 -48]) then bugmes();quit;end
 if or(cumprod(a+0,1)<>[1 2;-3 8;-15 -48]) then bugmes();quit;end
 n=1;
 if or(cumprod(a,n)<>[1 2;-3 8;-15 -48]) then bugmes();quit;end
 if or(cumprod(a+0,n)<>[1 2;-3 8;-15 -48]) then bugmes();quit;end
 if or(cumprod(a,'r')<>[1 2;-3 8;-15 -48]) then bugmes();quit;end
 if or(cumprod(a+0,'r')<>[1 2;-3 8;-15 -48]) then bugmes();quit;end
 n='r';
 if or(cumprod(a,n)<>[1 2;-3 8;-15 -48]) then bugmes();quit;end
 if or(cumprod(a+0,n)<>[1 2;-3 8;-15 -48]) then bugmes();quit;end
 if or(cumprod(a,2)<>[1 2;-3 -12;5 -30]) then bugmes();quit;end
 if or(cumprod(a+0,2)<>[1 2;-3 -12;5 -30]) then bugmes();quit;end
 n=2;
 if or(cumprod(a,n)<>[1 2;-3 -12;5 -30]) then bugmes();quit;end
 if or(cumprod(a+0,n)<>[1 2;-3 -12;5 -30]) then bugmes();quit;end
 if or(cumprod(a,'c')<>[1 2;-3 -12;5 -30]) then bugmes();quit;end
 if or(cumprod(a+0,'c')<>[1 2;-3 -12;5 -30]) then bugmes();quit;end
 n='c';
 if or(cumprod(a,n)<>[1 2;-3 -12;5 -30]) then bugmes();quit;end
 if or(cumprod(a+0,n)<>[1 2;-3 -12;5 -30]) then bugmes();quit;end
 a=[1 2;-3 4;5 -6]+0*%i;
 if cumprod(a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 if cumprod(a+0)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 if or(cumprod(a,1)<>[1 2;-3 8;-15 -48]+0*%i) then bugmes();quit;end
 if or(cumprod(a+0,1)<>[1 2;-3 8;-15 -48]+0*%i) then bugmes();quit;end
 n=1;
 if or(cumprod(a,n)<>[1 2;-3 8;-15 -48]+0*%i) then bugmes();quit;end
 if or(cumprod(a+0,n)<>[1 2;-3 8;-15 -48]+0*%i) then bugmes();quit;end
 if or(cumprod(a,'r')<>[1 2;-3 8;-15 -48]+0*%i) then bugmes();quit;end
 if or(cumprod(a+0,'r')<>[1 2;-3 8;-15 -48]+0*%i) then bugmes();quit;end
 n='r';
 if or(cumprod(a,n)<>[1 2;-3 8;-15 -48]+0*%i) then bugmes();quit;end
 if or(cumprod(a+0,n)<>[1 2;-3 8;-15 -48]+0*%i) then bugmes();quit;end
 if or(cumprod(a,2)<>[1 2;-3 -12;5 -30]+0*%i) then bugmes();quit;end
 if or(cumprod(a+0,2)<>[1 2;-3 -12;5 -30]+0*%i) then bugmes();quit;end
 n=2;
 if or(cumprod(a,n)<>[1 2;-3 -12;5 -30]+0*%i) then bugmes();quit;end
 if or(cumprod(a+0,n)<>[1 2;-3 -12;5 -30]+0*%i) then bugmes();quit;end
 if or(cumprod(a,'c')<>[1 2;-3 -12;5 -30]+0*%i) then bugmes();quit;end
 if or(cumprod(a+0,'c')<>[1 2;-3 -12;5 -30]+0*%i) then bugmes();quit;end
 n='c';
 if or(cumprod(a,n)<>[1 2;-3 -12;5 -30]+0*%i) then bugmes();quit;end
 if or(cumprod(a+0,n)<>[1 2;-3 -12;5 -30]+0*%i) then bugmes();quit;end
 a=[];
 if cumprod(a)<>[] then bugmes();quit;end
 if cumprod([])<>[] then bugmes();quit;end
 if cumprod(a,1)<>[] then bugmes();quit;end
 if cumprod([],1)<>[] then bugmes();quit;end
 n=1;
 if cumprod(a,n)<>[] then bugmes();quit;end
 if cumprod([],n)<>[] then bugmes();quit;end
 if cumprod(a,'r')<>[] then bugmes();quit;end
 if cumprod([],'r')<>[] then bugmes();quit;end
 n='r';
 if cumprod(a,n)<>[] then bugmes();quit;end
 if cumprod([],n)<>[] then bugmes();quit;end
 if cumprod(a,2)<>[] then bugmes();quit;end
 if cumprod([],2)<>[] then bugmes();quit;end
 n=2;
 if cumprod(a,n)<>[] then bugmes();quit;end
 if cumprod([],n)<>[] then bugmes();quit;end
 if cumprod(a,'c')<>[] then bugmes();quit;end
 if cumprod([],'c')<>[] then bugmes();quit;end
 n='c';
 if cumprod(a,n)<>[] then bugmes();quit;end
 if cumprod([],n)<>[] then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]);
 //if cumprod(a)<> [1 -30;-3 -120;-15 720] then bugmes();quit;end
 //if cumprod(a+0*a)<> [1 -30;-3 -120;-15 720] then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]+0*%i);
 //if cumprod(a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //if cumprod(a+0*a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //maxi
 a=[1 2;-3 4;5 -6];
 if or(maxi(a)<>5) then bugmes();quit;end
 if or(maxi(a+0)<>5) then bugmes();quit;end
 if or(maxi(a,'r')<>[5 4]) then bugmes();quit;end
 if or(maxi(a+0,'r')<>[5 4]) then bugmes();quit;end
 n='r';
 if or(maxi(a,n)<>[5 4]) then bugmes();quit;end
 if or(maxi(a+0,n)<>[5 4]) then bugmes();quit;end
 if or(maxi(a,'c')<>[2;4;5]) then bugmes();quit;end
 if or(maxi(a+0,'c')<>[2;4;5]) then bugmes();quit;end
 n='c';
 if or(maxi(a,n)<>[2;4;5]) then bugmes();quit;end
 if or(maxi(a+0,n)<>[2;4;5]) then bugmes();quit;end
 //a=[1 2;-3 4;5 -6]+0*%i;
 //if maxi(a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //if maxi(a+0)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //if or(maxi(a,'r')<>[5 4]+0*%i) then bugmes();quit;end
 //if or(maxi(a+0,'r')<>[5 4]+0*%i) then bugmes();quit;end
 //n='r';
 //if or(maxi(a,n)<>[5 4]+0*%i) then bugmes();quit;end
 //if or(maxi(a+0,n)<>[5 4]+0*%i) then bugmes();quit;end
 //if or(maxi(a,'c')<>[2;4;5]+0*%i) then bugmes();quit;end
 //if or(maxi(a+0,'c')<>[2;4;5]+0*%i) then bugmes();quit;end
 //n='c';
 //if or(maxi(a,n)<>[2;4;5]+0*%i) then bugmes();quit;end
 //if or(maxi(a+0,n)<>[2;4;5]+0*%i) then bugmes();quit;end
 a=[];
 if maxi(a)<>[] then bugmes();quit;end
 if maxi([])<>[] then bugmes();quit;end
 if maxi(a,'r')<>[] then bugmes();quit;end
 if maxi([],'r')<>[] then bugmes();quit;end
 n='r';
 if maxi(a,n)<>[] then bugmes();quit;end
 if maxi([],n)<>[] then bugmes();quit;end
 if maxi(a,'c')<>[] then bugmes();quit;end
 if maxi([],'c')<>[] then bugmes();quit;end
 n='c';
 if maxi(a,n)<>[] then bugmes();quit;end
 if maxi([],n)<>[] then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]);
 //if maxi(a)<>5 then bugmes();quit;end
 //if maxi(a+0*a)<>5 then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]+0*%i);
 //if maxi(a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //if maxi(a+0*a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //mini
 a=[1 2;-3 4;5 -6];
 if or(mini(a)<>-6) then bugmes();quit;end
 if or(mini(a+0)<>-6) then bugmes();quit;end
 if or(mini(a,'r')<>[-3 -6]) then bugmes();quit;end
 if or(mini(a+0,'r')<>[-3 -6]) then bugmes();quit;end
 n='r';
 if or(mini(a,n)<>[-3 -6]) then bugmes();quit;end
 if or(mini(a+0,n)<>[-3 -6]) then bugmes();quit;end
 if or(mini(a,'c')<>[1;-3;-6]) then bugmes();quit;end
 if or(mini(a+0,'c')<>[1;-3;-6]) then bugmes();quit;end
 n='c';
 if or(mini(a,n)<>[1;-3;-6]) then bugmes();quit;end
 if or(mini(a+0,n)<>[1;-3;-6]) then bugmes();quit;end
 //a=[1 2;-3 4;5 -6]+0*%i;
 //if mini(a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //if mini(a+0)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //if or(mini(a,'r')<>[-3 -6]+0*%i) then bugmes();quit;end
 //if or(mini(a+0,'r')<>[-3 -6]+0*%i) then bugmes();quit;end
 //n='r';
 //if or(mini(a,n)<>[-3 -6]+0*%i) then bugmes();quit;end
 //if or(mini(a+0,n)<>[-3 -6]+0*%i) then bugmes();quit;end
 //if or(mini(a,'c')<>[1;-3;-6]+0*%i) then bugmes();quit;end
 //if or(mini(a+0,'c')<>[1;-3;-6]+0*%i) then bugmes();quit;end
 //n='c';
 //if or(mini(a,n)<>[1;-3;-6]+0*%i) then bugmes();quit;end
 //if or(mini(a+0,n)<>[1;-3;-6]+0*%i) then bugmes();quit;end
 a=[];
 if mini(a)<>[] then bugmes();quit;end
 if mini([])<>[] then bugmes();quit;end
 if mini(a,'r')<>[] then bugmes();quit;end
 if mini([],'r')<>[] then bugmes();quit;end
 n='r';
 if mini(a,n)<>[] then bugmes();quit;end
 if mini([],n)<>[] then bugmes();quit;end
 if mini(a,'c')<>[] then bugmes();quit;end
 if mini([],'c')<>[] then bugmes();quit;end
 n='c';
 if mini(a,n)<>[] then bugmes();quit;end
 if mini([],n)<>[] then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]);
 //if mini(a)<>-6 then bugmes();quit;end
 //if mini(a+0*a)<>-6 then bugmes();quit;end
 a=sparse([1 2;-3 4;5 -6]+0*%i);
 //if mini(a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //if mini(a+0*a)<>[1 -30;-3 -120;-15 720]+0*%i then bugmes();quit;end
 //sort
 a=[5 1 3 2 4]
  a  =
  
     5.    1.    3.    2.    4.  
 if or(sort(a)<>[5 4 3 2 1]) then bugmes();quit;end
 if or(sort(a+0)<>[5 4 3 2 1]) then bugmes();quit;end
 [s,k]=sort(a);
 if or(k<>[1 5 3 4 2]) then bugmes();quit;end
 if or(s<>[5 4 3 2 1]) then bugmes();quit;end
 [s,k]=sort(a+0);
 if or(k<>[1 5 3 4 2]) then bugmes();quit;end
 if or(s<>[5 4 3 2 1]) then bugmes();quit;end
 a=string([5 1 3 2 4])
  a  =
  
 !5  1  3  2  4  !
 //if or(sort(a)<>string(1:5)) then bugmes();quit;end
 if or(sort(string([5 1 3 2 4]))<>string(1:5)) then bugmes();quit;end
 //[s,k]=sort(a);
 //if or(k<>[2 4 3 5 1]) then bugmes();quit;end
 //if or(s<>string(1:5)) then bugmes();quit;end
 [s,k]=sort(string([5 1 3 2 4]));
 if or(k<>[2 4 3 5 1]) then bugmes();quit;end
 if or(s<>string(1:5)) then bugmes();quit;end
 a=[]
  a  =
  
      []
 if sort(a)<>[] then bugmes();quit;end
 [s,k]=sort(a);if s<>[]|k<>[] then bugmes();quit;end
 if sort([])<>[] then bugmes();quit;end
 [s,k]=sort([]);if s<>[]|k<>[] then bugmes();quit;end
 //kron
 a=[1 2];b=[3;4];
 if or(kron(a,b)<>[3 6;4 8]) then bugmes();quit;end
 if or(kron(a+0,b)<>[3 6;4 8]) then bugmes();quit;end
 if or(kron(a,b+0)<>[3 6;4 8]) then bugmes();quit;end
 if or(kron(a+0,b+0)<>[3 6;4 8]) then bugmes();quit;end
 if kron([],b)<>[] then bugmes();quit;end
 if kron([],b+0)<>[] then bugmes();quit;end
 a=[];
 if kron(a,b)<>[] then bugmes();quit;end
 if kron(a,b+0)<>[] then bugmes();quit;end
 a=[1 2];b=[]
  b  =
  
      []
 if kron(a,b)<>[] then bugmes();quit;end
 if kron(a+0,b)<>[] then bugmes();quit;end
 if kron(a,[])<>[] then bugmes();quit;end
 if kron(a+0,[])<>[] then bugmes();quit;end
 a=[];b=[];
 if kron(a,b)<>[] then bugmes();quit;end
 if kron(a,[])<>[] then bugmes();quit;end
 if kron([],b)<>[] then bugmes();quit;end
 if kron([],[])<>[] then bugmes();quit;end
 //matrix
 a=[1 2 3 4 5 6];
 n=1;m=6;
 if or(matrix(a,1,6)<>a) then bugmes();quit;end
 if or(matrix(a,n,6)<>a) then bugmes();quit;end
 if or(matrix(a,1,m)<>a) then bugmes();quit;end
 if or(matrix(a,n,m)<>a) then bugmes();quit;end
 if or(matrix(a+0,1,6)<>a) then bugmes();quit;end
 if or(matrix(a+0,n,6)<>a) then bugmes();quit;end
 if or(matrix(a+0,1,m)<>a) then bugmes();quit;end
 if or(matrix(a+0,n,m)<>a) then bugmes();quit;end
 n=3;m=2; b=[1 4;2 5;3 6];
 if or(matrix(a,3,2)<>b) then bugmes();quit;end
 if or(matrix(a,n,2)<>b) then bugmes();quit;end
 if or(matrix(a,3,m)<>b) then bugmes();quit;end
 if or(matrix(a,n,m)<>b) then bugmes();quit;end
 if or(matrix(a+0,3,2)<>b) then bugmes();quit;end
 if or(matrix(a+0,n,2)<>b) then bugmes();quit;end
 if or(matrix(a+0,3,m)<>b) then bugmes();quit;end
 if or(matrix(a+0,n,m)<>b) then bugmes();quit;end
 a=[1+%i 2 3 4 5 6];
 n=1;m=6;
 if or(matrix(a,1,6)<>a) then bugmes();quit;end
 if or(matrix(a,n,6)<>a) then bugmes();quit;end
 if or(matrix(a,1,m)<>a) then bugmes();quit;end
 if or(matrix(a,n,m)<>a) then bugmes();quit;end
 if or(matrix(a+0,1,6)<>a) then bugmes();quit;end
 if or(matrix(a+0,n,6)<>a) then bugmes();quit;end
 if or(matrix(a+0,1,m)<>a) then bugmes();quit;end
 if or(matrix(a+0,n,m)<>a) then bugmes();quit;end
 n=3;m=2; b=[1+%i 4;2 5;3 6];
 if or(matrix(a,3,2)<>b) then bugmes();quit;end
 if or(matrix(a,n,2)<>b) then bugmes();quit;end
 if or(matrix(a,3,m)<>b) then bugmes();quit;end
 if or(matrix(a,n,m)<>b) then bugmes();quit;end
 if or(matrix(a+0,3,2)<>b) then bugmes();quit;end
 if or(matrix(a+0,n,2)<>b) then bugmes();quit;end
 if or(matrix(a+0,3,m)<>b) then bugmes();quit;end
 if or(matrix(a+0,n,m)<>b) then bugmes();quit;end
 a=string([1 2 3 4 5 6]);n=1;m=6;
 if or(matrix(a,1,6)<>a) then bugmes();quit;end
 if or(matrix(a,n,6)<>a) then bugmes();quit;end
 if or(matrix(a,1,m)<>a) then bugmes();quit;end
 if or(matrix(a,n,m)<>a) then bugmes();quit;end
 if or(matrix(a+a,1,6)<>a+a) then bugmes();quit;end
 if or(matrix(a+a,n,6)<>a+a) then bugmes();quit;end
 if or(matrix(a+a,1,m)<>a+a) then bugmes();quit;end
 if or(matrix(a+a,n,m)<>a+a) then bugmes();quit;end
 n=3;m=2; b=string([1 4;2 5;3 6]);
 if or(matrix(a,3,2)<>b) then bugmes();quit;end
 if or(matrix(a,n,2)<>b) then bugmes();quit;end
 if or(matrix(a,3,m)<>b) then bugmes();quit;end
 if or(matrix(a,n,m)<>b) then bugmes();quit;end
 if or(matrix(a+a,3,2)<>b+b) then bugmes();quit;end
 if or(matrix(a+a,n,2)<>b+b) then bugmes();quit;end
 if or(matrix(a+a,3,m)<>b+b) then bugmes();quit;end
 if or(matrix(a+a,n,m)<>b+b) then bugmes();quit;end
 a=[1 2 3 4 5 6]+%s;
 n=1;m=6;
 if or(matrix(a,1,6)<>a) then bugmes();quit;end
 if or(matrix(a,n,6)<>a) then bugmes();quit;end
 if or(matrix(a,1,m)<>a) then bugmes();quit;end
 if or(matrix(a,n,m)<>a) then bugmes();quit;end
 if or(matrix(a+0,1,6)<>a) then bugmes();quit;end
 if or(matrix(a+0,n,6)<>a) then bugmes();quit;end
 if or(matrix(a+0,1,m)<>a) then bugmes();quit;end
 if or(matrix(a+0,n,m)<>a) then bugmes();quit;end
 n=3;m=2; b=[1 4;2 5;3 6]+%s;
 if or(matrix(a,3,2)<>b) then bugmes();quit;end
 if or(matrix(a,n,2)<>b) then bugmes();quit;end
 if or(matrix(a,3,m)<>b) then bugmes();quit;end
 if or(matrix(a,n,m)<>b) then bugmes();quit;end
 if or(matrix(a+0,3,2)<>b) then bugmes();quit;end
 if or(matrix(a+0,n,2)<>b) then bugmes();quit;end
 if or(matrix(a+0,3,m)<>b) then bugmes();quit;end
 if or(matrix(a+0,n,m)<>b) then bugmes();quit;end
 a=[1+%i 2 3 4 5 6]+%s;
 n=1;m=6;
 if or(matrix(a,1,6)<>a) then bugmes();quit;end
 if or(matrix(a,n,6)<>a) then bugmes();quit;end
 if or(matrix(a,1,m)<>a) then bugmes();quit;end
 if or(matrix(a,n,m)<>a) then bugmes();quit;end
 if or(matrix(a+0,1,6)<>a) then bugmes();quit;end
 if or(matrix(a+0,n,6)<>a) then bugmes();quit;end
 if or(matrix(a+0,1,m)<>a) then bugmes();quit;end
 if or(matrix(a+0,n,m)<>a) then bugmes();quit;end
 n=3;m=2; b=[1+%i 4;2 5;3 6]+%s;
 if or(matrix(a,3,2)<>b) then bugmes();quit;end
 if or(matrix(a,n,2)<>b) then bugmes();quit;end
 if or(matrix(a,3,m)<>b) then bugmes();quit;end
 if or(matrix(a,n,m)<>b) then bugmes();quit;end
 if or(matrix(a+0,3,2)<>b) then bugmes();quit;end
 if or(matrix(a+0,n,2)<>b) then bugmes();quit;end
 if or(matrix(a+0,3,m)<>b) then bugmes();quit;end
 if or(matrix(a+0,n,m)<>b) then bugmes();quit;end
 //clean
 a=[1 1.d-12 1.d-5 2d8];
 b=[1 0 0 2d8];
 if or(clean(a)<>b) then bugmes();quit;end
 if or(clean(a+0)<>b) then bugmes();quit;end
 epsa=1.d-10;
 if or(clean(a,epsa)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa)<>b) then bugmes();quit;end
 if or(clean(a,epsa+0)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa+0)<>b) then bugmes();quit;end
 epsr=1.d-5;b=[0 0 0 2d8];
 if or(clean(a,epsa,epsr)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa,epsr)<>b) then bugmes();quit;end
 if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end
 if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end
 if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa+0,epsr+0)<>b) then bugmes();quit;end
 a=[1+%i 1.d-12 1.d-5 2d8];
 b=[1+%i 0 0 2d8];
 if or(clean(a)<>b) then bugmes();quit;end
 if or(clean(a+0)<>b) then bugmes();quit;end
 epsa=1.d-10;
 if or(clean(a,epsa)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa)<>b) then bugmes();quit;end
 if or(clean(a,epsa+0)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa+0)<>b) then bugmes();quit;end
 epsr=1.d-5;b=[0+0*%i 0 0 2d8];
 if or(clean(a,epsa,epsr)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa,epsr)<>b) then bugmes();quit;end
 if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end
 if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end
 if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
 if or(clean(a+0,epsa+0,epsr+0)<>b) then bugmes();quit;end
index d8ab7cc..b30c96f 100644 (file)
 // Copyright INRIA
 //insertion
 v=[1 2 3];
 v(2)=3;if or(v<>[1 3 3]) then bugmes();quit;end
 v(4)=-5;if or(v<>[1 3 3 -5]) then bugmes();quit;end
 v([1 4])=[2 5];if or(v<>[2 3 3 5]) then bugmes();quit;end
 v([1 1])=[2 5];if or(v<>[5 3 3 5]) then bugmes();quit;end
 v([1 1 1 1 1 1])=[2 5 6 7 8 9];if or(v<>[9 3 3 5]) then bugmes();quit;end
 v([4 2])=[8 5];if or(v<>[9 5 3 8]) then bugmes();quit;end
 v=[1 2 3];
 v(2,4)=10;if or(v<>[1 2 3 0;0 0 0 10]) then bugmes();quit;end
 v([2 2],4)=[10;20];if or(v<>[1 2 3 0;0 0 0 20]) then bugmes();quit;end
 v([2 1],4)=[10;20];if or(v<>[1 2 3 20;0 0 0 10]) then bugmes();quit;end
 v([2 2 2],4)=[10;20;30];if or(v<>[1 2 3 20;0 0 0 30]) then bugmes();quit;end
 v=[1 2 3;0 0 10];
 v(1,[1 1 1 1])=1:4;;if or(v<>[4 2 3;0 0 10]) then bugmes();quit;end
 v([2 2],[1 1 1 1])=[1:4;2:5];if or(v<>[4 2 3;5 0 10]) then bugmes();quit;end
 v(3,4)=7;if or(v<>[4 2 3 0;5 0 10 0;0 0 0 7]) then bugmes();quit;end
 v=[];
 v(5)=1;if or(v<>[0;0;0;0;1]) then bugmes();quit;end
 v(2)=4;if or(v<>[0;4;0;0;1]) then bugmes();quit;end
 v=[1 2 3;4 5 6];
 v(:,1)=[4;1];if or(v<>[4 2 3;1 5 6]) then bugmes();quit;end
 v(:,[1 1])=[4 5;1 2];if or(v<>[5 2 3;2 5 6]) then bugmes();quit;end
 v(:,[3 1])=[4 5;1 2];if or(v<>[5 2 4;2 5 1]) then bugmes();quit;end
 v(:,[3 3 3 3])=[4 5 6 7;1 2 3 4];if or(v<>[5 2 7;2 5 4]) then bugmes();quit;end
 v=[1 2 3;4 5 6];
 v(1,:)=[2 3 4];if or(v<>[2 3 4;4 5 6]) then bugmes();quit;end
 v([1 1],:)=[2 3 4;4 5 6];if or(v<>[4 5 6;4 5 6]) then bugmes();quit;end
 v([2 2 2 2],:)=[2 3 4;4 5 6;7 8 9;10 11 12];
 if or(v<>[4 5 6;10 11 12]) then bugmes();quit;end
 v=[1 2 3];
 v(2)=[];if or(v<>[1 3]) then bugmes();quit;end
 v=[1 2 3];
 v([3 2])=[];if v<>1 then bugmes();quit;end
 v=[1 2 3]';
 v(2)=[];if or(v<>[1 3]') then bugmes();quit;end
 v=[1 2 3]';
 v([3 2])=[];if v<>1 then bugmes();quit;end
 v=[1 2 3;4 5 6];
 v(1,:)=[];if or(v<>[4 5 6]);then bugmes();quit;end
 v=[1 2 3;4 5 6];
 v(:,[3 2])=[];if or(v<>[1;4]);then bugmes();quit;end
 //======================
 v=[1 2 3];
 v(2)=%i;if or(v<>[1 %i 3]) then bugmes();quit;end
 v(4)=-5;if or(v<>[1 %i 3 -5]) then bugmes();quit;end
 v([1 4])=[2*%i 5];if or(v<>[2*%i %i 3 5]) then bugmes();quit;end
 v([1 1])=[2 5*%i];if or(v<>[5*%i %i 3 5]) then bugmes();quit;end
 v([1 1 1 1 1 1])=[2 5 6 7 8 9];if or(v<>[9 %i 3 5]) then bugmes();quit;end
 v([4 2])=[8 5];if or(v<>[9 5 3 8]) then bugmes();quit;end
 v=[%i 2 3];
 v(2,4)=10;if or(v<>[%i 2 3 0;0 0 0 10]) then bugmes();quit;end
 v([2 2],4)=[10;20*%i];if or(v<>[%i 2 3 0;0 0 0 20*%i]) then bugmes();quit;end
 v([2 1],4)=[10;20*%i];if or(v<>[%i 2 3 20*%i;0 0 0 10]) then bugmes();quit;end
 v([2 2 2],4)=[10;20;30];if or(v<>[%i 2 3 20*%i;0 0 0 30]) then bugmes();quit;end
 v=[1 2 3;0 0 10*%i];
 v(1,[1 1 1 1])=1:4;if or(v<>[4 2 3;0 0 10*%i]) then bugmes();quit;end
 v([2 2],[1 1 1 1])=[1:4;2:5];if or(v<>[4 2 3;5 0 10*%i]) then bugmes();quit;end
 v(3,4)=7;if or(v<>[4 2 3 0;5 0 10*%i 0;0 0 0 7]) then bugmes();quit;end
 v=[];
 v(5)=%i;if or(v<>[0;0;0;0;%i]) then bugmes();quit;end
 v(2)=4;if or(v<>[0;4;0;0;%i]) then bugmes();quit;end
 v=[1 2 3;4 5 6];
 v(:,1)=[4;%i];if or(v<>[4 2 3;%i 5 6]) then bugmes();quit;end
 v(:,[1 1])=[4 5;1 2];if or(v<>[5 2 3;2 5 6]) then bugmes();quit;end
 v(:,[3 1])=[4 5;%i 2];if or(v<>[5 2 4;2 5 %i]) then bugmes();quit;end
 v(:,[3 3 3 3])=[4 5 6 7;1 2 3 4];if or(v<>[5 2 7;2 5 4]) then bugmes();quit;end
 v=[%i 2 3;4 5 6];
 v(1,:)=[2 3 4];if or(v<>[2 3 4;4 5 6]) then bugmes();quit;end
 v([1 1],:)=[2 3 4;4*%i 5 6];if or(v<>[4*%i 5 6;4 5 6]) then bugmes();quit;end
 v([2 2 2 2],:)=[2 3 4;4 5 6;7 8 9;10 11 12];
 if or(v<>[4*%i 5 6;10 11 12]) then bugmes();quit;end
 v=[%i 2 3];
 v(2)=[];if or(v<>[%i 3]) then bugmes();quit;end
 v=[1 2 3*%i];
 v([3 2])=[];if v<>1 then bugmes();quit;end
 v=[%i 2 3]';
 v(2)=[];if or(v<>[%i 3]') then bugmes();quit;end
 v=[1 2 3*%i]';
 v([3 2])=[];if v<>1 then bugmes();quit;end
 v=[%i 2 3;4 5 6];
 v(1,:)=[];if or(v<>[4 5 6]);then bugmes();quit;end
 v=[%i 2 3;4 5 6];
 v(:,[3 2])=[];if or(v<>[%i;4]);then bugmes();quit;end
index 2602ed9..557cd92 100644 (file)
 //syntax with no explicit lhs
 1
  ans  =
  
     1.  
 -1
  ans  =
  
   - 1.  
 1+1
  ans  =
  
     2.  
 1==2
  ans  =
  
   F  
 [1 2 3]
  ans  =
  
     1.    2.    3.  
 ans(1)
  ans  =
  
     1.  
 [sin(3) 2 3]
  ans  =
  
     0.1411200    2.    3.  
 sin(3)
  ans  =
  
     0.1411200  
 ans
  ans  =
  
     0.1411200  
 ans==1
  ans  =
  
   F  
 :
  ans  =
  
 eye *
  
     1.  
 [
 ]
  ans  =
  
      []
 [ans
 ]
  ans  =
  
      []
 'xxxxx'
  ans  =
  
  xxxxx   
 'xx=xxx'
  ans  =
  
  xx=xxx   
 disp xxx
  
  xxx   
 //syntax with simple lhs
 a=1
  a  =
  
     1.  
 a=[1 2 3]
  a  =
  
     1.    2.    3.  
 a=[1 2 3
    4 5 6]
  a  =
  
     1.    2.    3.  
     4.    5.    6.  
 a(2)=44
  a  =
  
     1.     2.    3.  
     44.    5.    6.  
 clear c;c(5)=9
  c  =
  
@@ -121,8 +94,6 @@ clear c;c(5)=9
     0.  
     0.  
     9.  
 [m,k]=max(1:3)
  k  =
  
@@ -130,7 +101,6 @@ clear c;c(5)=9
  m  =
  
     3.  
 [d1f d2f d3f d4f] = (1,2,3,4)
  d4f  =
  
@@ -144,47 +114,33 @@ clear c;c(5)=9
  d1f  =
  
     1.  
 if 10<>3 then x=disp('abcd'),end
  
  abcd   
 if 10<>3 then disp('abcd'),end
  
  abcd   
 if 10<>3  x=disp('abcd'),end//matlab syntax
  
  abcd   
 if 10<>3  disp('abcd'),end//matlab syntax
  
  abcd   
 if (1==1) then 'ok',end
  ans  =
  
  ok   
 for k=1:2,disp(k),end
  
     1.  
  
     2.  
 function foo(k),disp(k),endfunction;
 for k=1:2,foo(k),end
  
     1.  
  
     2.  
 for k=1:2,(1+1),end
  ans  =
  
@@ -192,8 +148,6 @@ for k=1:2,(1+1),end
  ans  =
  
     2.  
 for k=1:2,[m,k]=max(1:k),end
  k  =
  
@@ -207,7 +161,6 @@ for k=1:2,[m,k]=max(1:k),end
  m  =
  
     2.  
 for k=1:2,[1,2],end
  ans  =
  
@@ -215,9 +168,6 @@ for k=1:2,[1,2],end
  ans  =
  
     1.    2.  
 for k=1:3 k,end //matlab syntax
  k  =
  
@@ -228,11 +178,7 @@ for k=1:3 k,end //matlab syntax
  k  =
  
     3.  
 //nouvelles syntaxes
 [a(1),b(2)]=(3,4)
  b  =
  
@@ -242,8 +188,6 @@ for k=1:3 k,end //matlab syntax
  
     3.     2.    3.  
     44.    5.    6.  
 [a(1),x,b(2)]=(3,4,5)
  b  =
  
@@ -256,7 +200,6 @@ for k=1:3 k,end //matlab syntax
  
     3.     2.    3.  
     44.    5.    6.  
 [a(1),b(1,2),x]=(3,4,5)
  x  =
  
@@ -269,10 +212,7 @@ for k=1:3 k,end //matlab syntax
  
     3.     2.    3.  
     44.    5.    6.  
 I1=list(2,3);I2=list(1,2);
 clear x y;[x,y(I2(:))]=(11,12)
  y  =
  
@@ -280,7 +220,6 @@ clear x y;[x,y(I2(:))]=(11,12)
  x  =
  
     11.  
 clear x y;[x(I1(:)),y]=(11,12)
  y  =
  
@@ -289,7 +228,6 @@ clear x y;[x(I1(:)),y]=(11,12)
  
     0.    0.    0.   
     0.    0.    11.  
 clear x y;[x(I1(:)),y(I2(:))]=(11,12)
  y  =
  
@@ -298,15 +236,10 @@ clear x y;[x(I1(:)),y(I2(:))]=(11,12)
  
     0.    0.    0.   
     0.    0.    11.  
 str_l=list();str_l(1)=1;str_l(1)
  ans  =
  
     1.  
 l=list(1,2,3);l(3)=null()
  l  =
  
@@ -318,92 +251,72 @@ l=list(1,2,3);l(3)=null()
        l(2)
  
     2.  
 function []=foo()
   [noeuds,triang]=resume(1,2)
 endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 foo();disp([noeuds,triang])
  
     1.    2.  
 function [a]=foo(x)
   a=33
   [noeuds,triang]=resume(45,sin(2))
 endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 foo(%t)
  ans  =
  
     33.  
 function [a]=foo(x)
   a=33
 if x,  return,end
 endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 foo(%t)
  ans  =
  
     33.  
 foo();disp([noeuds,triang])
  
     45.    0.9092974  
 deff('t1=foo()','t1(2)= 1','n');foo()
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
  ans  =
  
     0.  
     1.  
 deff('t1=foo()','t1(2)= 1');foo()
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
  ans  =
  
     0.  
     1.  
 deff('t1=foo()','t1=list();t1(1)= 44;','n');foo()
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
  ans  =
  
  
        ans(1)
  
     44.  
 deff('t1=foo()','t1=list();t1(1)= 44;');foo()
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
  ans  =
  
  
        ans(1)
  
     44.  
 deff('[a,b,x]=foo()','[a(1),b(1,2),x]=(3,4,5);','n');[a,b,x]=foo()
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
  x  =
  
     5.  
@@ -413,10 +326,9 @@ Warning :redefining function: foo
  a  =
  
     3.  
 deff('[a,b,x]=foo()','[a(1),b(1,2),x]=(3,4,5);');[a,b,x]=foo()
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
  x  =
  
     5.  
@@ -426,14 +338,9 @@ Warning :redefining function: foo
  a  =
  
     3.  
 function [a,b,x]=foo(),u=5;[a(1),b(1,2),x]=(3,4,u),a(2)=44,endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 [a,b,x]=foo()
  x  =
  
@@ -445,12 +352,9 @@ Warning :redefining function: foo
  
     3.   
     44.  
 function [a,b,x]=foo(),[a,b,x]=(3,4,5),endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 [a,b,x]=foo()
  x  =
  
@@ -461,40 +365,27 @@ Warning :redefining function: foo
  a  =
  
     3.  
 function x=foo(),INDX=list(2,3); x(INDX(:))=11; endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 foo()
  ans  =
  
     0.    0.    0.   
     0.    0.    11.  
 I1=list(2,3);I2=list(1,2);
 function foo(),[x(I1(:)),y(I2(:))]=(11,12);disp(x,y), endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 foo()
  
     0.    12.  
  
     0.    0.    0.   
     0.    0.    11.  
 function l=foo(),l=list(1,2,3);l(3)=null();endfunction
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 foo()
  ans  =
  
@@ -506,7 +397,3 @@ foo()
        ans(2)
  
     2.  
index a20ca57..d775f0b 100644 (file)
 deff('foo()','a=1,b=2,c=3;[x,y]=resume(a,b)')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','a=1,b=2,c=3;[x,y,z]=resume(a,b,c)')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','if %t then a=1,b=2,c=3;[x,y]=resume(a,b);end')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','if %t then a=1,b=2,c=3;[x,y,z]=resume(a,b,c);end')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','for k=1:3,if k==3 then a=1,b=2,c=3;[x,y]=resume(a,b);end;end')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','for k=1:3,if k==3 then a=1,b=2,c=3;[x,y,z]=resume(a,b,c);end;end')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','a=1,b=2,c=3;[x,y]=resume(a,b)','n')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','a=1,b=2,c=3;[x,y,z]=resume(a,b,c)','n')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','if %t then a=1,b=2,c=3;[x,y]=resume(a,b);end','n')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','if %t then a=1,b=2,c=3;[x,y,z]=resume(a,b,c);end','n')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','for k=1:3,if k==3 then a=1,b=2,c=3;[x,y]=resume(a,b);end;end','n')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','for k=1:3,if k==3 then a=1,b=2,c=3;[x,y,z]=resume(a,b,c);end;end','n')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 //======================================================================
 deff('foo()','a=1,b=2,c=3;execstr(''[x,y]=resume(a,b)'')')
-Warning :redefining function: foo                     
+Warning : redefining function: foo                     
+
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','a=1,b=2,c=3;execstr(''[x,y,z]=resume(a,b,c)'')')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','if %t then a=1,b=2,c=3;execstr(''[x,y]=resume(a,b)'');end')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','if %t then a=1,b=2,c=3;execstr(''[x,y,z]=resume(a,b,c)'');end')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','for k=1:3,if k==3 then a=1,b=2,c=3;execstr(''[x,y]=resume(a,b)'');end;end')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','for k=1:3,if k==3 then a=1,b=2,c=3;execstr(''[x,y,z]=resume(a,b,c)'');end;end')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','a=1,b=2,c=3;execstr(''[x,y]=resume(a,b)'')','n')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','a=1,b=2,c=3;execstr(''[x,y,z]=resume(a,b,c)'')','n')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','if %t then a=1,b=2,c=3;execstr(''[x,y]=resume(a,b)'');end','n')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','if %t then a=1,b=2,c=3;execstr(''[x,y,z]=resume(a,b,c)'');end','n')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
 clear foo x y z
 deff('foo()','for k=1:3,if k==3 then a=1,b=2,c=3;execstr(''[x,y]=resume(a,b)'');end;end','n')
 foo(); if x<>1|y<>2 then bugmes();quit;end
 clear foo x y z
 deff('foo()','for k=1:3,if k==3 then a=1,b=2,c=3;execstr(''[x,y,z]=resume(a,b,c)'');end;end','n')
 foo(); if x<>1|y<>2|z<>3 then bugmes();quit;end
index c16d931..983af52 100644 (file)
 //interactive mode
 clear a b
 try
   a=1;
 catch
   b=2+1;
 end
 if exists('a')==0|exists('b')==1 then bugmes();quit;end
 if a<>1 then bugmes();quit;end
 clear a b
 try  a=1+1;
 catch
   b=2;
 end
 if exists('a')==0|exists('b')==1 then bugmes();quit;end
 if a<>2 then bugmes();quit;end
 clear a b
 try  a=1;
 catch  b=2;
 end
 if exists('a')==0|exists('b')==1 then bugmes();quit;end
 if a<>1 then bugmes();quit;end
 clear a b
 try  a=1;catch  b=2;end
 if exists('a')==0|exists('b')==1 then bugmes();quit;end
 if a<>1 then bugmes();quit;end
 clear a b
 try,  a=1;catch,  b=2;end
 if exists('a')==0|exists('b')==1 then bugmes();quit;end
 if a<>1 then bugmes();quit;end
 clear a b xxxx
 try
   a=xxxx;
 catch
   b=2;
 end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 clear a b xxxx
 try   a=xxxx;
 catch
   b=2;
 end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 clear a b xxxx
 try
   a=xxxx;
 catch b=2;
 end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 clear a b xxxx
 try   a=xxxx;
 catch b=2;
 end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 clear a b xxxx
 try   a=xxxx;catch b=2;end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 clear a b xxxx
 if execstr('try a=xxxx catch b=2;end','errcatch')<>276 then bugmes();quit;end
 if exists('a')==1|exists('b')==1 then bugmes();quit;end
 clear a b xxxx
 if execstr('try a=1 catch b=2;end','errcatch')<>276 then bugmes();quit;end
 if exists('a')==1|exists('b')==1 then bugmes();quit;end
 clear a b xxxx
 try,  a=xxxx;catch, b=2;end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 clear a  xxxx
 try,  a=xxxx;catch;end
 if exists('a')==1 then bugmes();quit;end
 clear a  xxxx
 try,  a=xxxx;end
 if exists('a')==1 then bugmes();quit;end
 clear a b xxxx
 try;catch, b=2;end
 if exists('b')==1 then bugmes();quit;end
 try,end
 clear a b xxxx
 u=1;try,  a=xxxx;catch, b=2;end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 clear a b xxxx
 try, if %t then  a=xxxx,end;catch, b=2;end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 //nested try catch
 clear a b xxxx
 try
   a=xxxx;
 catch
@@ -196,53 +100,29 @@ catch
   end;
   b=b+1;
 end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>3 then bugmes();quit;end
 clear a b xxxx
 try   a=xxxx;catch try b=xxx,catch b=2;end;end
 if exists('a')==1|exists('b')==0 then bugmes();quit;end
 if b<>2 then bugmes();quit;end
 clear a b xxxx
 try a=2;try a=xxxx; catch a=a+1,end;catch;b=2;end
  a  =
  
     3.  
 if exists('a')==0|exists('b')==1 then bugmes();quit;end
 if a<>3 then bugmes();quit;end
 clear a b xxxx
 try a=2;try a=xxxx; catch a=a+1,end;b=2;end
  a  =
  
     3.  
 if exists('a')==0|exists('b')==0 then bugmes();quit;end
 if a<>3|b<>2 then bugmes();quit;end
 //catch in  functions
 funcprot(0)
 clear a b
 deff('r=test()',[
     'try'
     '  a=1;'
@@ -251,12 +131,8 @@ deff('r=test()',[
     'end'
     'r=exists(''a'')==0|exists(''b'')==1 '
     'r=r|a<>1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try  a=1;'
     'catch '
@@ -264,46 +140,29 @@ deff('r=test()',[
     'end'
     'r=exists(''a'')==0|exists(''b'')==1'
     'r=r|a<>1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try  a=1;'
     'catch  b=2;'
     'end'
     'r=exists(''a'')==0|exists(''b'')==1'
     'r=r|a<>1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try  a=1;catch  b=2;end'
     'r=exists(''a'')==0|exists(''b'')==1'
     'r=r|a<>1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try,  a=1;catch,  b=2;end'
     'r=exists(''a'')==0|exists(''b'')==1'
     'r=r|a<>1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 clear a b xxxx
 deff('r=test()',[
     'try'
     '  a=xxxx;'
@@ -312,12 +171,8 @@ deff('r=test()',[
     'end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=xxxx;'
     'catch '
@@ -325,12 +180,8 @@ deff('r=test()',[
     'end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try'
     '  a=xxxx;'
@@ -338,174 +189,99 @@ deff('r=test()',[
     'end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=xxxx;'
     'catch b=2;'
     'end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=xxxx;catch b=2;end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'if execstr(''try a=xxxx catch b=2;end'',''errcatch'')<>276 then bugmes();quit;end'
     'r=exists(''a'')==1|exists(''b'')==1 '],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=xxxx catch b=2;end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if execstr('test()','errcatch')<>276 then bugmes();quit;end
 deff('r=test()',[
     'if execstr(''try a=1 catch b=2;end'',''errcatch'')<>276 then bugmes();quit;end'
     'r=exists(''a'')==1|exists(''b'')==1 '],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=1, catch b=2;end'
     'r=exists(''a'')==0|exists(''b'')==1'
     'r=r|a<>1'],'n')
 if execstr('r=test()','errcatch')<>0 then bugmes();quit;end
 if r then bugmes();quit;end
 comp(test)
 if execstr('r=test()','errcatch')<>0 then bugmes();quit;end
 if r then bugmes();quit;end
 deff('r=test()',[
     'try b=xxxx, catch a=1;end'
     'r=exists(''a'')==0|exists(''b'')==1'
     'r=r|a<>1'],'n')
 if execstr('r=test()','errcatch')<>0 then bugmes();quit;end
 if r then bugmes();quit;end
 comp(test)
 if execstr('r=test()','errcatch')<>0 then bugmes();quit;end
 if r then bugmes();quit;end
 deff('r=test()',[
     'try a=1 catch b=2;end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if execstr('test()','errcatch')<>276 then bugmes();quit;end
 deff('r=test()',[
     'try,  a=xxxx;catch, b=2;end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try,  a=xxxx;catch;end'
     'r=exists(''a'')==1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try,  a=1;end'
     'r=exists(''a'')==0'
     'r=r|a<>1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try,  a=xxxx;end'
     'r=exists(''a'')==1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try;catch, b=2;end'
     'r=exists(''b'')==1'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try;end'
     'r=%f'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try, if %t then  a=xxxx,end;catch, b=2;end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 //nested try catch
 deff('r=test()',[
     'try   '
     '  a=xxxx;'
@@ -519,146 +295,89 @@ deff('r=test()',[
     'end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>3'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try   a=xxxx;catch try b=xxx,catch b=2;end;end'
     'r=exists(''a'')==1|exists(''b'')==0'
     'r=r|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('test()',['try a=2; try a=xxxx; catch a=a+1,end; catch;b=2;end'])
 fun2string(test)
  ans  =
  
-!function []=ans                                                    !
+!function []=ans()                                                  !
 !                                                                   !
 !  try  a = 2;try  a = xxxx;catch  a = a + 1,end,catch  b = 2;end,  !
 !                                                                   !
 !endfunction                                                        !
 deff('r=test()',[
     'try a=2;try a=xxxx+33; catch a=a+1,end;catch;b=2;end'
     'r=exists(''a'')==0|exists(''b'')==1'
     'r=r|a<>3'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=2;try a=xxxx; catch a=a+1,end;b=2;end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>3|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=2;if %t then try a=xxxx; catch a=a+1,end;end;b=2;end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>3|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=2;if %t then try a=xxxx; catch a=a+1,end;b=2;end;end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>3|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=2;try a=xxxx; catch if %t then a=a+1,end,end;b=2;end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>3|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'if %t then try a=2;try a=xxxx; catch a=a+1,end;b=2;end;end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>3|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'try a=2;try a=xxxx; catch for k=1:2,a=a+1,end,end;b=2;end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>4|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'for k=1:3,try a=2;if %t then try a=xxxx; catch a=a+1,end;end;b=2;end,end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>3|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'for k=1:3,try a=2;if %t then try a=xxxx; catch for k=1:2,a=a+1,end,end;end;b=2;end,end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>4|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('r=test()',[
     'b=0;while b==0,try a=2;if %t then try a=xxxx; catch a=a+1,end;end;b=2;end,end'
     'r=exists(''a'')==0|exists(''b'')==0'
     'r=r|a<>3|b<>2'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 deff('b=test1()',[
     '  try '
     '    b=xxx,'
     '  catch '
     '    b=2;'
     '  end;'],'n')
 deff('r=test()',[
     'try'
     '  a=xxxx;'
@@ -668,11 +387,6 @@ deff('r=test()',[
     'end'
     'r=exists(''b'')==0'
     'r=r|b<>3'],'n')
 if test() then bugmes();quit;end
 comp(test);if test() then bugmes();quit;end
 comp(test1);if test() then bugmes();quit;end