|
| 1 | +(* TEST *) |
| 2 | + |
| 3 | +let check_list name list = |
| 4 | + Printf.printf "testing %S...\n" name; |
| 5 | + List.iteri |
| 6 | + (fun i (x, y) -> |
| 7 | + Printf.printf " #%d: %s\n" |
| 8 | + i |
| 9 | + (if x = y then "OK" else "KO")) |
| 10 | + list; |
| 11 | + Printf.printf "\n%!" |
| 12 | + |
| 13 | +let check_int () = check_list "int" [ |
| 14 | + compare (Sys.opaque_identity 1) 2 <= 0, true; |
| 15 | + compare (Sys.opaque_identity 3) 3 <= 0, true; |
| 16 | + compare (Sys.opaque_identity 1) min_int <= 0, false; |
| 17 | + compare (Sys.opaque_identity 1) 2 < 0, true; |
| 18 | + compare (Sys.opaque_identity 3) 3 < 0, false; |
| 19 | + compare (Sys.opaque_identity 1) min_int < 0, false; |
| 20 | + compare (Sys.opaque_identity max_int) (-1) >= 0, true; |
| 21 | + compare (Sys.opaque_identity 3) 3 >= 0, true; |
| 22 | + compare (Sys.opaque_identity 2) min_int >= 0, true; |
| 23 | + compare (Sys.opaque_identity max_int) (-1) > 0, true; |
| 24 | + compare (Sys.opaque_identity 3) 3 > 0, false; |
| 25 | + compare (Sys.opaque_identity 2) min_int > 0, true; |
| 26 | + compare (Sys.opaque_identity min_int) min_int = 0, true; |
| 27 | + compare (Sys.opaque_identity max_int) max_int = 0, true; |
| 28 | + compare (Sys.opaque_identity 1) 2 = 0, false; |
| 29 | + compare (Sys.opaque_identity min_int) min_int <> 0, false; |
| 30 | + compare (Sys.opaque_identity max_int) max_int <> 0, false; |
| 31 | + compare (Sys.opaque_identity 1) 2 <> 0, true; |
| 32 | +] |
| 33 | + |
| 34 | +let () = check_int () |
| 35 | + |
| 36 | +let check_int32 () = check_list "int32" [ |
| 37 | + compare (Sys.opaque_identity 1l) 2l <= 0, true; |
| 38 | + compare (Sys.opaque_identity 3l) 3l <= 0, true; |
| 39 | + compare (Sys.opaque_identity 1l) Int32.min_int <= 0, false; |
| 40 | + compare (Sys.opaque_identity 1l) 2l < 0, true; |
| 41 | + compare (Sys.opaque_identity 3l) 3l < 0, false; |
| 42 | + compare (Sys.opaque_identity 1l) Int32.min_int < 0, false; |
| 43 | + compare (Sys.opaque_identity Int32.max_int) (-1l) >= 0, true; |
| 44 | + compare (Sys.opaque_identity 3l) 3l >= 0, true; |
| 45 | + compare (Sys.opaque_identity 2l) Int32.min_int >= 0, true; |
| 46 | + compare (Sys.opaque_identity Int32.max_int) (-1l) > 0, true; |
| 47 | + compare (Sys.opaque_identity 3l) 3l > 0, false; |
| 48 | + compare (Sys.opaque_identity 2l) Int32.min_int > 0, true; |
| 49 | + compare (Sys.opaque_identity Int32.min_int) Int32.min_int = 0, true; |
| 50 | + compare (Sys.opaque_identity Int32.max_int) Int32.max_int = 0, true; |
| 51 | + compare (Sys.opaque_identity 1l) 2l = 0, false; |
| 52 | + compare (Sys.opaque_identity Int32.min_int) Int32.min_int <> 0, false; |
| 53 | + compare (Sys.opaque_identity Int32.max_int) Int32.max_int <> 0, false; |
| 54 | + compare (Sys.opaque_identity 1l) 2l <> 0, true; |
| 55 | +] |
| 56 | + |
| 57 | +let () = check_int32 () |
| 58 | + |
| 59 | +let check_int64 () = check_list "int64" [ |
| 60 | + compare (Sys.opaque_identity 1L) 2L <= 0, true; |
| 61 | + compare (Sys.opaque_identity 3L) 3L <= 0, true; |
| 62 | + compare (Sys.opaque_identity 1L) Int64.min_int <= 0, false; |
| 63 | + compare (Sys.opaque_identity 1L) 2L < 0, true; |
| 64 | + compare (Sys.opaque_identity 3L) 3L < 0, false; |
| 65 | + compare (Sys.opaque_identity 1L) Int64.min_int < 0, false; |
| 66 | + compare (Sys.opaque_identity Int64.max_int) (-1L) >= 0, true; |
| 67 | + compare (Sys.opaque_identity 3L) 3L >= 0, true; |
| 68 | + compare (Sys.opaque_identity 2L) Int64.min_int >= 0, true; |
| 69 | + compare (Sys.opaque_identity Int64.max_int) (-1L) > 0, true; |
| 70 | + compare (Sys.opaque_identity 3L) 3L > 0, false; |
| 71 | + compare (Sys.opaque_identity 2L) Int64.min_int > 0, true; |
| 72 | + compare (Sys.opaque_identity Int64.min_int) Int64.min_int = 0, true; |
| 73 | + compare (Sys.opaque_identity Int64.max_int) Int64.max_int = 0, true; |
| 74 | + compare (Sys.opaque_identity 1L) 2L = 0, false; |
| 75 | + compare (Sys.opaque_identity Int64.min_int) Int64.min_int <> 0, false; |
| 76 | + compare (Sys.opaque_identity Int64.max_int) Int64.max_int <> 0, false; |
| 77 | + compare (Sys.opaque_identity 1L) 2L <> 0, true; |
| 78 | +] |
| 79 | + |
| 80 | +let () = check_int64 () |
| 81 | + |
| 82 | +let check_nativeint () = check_list "nativeint" [ |
| 83 | + compare (Sys.opaque_identity 1n) 2n <= 0, true; |
| 84 | + compare (Sys.opaque_identity 3n) 3n <= 0, true; |
| 85 | + compare (Sys.opaque_identity 1n) Nativeint.min_int <= 0, false; |
| 86 | + compare (Sys.opaque_identity 1n) 2n < 0, true; |
| 87 | + compare (Sys.opaque_identity 3n) 3n < 0, false; |
| 88 | + compare (Sys.opaque_identity 1n) Nativeint.min_int < 0, false; |
| 89 | + compare (Sys.opaque_identity Nativeint.max_int) (-1n) >= 0, true; |
| 90 | + compare (Sys.opaque_identity 3n) 3n >= 0, true; |
| 91 | + compare (Sys.opaque_identity 2n) Nativeint.min_int >= 0, true; |
| 92 | + compare (Sys.opaque_identity Nativeint.max_int) (-1n) > 0, true; |
| 93 | + compare (Sys.opaque_identity 3n) 3n > 0, false; |
| 94 | + compare (Sys.opaque_identity 2n) Nativeint.min_int > 0, true; |
| 95 | + compare (Sys.opaque_identity Nativeint.min_int) Nativeint.min_int = 0, true; |
| 96 | + compare (Sys.opaque_identity Nativeint.max_int) Nativeint.max_int = 0, true; |
| 97 | + compare (Sys.opaque_identity 1n) 2n = 0, false; |
| 98 | + compare (Sys.opaque_identity Nativeint.min_int) Nativeint.min_int <> 0, false; |
| 99 | + compare (Sys.opaque_identity Nativeint.max_int) Nativeint.max_int <> 0, false; |
| 100 | + compare (Sys.opaque_identity 1n) 2n <> 0, true; |
| 101 | +] |
| 102 | + |
| 103 | +let () = check_nativeint () |
0 commit comments