Added mxCreateSparseLogicalMatrix in mexlib module and tests. 42/19342/3
Siddhartha Gairola [Mon, 17 Jul 2017 15:26:50 +0000 (20:26 +0530)]
Change-Id: I36e6f480090850b210bc866c8c891d26bcd4ac8c

scilab/modules/mexlib/src/cpp/mexlib.cpp
scilab/modules/mexlib/tests/unit_tests/mxCreateSparseLogicalMatrix.dia.ref [new file with mode: 0644]
scilab/modules/mexlib/tests/unit_tests/mxCreateSparseLogicalMatrix.tst [new file with mode: 0644]

index 4575793..c3a9fd2 100644 (file)
@@ -327,8 +327,10 @@ mxArray *mxCreateLogicalArray(int ndim, const int *dims)
 
 mxArray *mxCreateSparseLogicalMatrix(mwSize m, mwSize n, mwSize nzmax)
 {
-    //TODO
-    return NULL;
+    types::SparseBool* ptr = new types::SparseBool(m, n);
+    mxArray* ret = new mxArray;
+    ret->ptr = (int*)ptr;
+    return ret;
 }
 
 mxArray *mxCreateSparse(int m, int n, int nzmax, mxComplexity cmplx)
diff --git a/scilab/modules/mexlib/tests/unit_tests/mxCreateSparseLogicalMatrix.dia.ref b/scilab/modules/mexlib/tests/unit_tests/mxCreateSparseLogicalMatrix.dia.ref
new file mode 100644 (file)
index 0000000..d0caa13
--- /dev/null
@@ -0,0 +1,26 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017-2017 - Gsoc 2017 - Siddhartha Gairola
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- CLI SHELL MODE -->
+// ============================================================================
+// Unitary tests for mxCreateSparseLogicalMatrix mex function
+// ============================================================================
+cd(TMPDIR);
+ilib_verbose(0);
+mputl(["#include ""mex.h""";
+"void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])";
+"{";
+"    mxArray *pOut1 = mxCreateSparseLogicalMatrix(2, 2, 0);";
+"    mxArray *pOut2 = mxCreateSparseLogicalMatrix(3, 4, 0);";
+"    plhs[0] = pOut1;";
+"    plhs[1] = pOut2;";
+"}"],"mexCreateSparseLogicalMatrix.c");
+ilib_mex_build("libmextest",["createSparseLogical","mexCreateSparseLogicalMatrix","cmex"], "mexCreateSparseLogicalMatrix.c",[]);
+exec("loader.sce");
+[out1, out2] = createSparseLogical();
+assert_checkequal(size(out1), [2, 2]);
+assert_checkequal(size(out2), [3, 4]);
diff --git a/scilab/modules/mexlib/tests/unit_tests/mxCreateSparseLogicalMatrix.tst b/scilab/modules/mexlib/tests/unit_tests/mxCreateSparseLogicalMatrix.tst
new file mode 100644 (file)
index 0000000..82882b1
--- /dev/null
@@ -0,0 +1,29 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017-2017 - Gsoc 2017 - Siddhartha Gairola
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+
+// <-- CLI SHELL MODE -->
+// ============================================================================
+// Unitary tests for mxCreateSparseLogicalMatrix mex function
+// ============================================================================
+
+cd(TMPDIR);
+ilib_verbose(0);
+mputl(["#include ""mex.h""";
+"void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])";
+"{";
+"    mxArray *pOut1 = mxCreateSparseLogicalMatrix(2, 2, 0);";
+"    mxArray *pOut2 = mxCreateSparseLogicalMatrix(3, 4, 0);";
+"    plhs[0] = pOut1;";
+"    plhs[1] = pOut2;";
+"}"],"mexCreateSparseLogicalMatrix.c");
+ilib_mex_build("libmextest",["createSparseLogical","mexCreateSparseLogicalMatrix","cmex"], "mexCreateSparseLogicalMatrix.c",[]);
+exec("loader.sce");
+
+[out1, out2] = createSparseLogical();
+
+assert_checkequal(size(out1), [2, 2]);
+assert_checkequal(size(out2), [3, 4]);