summaryrefslogtreecommitdiff
path: root/Examples/test-suite/java/java_lib_arrays_runme.java
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/test-suite/java/java_lib_arrays_runme.java
downloadswig-tarball-9f8a09ed743cedd9547bf0661d518647966ab114.tar.gz
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/test-suite/java/java_lib_arrays_runme.java')
-rw-r--r--Examples/test-suite/java/java_lib_arrays_runme.java165
1 files changed, 165 insertions, 0 deletions
diff --git a/Examples/test-suite/java/java_lib_arrays_runme.java b/Examples/test-suite/java/java_lib_arrays_runme.java
new file mode 100644
index 0000000..9ee3621
--- /dev/null
+++ b/Examples/test-suite/java/java_lib_arrays_runme.java
@@ -0,0 +1,165 @@
+
+// This is the java_lib_arrays runtime testcase. It ensures that a getter and a setter has
+// been produced for array members and that they function as expected. It is a
+// pretty comprehensive test for all the Java array library typemaps.
+
+import java_lib_arrays.*;
+
+public class java_lib_arrays_runme {
+
+ static {
+ try {
+ System.loadLibrary("java_lib_arrays");
+ } catch (UnsatisfiedLinkError e) {
+ System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
+ System.exit(1);
+ }
+ }
+
+ public static void main(String argv[]) {
+
+ // Check array member variables
+ ArrayStruct as = new ArrayStruct();
+
+ // Create arrays for all the array types that ArrayStruct can handle
+ String array_c = "X";
+ byte[] array_sc = {10, 20};
+ short[] array_uc = {101, 201};
+ short[] array_s = {1002, 2002};
+ int[] array_us = {1003, 2003};
+ int[] array_i = {1004, 2004};
+ long[] array_ui = {1005, 2005};
+ int[] array_l = {1006, 2006};
+ long[] array_ul = {1007, 2007};
+ long[] array_ll = {1008, 2008};
+ float[] array_f = {1009.1f, 2009.1f};
+ double[] array_d = {1010.2f, 2010.2f};
+ int[] array_finger = {finger.Three, finger.Four};
+ int[] array_toe = {toe.Big, toe.Little};
+
+ SimpleStruct[] array_struct={new SimpleStruct(), new SimpleStruct()};
+ array_struct[0].setDouble_field(222.333);
+ array_struct[1].setDouble_field(444.555);
+
+ AnotherStruct[] array_another_struct={new AnotherStruct(), new AnotherStruct()};
+ array_another_struct[0].setSimple(array_struct[0]);
+ array_another_struct[1].setSimple(array_struct[1]);
+
+ YetAnotherStruct[] array_yet_another_struct={new YetAnotherStruct(), new YetAnotherStruct()};
+ array_yet_another_struct[0].setSimple(array_struct[0]);
+ array_yet_another_struct[1].setSimple(array_struct[1]);
+
+ if (array_another_struct[0].getSimple().getDouble_field() != 222.333) throw new RuntimeException("AnotherStruct[0] failed");
+ if (array_another_struct[1].getSimple().getDouble_field() != 444.555) throw new RuntimeException("AnotherStruct[1] failed");
+
+ if (java_lib_arrays.extract_ptr(array_yet_another_struct, 0) != 222.333) throw new RuntimeException("extract_ptr 0 failed");
+ if (java_lib_arrays.extract_ptr(array_yet_another_struct, 1) != 444.555) throw new RuntimeException("extract_ptr 1 failed");
+
+ java_lib_arrays.modifyYAS(array_yet_another_struct, array_yet_another_struct.length);
+ for (int i=0; i<2; ++i) {
+ if (array_yet_another_struct[i].getSimple().getDouble_field() != array_struct[i].getDouble_field() * 10.0)
+ throw new RuntimeException("modifyYAS failed ");
+ }
+
+ java_lib_arrays.toestest(array_toe, array_toe, array_toe);
+
+ // Now set the array members and check that they have been set correctly
+ as.setArray_c(array_c);
+ check_string(array_c, as.getArray_c());
+
+ as.setArray_sc(array_sc);
+ check_byte_array(array_sc, as.getArray_sc());
+
+ as.setArray_uc(array_uc);
+ check_short_array(array_uc, as.getArray_uc());
+
+ as.setArray_s(array_s);
+ check_short_array(array_s, as.getArray_s());
+
+ as.setArray_us(array_us);
+ check_int_array(array_us, as.getArray_us());
+
+ as.setArray_i(array_i);
+ check_int_array(array_i, as.getArray_i());
+
+ as.setArray_ui(array_ui);
+ check_long_array(array_ui, as.getArray_ui());
+
+ as.setArray_l(array_l);
+ check_int_array(array_l, as.getArray_l());
+
+ as.setArray_ul(array_ul);
+ check_long_array(array_ul, as.getArray_ul());
+
+ as.setArray_ll(array_ll);
+ check_long_array(array_ll, as.getArray_ll());
+
+ as.setArray_f(array_f);
+ check_float_array(array_f, as.getArray_f());
+
+ as.setArray_d(array_d);
+ check_double_array(array_d, as.getArray_d());
+
+ as.setArray_enum(array_finger);
+ check_int_array(array_finger, as.getArray_enum());
+
+ as.setArray_struct(array_struct);
+ check_struct_array(array_struct, as.getArray_struct());
+ }
+
+ // Functions to check that the array values were set correctly
+ public static void check_string(String original, String checking) {
+ if (!checking.equals(original)) {
+ throw new RuntimeException("Runtime test failed. checking = [" + checking + "]");
+ }
+ }
+ public static void check_byte_array(byte[] original, byte[] checking) {
+ for (int i=0; i<original.length; i++) {
+ if (checking[i] != original[i]) {
+ throw new RuntimeException("Runtime test failed. checking[" + i + "]=" + checking[i]);
+ }
+ }
+ }
+ public static void check_short_array(short[] original, short[] checking) {
+ for (int i=0; i<original.length; i++) {
+ if (checking[i] != original[i]) {
+ throw new RuntimeException("Runtime test failed. checking[" + i + "]=" + checking[i]);
+ }
+ }
+ }
+ public static void check_int_array(int[] original, int[] checking) {
+ for (int i=0; i<original.length; i++) {
+ if (checking[i] != original[i]) {
+ throw new RuntimeException("Runtime test failed. checking[" + i + "]=" + checking[i]);
+ }
+ }
+ }
+ public static void check_long_array(long[] original, long[] checking) {
+ for (int i=0; i<original.length; i++) {
+ if (checking[i] != original[i]) {
+ throw new RuntimeException("Runtime test failed. checking[" + i + "]=" + checking[i]);
+ }
+ }
+ }
+ public static void check_float_array(float[] original, float[] checking) {
+ for (int i=0; i<original.length; i++) {
+ if (checking[i] != original[i]) {
+ throw new RuntimeException("Runtime test failed. checking[" + i + "]=" + checking[i]);
+ }
+ }
+ }
+ public static void check_double_array(double[] original, double[] checking) {
+ for (int i=0; i<original.length; i++) {
+ if (checking[i] != original[i]) {
+ throw new RuntimeException("Runtime test failed. checking[" + i + "]=" + checking[i]);
+ }
+ }
+ }
+ public static void check_struct_array(SimpleStruct[] original, SimpleStruct[] checking) {
+ for (int i=0; i<original.length; i++) {
+ if (checking[i].getDouble_field() != original[i].getDouble_field()) {
+ throw new RuntimeException("Runtime test failed. checking[" + i + "].double_field=" + checking[i].getDouble_field());
+ }
+ }
+ }
+}