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