scilab: simplify and fix li_std_sequence_container_typemaps test
This commit is contained in:
parent
7da356c8cc
commit
36d11147de
1 changed files with 25 additions and 32 deletions
|
|
@ -2,13 +2,17 @@
|
||||||
|
|
||||||
exec("swigtest.start", -1);
|
exec("swigtest.start", -1);
|
||||||
|
|
||||||
|
function checkerror(ierr, cmd)
|
||||||
|
if ierr <> 0 then swigtesterror("error " + string(ierr) + " in """ + cmd + """"); end
|
||||||
|
endfunction
|
||||||
|
|
||||||
// test sequence container of pointers returned from fonction (expected a list)
|
// test sequence container of pointers returned from fonction (expected a list)
|
||||||
function [classAPtr_list, classAPtr1, classAPtr2] = testCreateSequenceContainerPtr(container, value1, value2)
|
function [classAPtr_list, classAPtr1, classAPtr2] = testCreateSequenceContainerPtr(container, value1, value2)
|
||||||
classAPtr1 = new_ClassA(value1);
|
classAPtr1 = new_ClassA(value1);
|
||||||
classAPtr2 = new_ClassA(value2);
|
classAPtr2 = new_ClassA(value2);
|
||||||
cmd = msprintf("classAPtr_list = ret_ClassAPtr_%s(classAPtr1, classAPtr2);", container);
|
cmd = msprintf("classAPtr_list = ret_ClassAPtr_%s(classAPtr1, classAPtr2);", container);
|
||||||
ierr = execstr(cmd, "errcatch");
|
ierr = execstr(cmd, "errcatch");
|
||||||
if ierr <> 0 then swigtesterror(); end
|
if ierr <> 0 then swigtesterror("error in " + cmd); end
|
||||||
if ~exists('classAPtr_list') | (size(classAPtr_list) <> 2) then swigtesterror(); end
|
if ~exists('classAPtr_list') | (size(classAPtr_list) <> 2) then swigtesterror(); end
|
||||||
if (ClassA_a_get(classAPtr_list(1)) <> value1) | (ClassA_a_get(classAPtr_list(2)) <> value2) then swigtesterror(); end
|
if (ClassA_a_get(classAPtr_list(1)) <> value1) | (ClassA_a_get(classAPtr_list(2)) <> value2) then swigtesterror(); end
|
||||||
endfunction
|
endfunction
|
||||||
|
|
@ -19,22 +23,22 @@ endfunction
|
||||||
// -expected_accumulate_value: expected value of an accumulation function
|
// -expected_accumulate_value: expected value of an accumulation function
|
||||||
// computed on the container
|
// computed on the container
|
||||||
function testSequenceContainerPtr(container, value1, value2, expected_accumulate_value)
|
function testSequenceContainerPtr(container, value1, value2, expected_accumulate_value)
|
||||||
// test sequence container of pointers returned from fonction (expected a list)
|
// test sequence container of pointers returned from flonction (expected a list)
|
||||||
[classAPtr_list, classAPtr1, classAPtr2] = testCreateSequenceContainerPtr(container, value1, value2);
|
[classAPtr_list, classAPtr1, classAPtr2] = testCreateSequenceContainerPtr(container, value1, value2);
|
||||||
|
|
||||||
// test sequence container passed as value of function
|
// test sequence container passed as value of function
|
||||||
cmd = msprintf("classAPtr = val_ClassAPtr_%s(classAPtr_list);", container);
|
cmd = msprintf("classAPtr = val_ClassAPtr_%s(classAPtr_list);", container);
|
||||||
ierr = execstr(cmd, "errcatch");
|
ierr = execstr(cmd, "errcatch");
|
||||||
if ierr <> 0 then swigtesterror(); end
|
checkerror(ierr, cmd);
|
||||||
if ClassA_a_get(classAPtr1) <> expected_accumulate_value then swigtesterror(); end
|
if ClassA_a_get(classAPtr) <> expected_accumulate_value then swigtesterror(); end
|
||||||
|
|
||||||
// recreate a container
|
// recreate a container
|
||||||
[classAPtr_list, classAPtr1, classAPtr2] = testCreateSequenceContainerPtr(container, value1, value2);
|
[classAPtr_list, classAPtr1, classAPtr2] = testCreateSequenceContainerPtr(container, value1, value2);
|
||||||
|
|
||||||
// test sequence container passed as refererence of function
|
// test sequence container passed as reference of function
|
||||||
cmd = msprintf("classAPtr = ref_ClassAPtr_%s(classAPtr_list);", container);
|
cmd = msprintf("classAPtr = ref_ClassAPtr_%s(classAPtr_list);", container);
|
||||||
ierr = execstr(cmd, "errcatch");
|
ierr = execstr(cmd, "errcatch");
|
||||||
if ierr <> 0 then swigtesterror(); end
|
checkerror(ierr, cmd);
|
||||||
if ClassA_a_get(classAPtr) <> expected_accumulate_value then swigtesterror(); end
|
if ClassA_a_get(classAPtr) <> expected_accumulate_value then swigtesterror(); end
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
@ -54,50 +58,39 @@ function testSequenceContainer(container, value_type, value1, value2, expected_a
|
||||||
cmd = msprintf("c = ret_%s_%s(%d, %d);", value_type, container, value1, value2);
|
cmd = msprintf("c = ret_%s_%s(%d, %d);", value_type, container, value1, value2);
|
||||||
end
|
end
|
||||||
ierr = execstr(cmd, "errcatch");
|
ierr = execstr(cmd, "errcatch");
|
||||||
|
checkerror(ierr, cmd);
|
||||||
if ierr <> 0 then swigtesterror(); end
|
|
||||||
if ~isdef('c') | c <> [value1, value2] then swigtesterror(); end
|
if ~isdef('c') | c <> [value1, value2] then swigtesterror(); end
|
||||||
|
|
||||||
|
if (value_type == "int") then
|
||||||
|
c = int32(c);
|
||||||
|
end
|
||||||
|
|
||||||
// test sequence container passed as value of function
|
// test sequence container passed as value of function
|
||||||
cmd = msprintf("s = val_%s_%s(c);", value_type, container);
|
cmd = msprintf("s = val_%s_%s(c);", value_type, container);
|
||||||
ierr = execstr(cmd, "errcatch");
|
ierr = execstr(cmd, "errcatch");
|
||||||
if ierr <> 0 then swigtesterror(); end
|
checkerror(ierr, cmd);
|
||||||
if s <> expected_accumulate_value then swigtesterror(); end
|
if s <> expected_accumulate_value then swigtesterror(); end
|
||||||
|
|
||||||
// test sequence container passed as matrix as value of function
|
|
||||||
//cmd = msprintf("s = val_%s_%s([value1, value2]);", value_type, container);
|
|
||||||
//ierr = execstr(cmd, "errcatch");
|
|
||||||
//if ierr <> 0 then swigtesterror(); end
|
|
||||||
//if s <> expected_accumulate_value then swigtesterror(); end
|
|
||||||
|
|
||||||
// test sequence container passed as reference of function
|
// test sequence container passed as reference of function
|
||||||
cmd = msprintf("s = ref_%s_%s(c);", value_type, container);
|
cmd = msprintf("s = ref_%s_%s(c);", value_type, container);
|
||||||
ierr = execstr(cmd, "errcatch");
|
ierr = execstr(cmd, "errcatch");
|
||||||
if ierr <> 0 then swigtesterror(); end
|
checkerror(ierr, cmd);
|
||||||
if s <> expected_accumulate_value then swigtesterror(); end
|
if s <> expected_accumulate_value then swigtesterror(); end
|
||||||
|
|
||||||
// test sequence container passed as matrix as reference of function
|
|
||||||
//cmd = msprintf("s = val_%s_%s([value1, value2]);", value_type, container);
|
|
||||||
//ierr = execstr(cmd, "errcatch");
|
|
||||||
//if ierr <> 0 then swigtesterror(); end
|
|
||||||
//if s <> expected_accumulate_value then swigtesterror(); end
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
// test vector
|
// test vector
|
||||||
testSequenceContainer("vector", "int", 1, 2, 4);
|
testSequenceContainer("vector", "int", 1, 2, 3);
|
||||||
testSequenceContainer("vector", "double", 2., 3., 7.);
|
testSequenceContainer("vector", "double", 2., 3., 5.);
|
||||||
testSequenceContainer("vector", "string", "a", "b", "aab");
|
testSequenceContainer("vector", "string", "a", "b", "ab");
|
||||||
testSequenceContainer("vector", "bool", %T, %F, %T);
|
testSequenceContainer("vector", "bool", %T, %F, %T);
|
||||||
testSequenceContainer("vector", "Color", RED_get(), BLUE_get(), MAGENTA_get());
|
testSequenceContainerPtr("vector", 1, 3, 4);
|
||||||
testSequenceContainerPtr("vector", 1, 3, 5);
|
|
||||||
|
|
||||||
// test list
|
// test list
|
||||||
testSequenceContainer("list", "int", 1, 2, 4);
|
testSequenceContainer("list", "int", 1, 2, 3);
|
||||||
testSequenceContainer("list", "double", 2., 3., 7.);
|
testSequenceContainer("list", "double", 2., 3., 5.);
|
||||||
testSequenceContainer("list", "string", "a", "b", "aab");
|
testSequenceContainer("list", "string", "a", "b", "ab");
|
||||||
testSequenceContainer("list", "bool", %T, %F, %T);
|
testSequenceContainer("list", "bool", %T, %F, %T);
|
||||||
testSequenceContainer("list", "Color", RED_get(), BLUE_get(), MAGENTA_get());
|
testSequenceContainerPtr("list", 1, 3, 4);
|
||||||
testSequenceContainerPtr("list", 1, 3, 5);
|
|
||||||
|
|
||||||
exec("swigtest.quit", -1);
|
exec("swigtest.quit", -1);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue