1open Swig
2open Default_args
3
4let _ =
5  assert (_anonymous '() as int = 7771);
6  assert (_anonymous '(1234) as int = 1234);
7  assert (_booltest '() as bool = true);
8  assert (_booltest '(true) as bool = true);
9  assert (_booltest '(false) as bool = false);
10  let ec = new_EnumClass '() in
11  assert (ec -> blah () as bool = true);
12  let de = new_DerivedEnumClass '() in
13  assert (de -> accelerate () = C_void);
14  let args = _SLOW '() in
15  assert (de -> accelerate (args) = C_void);
16  assert (_Statics_staticmethod '() as int = 60);
17  assert (_cfunc1 '(1) as float = 2.);
18  assert (_cfunc2 '(1) as float = 3.);
19  assert (_cfunc3 '(1) as float = 4.);
20
21  let f = new_Foo '() in
22  assert (f -> newname () = C_void);
23  assert (f -> newname (1) = C_void);
24  (* TODO: There needs to be a more elegant way to pass NULL/nullptr. *)
25  let args = C_list [ C_int 2 ; C_ptr (0L, 0L) ] in
26  assert (f -> double_if_void_ptr_is_null (args) as int = 4);
27  assert (f -> double_if_void_ptr_is_null (3) as int = 6);
28  let args = C_list [ C_int 4 ; C_ptr (0L, 0L) ] in
29  assert (f -> double_if_handle_is_null (args) as int = 8);
30  assert (f -> double_if_handle_is_null (5) as int = 10);
31  let args = C_list [ C_int 6 ; C_ptr (0L, 0L) ] in
32  assert (f -> double_if_dbl_ptr_is_null (args) as int = 12);
33  assert (f -> double_if_dbl_ptr_is_null (7) as int = 14);
34
35  let k = new_Klass '(22) in
36  let k2 = _Klass_inc (C_list [ C_int 100 ; k ]) in
37  assert (k2 -> "[val]" () as int = 122);
38  let k2 = _Klass_inc '(100) in
39  assert (k2 -> "[val]" () as int = 99);
40  let k2 = _Klass_inc '() in
41  assert (k2 -> "[val]" () as int = 0);
42
43  assert (_seek '() = C_void);
44  assert (_seek (C_int64 10L) = C_void);
45
46  assert (_slightly_off_square '(10) as int = 102);
47  assert (_slightly_off_square '() as int = 291);
48
49  assert (_casts1 '() as char = '\x00');
50  assert (_casts2 '() as string = "Hello");
51  assert (_casts1 '("Ciao") as string = "Ciao");
52  assert (_chartest1 '() as char = 'x');
53  assert (_chartest2 '() as char = '\x00');
54  assert (_chartest3 '() as char = '\x01');
55  assert (_chartest4 '() as char = '\n');
56  assert (_chartest5 '() as char = 'B');
57  assert (_chartest6 '() as char = 'C');
58;;
59