1use strict; 2use warnings; 3use Test::More tests => 44; 4BEGIN { use_ok('scilab_multivalue') } 5require_ok('scilab_multivalue'); 6 7my($a, $b, $c, $d, $ret); 8 9# OUTPUT 10 11($a, $b) = scilab_multivalue::output2(); 12is($a, 1, "[a, b] = output2(): a"); 13is($b, 2, "[a, b] = output2(): b"); 14 15($ret, $a, $b) = scilab_multivalue::output2Ret(); 16is($ret, 3, "[a, b] = output2Ret(): b"); 17is($a, 1, "[a, b] = output2Ret(): a"); 18is($b, 2, "[a, b] = output2Ret(): b"); 19 20($c, $d) = scilab_multivalue::output2Input2(1, 2); 21is($c, 2, "[c, d] = output2Input2(1, 2): c"); 22is($d, 4, "[c, d] = output2Input2(1, 2): d"); 23 24($ret, $c, $d) = scilab_multivalue::output2Input2Ret(1, 2); 25is($ret, 6, "[ret, c, d] = output2Input2Ret(1, 2): ret"); 26is($c, 2, "[ret, c, d] = output2Input2Ret(1, 2): c"); 27is($d, 4, "[ret, c, d = output2Input2Ret(1, 2): d"); 28 29($ret, $a, $b, $c) = scilab_multivalue::output3Input1Ret(10); 30is($ret, 10, "[ret, a, b, c] = output3Input1Ret(10): ret"); 31is($a, 11, "[ret, a, b, c] = output3Input1Ret(10): a"); 32is($b, 12, "[ret, a, b, c] = output3Input1Ret(10): b"); 33is($c, 13, "[ret, a, b, c] = output3Input1Ret(10): c"); 34 35($ret, $a, $b, $c) = scilab_multivalue::output3Input3Ret(10, 20, 30); 36is($ret, 66, "[ret, a, b, c] = output3Input1Ret(10, 20, 30): ret"); 37is($a, 11, "[ret, a, b, c] = output3Input1Ret(10, 20, 30): a"); 38is($b, 22, "[ret, a, b, c] = output3Input1Ret(10, 20, 30): b"); 39is($c, 33, "[ret, a, b, c] = output3Input1Ret(10, 20, 30): c"); 40 41 42# INOUT 43 44($a, $b) = scilab_multivalue::inout2(1, 2); 45is($a, 2, "[a, b] = output2(1, 2): a"); 46is($b, 4, "[a, b] = output2(1, 2): b"); 47 48($ret, $a, $b) = scilab_multivalue::inout2Ret(1, 2); 49is($ret, 6, "[a, b] = inout2Ret(1, 2): b"); 50is($a, 2, "[a, b] = inout2Ret(1, 2): a"); 51is($b, 4, "[a, b] = inout2Ret(1, 2): b"); 52 53($c, $d) = scilab_multivalue::inout2Input2(1, 2, 1, 1); 54is($c, 2, "[c, d] = inout2Input2(1, 2): c"); 55is($d, 3, "[c, d] = inout2Input2(1, 2): d"); 56 57($ret, $c, $d) = scilab_multivalue::inout2Input2Ret(1, 2, 1, 1); 58is($ret, 5, "[c, d] = inout2Input2Ret(1, 2): ret"); 59is($c, 2, "[c, d] = inout2Input2Ret(1, 2): c"); 60is($d, 3, "[c, d] = inout2Input2Ret(1, 4): d"); 61 62($ret, $a, $b, $c) = scilab_multivalue::inout3Input1Ret(10, 1, 2, 3); 63is($ret, 10, "[ret, a, b, c] = output3Input1Ret(ret, 1, 2, 3): ret"); 64is($a, 11, "[ret, a, b, c] = output3Input1Ret(ret, 1, 2, 3): a"); 65is($b, 12, "[ret, a, b, c] = output3Input1Ret(ret, 1, 2, 3): b"); 66is($c, 13, "[ret, a, b, c] = output3Input1Ret(ret, 1, 2, 3): c"); 67 68($ret, $a, $b, $c) = scilab_multivalue::inout3Input3Ret(10, 1, 20, 2, 30, 3); 69is($ret, 66, "[ret, a, b, c] = output3Input1Ret(10, 20, 30): ret"); 70is($a, 11, "[ret, a, b, c] = inout3Input1Ret(10, 1, 20, 2, 30, 3): a"); 71is($b, 22, "[ret, a, b, c] = inout3Input1Ret(10, 1, 20, 2, 30, 3): b"); 72is($c, 33, "[ret, a, b, c] = inout3Input1Ret(10, 1, 20, 2, 30, 3): c"); 73 74 75# CLASS 76 77$a = scilab_multivalue::ClassA->new(); 78 79($ret, $c, $d) = $a->output2Input2Ret(1, 2); 80is($ret, 6, "[ret, c, d] = ClassA_output2Input2Ret(a, 1, 2): ret"); 81is($c, 2, "[c, d] = ClassA_output2Input2Ret(a, 1, 2): c"); 82is($d, 4, "[c, d] = ClassA_output2Input2Ret(a, 1, 2): d"); 83 84($ret, $c, $d) = $a->inout2Input2Ret(1, 2, 1, 1); 85is($ret, 5, "[ret, c, d] = ClassA_inout2Input2Ret(a, 1, 2): ret"); 86is($c, 2, "[c, d] = ClassA_inout2Input2(a, 1, 2): c"); 87is($d, 3, "[c, d] = ClassA_inout2Input2(a, 1, 2): d"); 88 89