| 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); |
| } |
| } |
| |
| private static void check_equal(int a, int b) { |
| if (a != b) |
| throw new RuntimeException("Not equal " + a + " != " + b); |
| } |
| |
| 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_i di = new D_i(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"); |
| |
| if (friends.chum_blah() != 1234) |
| throw new RuntimeException("failed"); |
| if (friends.mate_blah() != 4321) |
| throw new RuntimeException("failed"); |
| |
| Foe foe = new Foe(111); |
| check_equal(friends.friend_definition(), 10); |
| check_equal(friends.friend_declaration(), 11); |
| check_equal(friends.friend_args_definition(foe), 111); |
| check_equal(friends.friend_args_declaration(foe), 111); |
| |
| check_equal(friends.friend_definition_compiler(), 20); |
| check_equal(friends.friend_declaration_compiler(), 21); |
| check_equal(friends.friend_args_definition_compiler(foe), 111); |
| check_equal(friends.friend_args_declaration_compiler(foe), 111); |
| } |
| } |
| |