import friends.*; public class friends_runme { static { try { System.loadLibrary("friends"); } 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[]) throws Throwable { A a = new A(2); if (friends.get_val1(a) != 2) throw new RuntimeException("failed"); if (friends.get_val2(a) != 4) throw new RuntimeException("failed"); if (friends.get_val3(a) != 6) throw new RuntimeException("failed"); // nice overload working fine if (friends.get_val1(1,2,3) != 1) throw new RuntimeException("failed"); B b = new B(3); // David's case if (friends.mix(a,b) != 5) throw new RuntimeException("failed"); D_d di = new D_d(2); D_d dd = new D_d(3.3); // incredible template overloading working just fine if (friends.get_val1(di) != 2) throw new RuntimeException("failed"); if (friends.get_val1(dd) != 3.3) throw new RuntimeException("failed"); friends.set(di, 4); friends.set(dd, 1.3); if (friends.get_val1(di) != 4) throw new RuntimeException("failed"); if (friends.get_val1(dd) != 1.3) throw new RuntimeException("failed"); } }