asciimat macros modified and moved to string module. tests created. 50/9750/4
Cedric Delamarre [Wed, 21 Nov 2012 09:47:09 +0000 (10:47 +0100)]
test_run("string","asciimat",["no_check_error_output"]);

Change-Id: I7cb20a76ee54145e68dfb7301a62c8c777f4d774

scilab/modules/string/help/en_US/asciimat.xml [moved from scilab/modules/compatibility_functions/help/en_US/asciimat.xml with 100% similarity]
scilab/modules/string/help/fr_FR/asciimat.xml [moved from scilab/modules/compatibility_functions/help/fr_FR/asciimat.xml with 100% similarity]
scilab/modules/string/macros/asciimat.sci [moved from scilab/modules/compatibility_functions/macros/asciimat.sci with 82% similarity]
scilab/modules/string/tests/unit_tests/asciimat.dia.ref [new file with mode: 0644]
scilab/modules/string/tests/unit_tests/asciimat.tst [new file with mode: 0644]

@@ -1,15 +1,15 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ???? - INRIA - Scilab 
-// 
+// Copyright (C) ???? - INRIA - Scilab
+//
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 // you should have received as part of this distribution.  The terms
-// are also available at    
+// are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 function y=asciimat(x)
 // This function converts a matrix of string into a matrix of ascii codes using ascii() Scilab function
-// and converts an array of ascii codes into a array of string 
+// and converts an array of ascii codes into a array of string
 // Returned value have same size as input value instead of second dims !
 // Fonction created because ascii() Scilab function returns a row vector
 if size(size(x),"*")<=2 then
@@ -17,19 +17,19 @@ if size(size(x),"*")<=2 then
     if x==[] then
       y=[]
       return
-    else 
+    else
       ytemp=[];
       for i=1:size(x,1)
         ytemp=[ytemp ascii(x(i,:))]
       end
-      nbcol= size(ytemp,'*')*size(x,2)/size(x,'*') 
+      nbcol= size(ytemp,'*')*size(x,2)/size(x,'*')
       if nbcol-floor(nbcol)<>0 then
         error(msprintf(gettext("%s: Wrong input argument #%d: Inconsistent size.\n"),"asciimat", 1));
       end
       y=[]
       for i=1:size(x,1)
        y=[y ;ytemp(1+(i-1)*nbcol:i*nbcol)]
-      end   
+      end
     end
   elseif type(x)==1 | type(x)==8 then
     y=[]
@@ -53,10 +53,8 @@ elseif size(size(x),"*")>2 then
       for l=1:DD
        V((l-1)*size(x,1)+1:l*size(x,1))=asciimat(x(:,:,l))
       end
-      y=mlist(['hm','dims','entries'],int32([dims]),V)
+      y=hypermat(dims,V)
     end
   end
-else
-  error(msprintf(gettext("%s: This feature has not been implemented.\n"),"asciimat"));
 end
 endfunction
diff --git a/scilab/modules/string/tests/unit_tests/asciimat.dia.ref b/scilab/modules/string/tests/unit_tests/asciimat.dia.ref
new file mode 100644 (file)
index 0000000..4458acb
--- /dev/null
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// ascii to string
+ref  = [97 98 99 ;100 101 102];
+code = asciimat(["a" "b" "c";"d" "e" "f"]);
+assert_checkequal(ref, code);
+ref  = [97 122 98 99 ;100 101 121 102];
+code = asciimat(["az" "b" "c";"d" "ey" "f"]);
+assert_checkequal(ref, code);
+// not managed in scilab 5
+scilabversion = getversion("scilab");
+if scilabversion(1) >= 6
+    ref  = matrix(97:120,2,3,4);
+    a    = matrix(strsplit(ascii(97:120),1:23),2,3,4);
+    code = asciimat(a);
+    assert_checkequal(ref, code);
+end
+// string to ascii
+ref = ["azerty";"ytreza"];
+str = asciimat([97 122 101 114 116 121; 121 116 114 101 122 97]);
+assert_checkequal(ref, str);
+ref = ["bdf" "hjl" "npr" "tvx";"ceg" "ikm" "oqs" "uwy"];
+a   = matrix(97+(1:2*3*4),2,3,4);
+str = asciimat(a);
+assert_checkequal(ref, str);
diff --git a/scilab/modules/string/tests/unit_tests/asciimat.tst b/scilab/modules/string/tests/unit_tests/asciimat.tst
new file mode 100644 (file)
index 0000000..5be1ec7
--- /dev/null
@@ -0,0 +1,39 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// ascii to string
+ref  = [97 98 99 ;100 101 102];
+code = asciimat(["a" "b" "c";"d" "e" "f"]);
+assert_checkequal(ref, code);
+
+ref  = [97 122 98 99 ;100 101 121 102];
+code = asciimat(["az" "b" "c";"d" "ey" "f"]);
+assert_checkequal(ref, code);
+
+// not managed in scilab 5
+scilabversion = getversion("scilab");
+if scilabversion(1) >= 6
+    ref  = matrix(97:120,2,3,4);
+    a    = matrix(strsplit(ascii(97:120),1:23),2,3,4);
+    code = asciimat(a);
+    assert_checkequal(ref, code);
+end
+
+
+// string to ascii
+ref = ["azerty";"ytreza"];
+str = asciimat([97 122 101 114 116 121; 121 116 114 101 122 97]);
+assert_checkequal(ref, str);
+
+ref = ["bdf" "hjl" "npr" "tvx";"ceg" "ikm" "oqs" "uwy"];
+a   = matrix(97+(1:2*3*4),2,3,4);
+str = asciimat(a);
+assert_checkequal(ref, str);
+
+