update deff test and ref 53/10353/2
Antoine ELIAS [Wed, 30 Jan 2013 09:00:05 +0000 (10:00 +0100)]
Change-Id: If252aa76d7b52c194fb8f330cde782cf7caf9cbe

scilab/modules/functions/tests/unit_tests/deff.dia.ref
scilab/modules/functions/tests/unit_tests/deff.tst

index beaf779..b760f5d 100644 (file)
@@ -4,9 +4,40 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-deff('[x] = myplus(y,z)','x=y+z');
-if isdef('myplus') <> %t then bugmes();quit;end
-if myplus(3,2) <> 5 then bugmes();quit;end
-deff('[x] = mymacro(y,z)',['a=3*y+1'; 'x=a*z+y']);
-if isdef('mymacro') <> %t then bugmes();quit;end
-if mymacro(5,2) <> 37 then bugmes();quit;end
+// <-- CLI SHELL MODE -->
+deff("[x] = myplus(y,z)","x=y+z");
+assert_checktrue(isdef("myplus"));
+assert_checkequal(myplus(3,2), 5);
+clear myplus;
+assert_checkfalse(isdef("myplus"));
+deff("[x] = mymacro(y,z)",["a=3*y+1"; "x=a*z+y"]);
+assert_checktrue(isdef("mymacro"));
+assert_checkequal(mymacro(5,2), 37);
+clear mymacro;
+assert_checkfalse(isdef("mymacro"));
+deff("[a,b,c] = mymacro(varargin)",["a = varargin(1); b = varargin(2) * a; c = varargin(3) * b"]);
+assert_checktrue(isdef("mymacro"));
+[a,b,c] = mymacro(3,4,5);
+assert_checkequal(a, 3);
+assert_checkequal(b, 12);
+assert_checkequal(c, 60);
+clear mymacro;
+assert_checkfalse(isdef("mymacro"));
+deff("[varargout] = mymacro(varargin)",["for i = 1 : size(varargin)"; "    varargout(i) = varargin(i) * 2;";"end"]);
+assert_checktrue(isdef("mymacro"));
+[a,b,c] = mymacro(3,4,5);
+assert_checkequal(a, 6);
+assert_checkequal(b, 8);
+assert_checkequal(c, 10);
+clear mymacro;
+assert_checkfalse(isdef("mymacro"));
+deff("[varargout] = mymacro(varargin)", ["deff(""varargout = mymacro2(varargin)"", [""for i = 1 : size(varargin)""; ""    varargout(i) = varargin(i) * 2;"";""end""]);";"[a,b,c] = mymacro2(varargin(:));";"varargout(1) = a*2;";"varargout(2) = b*2;";"varargout(3) = c*2;"]);
+assert_checktrue(isdef("mymacro"));
+assert_checkfalse(isdef("mymacro2"));
+[a,b,c] = mymacro(3,4,5);
+assert_checkequal(a, 12);
+assert_checkequal(b, 16);
+assert_checkequal(c, 20);
+assert_checkfalse(isdef("mymacro2"));
+clear mymacro;
+assert_checkfalse(isdef("mymacro"));
index 704a539..b724c91 100644 (file)
@@ -7,10 +7,44 @@
 
 // <-- CLI SHELL MODE -->
 
-deff('[x] = myplus(y,z)','x=y+z');
-if isdef('myplus') <> %t then pause,end
-if myplus(3,2) <> 5 then pause,end
+deff("[x] = myplus(y,z)","x=y+z");
+assert_checktrue(isdef("myplus"));
+assert_checkequal(myplus(3,2), 5);
+clear myplus;
+assert_checkfalse(isdef("myplus"));
+
+deff("[x] = mymacro(y,z)",["a=3*y+1"; "x=a*z+y"]);
+assert_checktrue(isdef("mymacro"));
+assert_checkequal(mymacro(5,2), 37);
+clear mymacro;
+assert_checkfalse(isdef("mymacro"));
+
+deff("[a,b,c] = mymacro(varargin)",["a = varargin(1); b = varargin(2) * a; c = varargin(3) * b"]);
+assert_checktrue(isdef("mymacro"));
+[a,b,c] = mymacro(3,4,5);
+assert_checkequal(a, 3);
+assert_checkequal(b, 12);
+assert_checkequal(c, 60);
+clear mymacro;
+assert_checkfalse(isdef("mymacro"));
+
+deff("[varargout] = mymacro(varargin)",["for i = 1 : size(varargin)"; "    varargout(i) = varargin(i) * 2;";"end"]);
+assert_checktrue(isdef("mymacro"));
+[a,b,c] = mymacro(3,4,5);
+assert_checkequal(a, 6);
+assert_checkequal(b, 8);
+assert_checkequal(c, 10);
+clear mymacro;
+assert_checkfalse(isdef("mymacro"));
+
+deff("[varargout] = mymacro(varargin)", ["deff(""varargout = mymacro2(varargin)"", [""for i = 1 : size(varargin)""; ""    varargout(i) = varargin(i) * 2;"";""end""]);";"[a,b,c] = mymacro2(varargin(:));";"varargout(1) = a*2;";"varargout(2) = b*2;";"varargout(3) = c*2;"]);
+assert_checktrue(isdef("mymacro"));
+assert_checkfalse(isdef("mymacro2"));
+[a,b,c] = mymacro(3,4,5);
+assert_checkequal(a, 12);
+assert_checkequal(b, 16);
+assert_checkequal(c, 20);
+assert_checkfalse(isdef("mymacro2"));
+clear mymacro;
+assert_checkfalse(isdef("mymacro"));
 
-deff('[x] = mymacro(y,z)',['a=3*y+1'; 'x=a*z+y']);
-if isdef('mymacro') <> %t then pause,end
-if mymacro(5,2) <> 37 then pause,end