|
Prev
| Next
|
|
|
|
|
check_swig_xam.pl |
|
@(@\newcommand{\B}[1]{ {\bf #1} }
\newcommand{\R}[1]{ {\rm #1} }@)@Swig Example / Test: Perl Script
Add Current Directory To Search Path
use lib "$ENV{PWD}";
Load the Module
use pl_swig_xam;
Initialize Error Count
$error_count = 0;
factorial_by_value
if( pl_swig_xam::factorial_by_value(4) == 24 )
{ print "pl_swig_xam::factorial_by_value: OK\n"; }
else
{ print "pl_swig_xam::factorial_by_value: Error\n";
$error_count = $error_count + 1;
}
see C++ factorial_by_value
.
message_of_void
if( pl_swig_xam::message_of_void() == "OK" )
{ print "pl_swig_xam::message_of_void: OK\n"; }
else
{ print "pl_swig_xam::message_of_void: Error\n";
$error_count = $error_count + 1;
}
see C++ message_of_void
.
int_class
$obj = new pl_swig_xam::int_class();
pl_swig_xam::add_by_ptr(3, 4, $obj);
if( $obj->value() == 7 )
{ print "pl_swig_xam::add_by_ptr: OK\n"; }
else
{ print "pl_swig_xam::add_by_ptr: Error\n";
$error_count = $error_count + 1;
}
see Swig int_class
and
C++ add_by_ptr
.
int_array_ptr
$n = 10;
$array_ptr = pl_swig_xam::new_int_array_ptr($n);
for($i = 0; $i < $n; $i++)
{ pl_swig_xam::int_array_ptr_setitem($array_ptr, $i, 2 * $i); }
if( pl_swig_xam::max_array_by_ptr($n, $array_ptr) == 18 )
{ print "pl_swig_xam::max_array_by_ptr: pointer: OK\n"; }
else
{ print "pl_swig_xam::max_array_by_ptr: pointer: Error\n";
$error_count = $error_count + 1;
}
pl_swig_xam::delete_int_array_ptr($array_ptr);
see Swig int_array_ptr
and
C++ max_array_by_ptr
.
int_array_class
$n = 10;
$array_obj = new pl_swig_xam::int_array_class($n);
for($i = 0; $i < $n; $i++)
{ pl_swig_xam::int_array_ptr_setitem($array_obj, $i, 2 * $i); }
if( pl_swig_xam::max_array_by_ptr($n, $array_obj) == 18 )
{ print "pl_swig_xam::max_array_by_ptr: class: OK\n"; }
else
{ print "pl_swig_xam::max_array_by_ptr: class: Error\n";
$error_count = $error_count + 1;
}
see Swig int_array_class
and
C++ max_array_by_ptr
.
vector_double
$n = 10;
$vec = new pl_swig_xam::vector_double($n);
for($i = 0; $i < $n; $i++)
{ $vec->set($i, 2.0 * $i); }
if( pl_swig_xam::max_std_vector_double($vec) == 18.0 )
{ print "pl_swig_xam::max_std_vector_double: class: OK\n"; }
else
{ print "pl_swig_xam::max_std_vector_double: class: Error\n";
$error_count = $error_count + 1;
}
see Swig vector_double
and
C++ max_std_vector_double
.
raise_exception
$message = "";
eval { # acts like 'try {' in other languages
pl_swig_xam::raise_exception("test message\n");
}
; if( $@ ) { # acts like 'catch {' in other languages
$message = pl_swig_xam::raise_exception("");
}
if( $message == "test message" )
{ print "pl_swig_xam::raise_exception: OK\n"; }
else
{ print "pl_swig_xam::raise_exception: Error\n";
$error_count = $error_count + 1;
}
see C++ raise_exception
.
normal_class
$two = new pl_swig_xam::normal_class(2);
$three = new pl_swig_xam::normal_class(3);
$five = $two + $three;
$check = new pl_swig_xam::normal_class(5);
$ok = $five == $check;
$ok = $ok and 4 < $five->value() and $five->value() < 6;
if( ok )
{ print "pl_swig_xam::normal_class: OK\n"; }
else
{ print "pl_swig_xam::normal_class: Error\n";
$error_count = $error_count + 1;
}
see C++ swig_xam_normal_class
.
double_class
$two = new pl_swig_xam::double_class(2.0);
$three = new pl_swig_xam::double_class(3.0);
$five = $two + $three;
$check = new pl_swig_xam::double_class(5.0);
$ok = $five == $check;
$ok = $ok and 4.5 < $five->value() and $five->value() < 5.5;
if( ok )
{ print "pl_swig_xam::double_class: OK\n"; }
else
{ print "pl_swig_xam::double_class: Error\n";
$error_count = $error_count + 1;
}
see Swig double_class
.
Set Exit Code
if( $error_count == 0 )
{ exit 0; }
exit 1;
Input File: swig_xam/perl/check_swig_xam.pl