// test matrix.i library exec("swigtest.start", -1); // test matrix passed as output argument from function function test_outMatrix(func, valueType, expectedOutMatrix) funcName = msprintf("out%s%s", valueType, func); cmd = msprintf("outMatrix = %s();", funcName); ierr = execstr(cmd, "errcatch"); if ierr <> 0 then swigtesterror(msprintf("Error %d in %s", ierr, funcName)); end checkequal(outMatrix, expectedOutMatrix, funcName); endfunction // test matrix passed as input argument of function function test_inMatrix(func, valueType, inMatrix, expectedInValue) funcName = msprintf("in%s%s", valueType, func); cmd = msprintf("inValue = %s(inMatrix);", funcName); ierr = execstr(cmd, "errcatch"); if ierr <> 0 then swigtesterror(msprintf("Error %d in %s", ierr, funcName)); end checkequal(inValue, expectedInValue, funcName); endfunction // test matrixes passed as input and output arguments of function function test_inoutMatrix(func, valueType, inoutMatrix, expectedInoutMatrix) funcName = msprintf("inout%s%s", valueType, func); cmd = msprintf("inoutMatrix = %s(inoutMatrix);", funcName); ierr = execstr(cmd, "errcatch"); if ierr <> 0 then swigtesterror(msprintf("Error %d in %s", ierr, funcName)); end checkequal(inoutMatrix, expectedInoutMatrix, funcName); endfunction function test_matrix_typemaps(valueType, .. expectedOutMatrixDims, expectedOutMatrixSize, .. expectedInValue, .. expectedInoutMatrixDims, expectedInoutMatrixSize) test_outMatrix("MatrixDims", valueType, expectedOutMatrixDims); test_outMatrix("MatrixSize", valueType, expectedOutMatrixSize); matrixDims = expectedOutMatrixDims; matrixSize = expectedOutMatrixSize; test_inMatrix("MatrixDims", valueType, matrixDims, expectedInValue); test_inMatrix("MatrixSize", valueType, matrixSize, expectedInValue); test_inoutMatrix("MatrixDims", valueType, matrixDims, expectedInoutMatrixDims); test_inoutMatrix("MatrixSize", valueType, matrixSize, expectedInoutMatrixSize); endfunction m = [0 3; 1 4; 2 5]; v = [0 1 2 3 4 5]; test_matrix_typemaps("Int", m, v, sum(m), m .* m, v .* v); test_matrix_typemaps("Double", m, v, sum(m), m .* m, v .* v); m = ["A" "D"; "B" "E"; "C" "F"]; v = ["A" "B" "C" "D" "E" "F"]; test_matrix_typemaps("CharPtr", m, v, strcat(m), m + m, v + v); m = [%T %F; %F %T; %T %F]; v = [%T %F %T %F %T %F]; test_matrix_typemaps("Bool", m, v, %T, ~m, ~v); exec("swigtest.quit", -1);
Generated by dwww version 1.15 on Tue Jul 2 00:37:21 CEST 2024.